✅ 操作成功!

qq代码大全

发布时间:2023-06-17 作者:admin 来源:文学

qq代码大全

qq代码大全

增强记忆力的方法-望月有感

2023年3月20日发(作者:华杯赛)

QQ源代码

d.%d.%d",[0],[1],[2],[3]);

MyPort=;IsLogin=true;

qq_send_packet_get_info(UserID);

switch(LoginMode){

case1:Status=1;break;case2:Status=3;break;default:

break;}

qq_send_packet_change_status();

GetFriendList();

returnQQ_LOGIN_REPLY_OK;}

intMyQQ::qq_process_login_redirect(unsignedchar*data,intlen){

intbytes,ret;

unsignedchar*cursor;

qq_login_reply_redirect_packetlrrp;

cursor=data;bytes=0;

d.%d.%d",[0],[1],[2],[3]);

//效劳器端口

LoginPort=;

=AF_INET;

=inet_addr(LoginServer);=htons(LoginPort);

//向新的效劳器地址发送登录请求Login(LoginMode);

ret=QQ_LOGIN_REPLY_REDIRECT;}

returnret;}

intMyQQ::qq_process_login_wrong_pwd(unsignedchar*data,intlen){

returnQQ_LOGIN_REPLY_PWD_ERROR;}

voidMyQQ::qq_send_packet_change_status(){

unsignedchar*raw_data,*cursor,away_cmd;DWORDmisc_status;

if(IsLogin==false)return;

switch(Status){case1:

away_cmd=QQ_BUDDY_ONLINE_NORMAL;break;case2:

away_cmd=QQ_BUDDY_ONLINE_INVISIBLE;break;case3:

away_cmd=QQ_BUDDY_ONLINE_AWAY;break;default:

away_cmd=QQ_BUDDY_ONLINE_NORMAL;}//switch

raw_data=(unsignedchar*)malloc(5);cursor=raw_data;misc_status=0x00000000;

create_packet_b(raw_data,&cursor,away_cmd);create_packet_dw(raw_data,&cursor,misc_st

atus);

qq_send_cmd(QQ_CMD_CHANGE_ONLINE_STATUS,TRUE,0,TRUE,raw_data,5);}

voidMyQQ::TurnInvisible(){

Status=2;

qq_send_packet_change_status();}

voidMyQQ::TurnVisible(){

Status=1;

qq_send_packet_change_status();}

voidMyQQ::TurnAway(){

Status=3;

qq_send_packet_change_status();}

voidMyQQ::Logout(){inti;

for(i=0;i<4;i++)

qq_send_cmd(QQ_CMD_LOGOUT,FALSE,0xffff,FALSE,PwdKey,QQ_KEY_LENGTH);

IsLogin=false;Status=0;

}

voidMyQQ::QQSendTextMessage(DWORDto_uid,char*msg,inttype){

unsignedchar*cursor,*raw_data;shortclient_tag,normal_im_type;intmsg_len,raw_len,byte

s;time_tnow;

unsignedchar*md5;char*msg_filtered;

char*font_size=NULL,*font_color=NULL,*font_name=NULL,*tmp;boolis_bold=FA

LSE,is_italic=FALSE,is_underline=FALSE;constchar*start,*end,*last;

client_tag=QQ_CLIENT;

normal_im_type=QQ_NORMAL_IM_TEXT;

last=msg;

msg_filtered=msg;

msg_len=strlen(msg_filtered);now=time(NULL);

md5=gen_session_md5(UserID,SessionKey);

intfont_name_len,tail_len;

font_name_len=DEFAULT_FONT_NAME_LEN;

}

voidMyQQ::QQSendTextMessage(DWORDto_uid,char*msg,inttype){

unsignedchar*cursor,*raw_data;shortclient_tag,normal_im_type;intmsg_len,raw_len,byte

s;time_tnow;

unsignedchar*md5;char*msg_filtered;

char*font_size=NULL,*font_color=NULL,*font_name=NULL,*tmp;boolis_bold=FA

LSE,is_italic=FALSE,is_underline=FALSE;constchar*start,*end,*last;

client_tag=QQ_CLIENT;

normal_im_type=QQ_NORMAL_IM_TEXT;

last=msg;

msg_filtered=msg;

msg_len=strlen(msg_filtered);now=time(NULL);

md5=gen_session_md5(UserID,SessionKey);

intfont_name_len,tail_len;

font_name_len=DEFAULT_FONT_NAME_LEN;

bytes+=create_packet_b(raw_data,&cursor,0x00);//043-043:sendericon

//bytes+=create_packet_b(raw_data,&cursor,qd->my_icon);bytes+=create_packet_b(raw_d

ata,&cursor,MyIcon);//044-046:always0x00

bytes+=create_packet_w(raw_data,&cursor,0x0000);bytes+=create_packet_b(raw_data,&

cursor,0x00);//047-047:weusefontattr

bytes+=create_packet_b(raw_data,&cursor,0x01);//048-051:always0x00

bytes+=create_packet_dw(raw_data,&cursor,0x00000000);//052-052:textmessagetype(no

rmal/auto-reply)bytes+=create_packet_b(raw_data,&cursor,type);//053-:msgendswith0x00

bytes+=create_packet_data(raw_data,&cursor,(unsignedchar*)msg_filtered,msg_len);

unsignedchar*send_im_tail=qq_get_send_im_tail(font_color,font_size,font_name,false,fals

e,false,tail_len);

bytes+=create_packet_data(raw_data,&cursor,send_im_tail,tail_len);

if(bytes==raw_len)//createpacketOK{

qq_send_cmd(QQ_CMD_SEND_IM,TRUE,0,TRUE,raw_data,cursor-raw_data);}}

constunsignedcharsimsun[]={0xcb,0xce,0xcc,0xe5};

font_name_len=DEFAULT_FONT_NAME_LEN;font_name=(constchar*)&(simsun[0]);

send_im_tail=(unsignedchar*)malloc(tail_len);

memcpy(send_im_tail+QQ_SEND_IM_AFTER_MSG_HEADER_LEN,font_name,tail_len-

QQ_SEND_IM_AFTER_MSG_HEADER_LEN);

send_im_tail[tail_len-1]=tail_len;

send_im_tail[0]=0x00;send_im_tail[1]=10;

if(is_bold)

send_im_tail[1]|=0x20;if(is_italic)

send_im_tail[1]|=0x40;if(is_underline)send_im_tail[1]|=0x80;

send_im_tail[2]=send_im_tail[3]=send_im_tail[4]=0;

send_im_tail[5]=0x00;send_im_tail[6]=0x86;send_im_tail[7]=0x22;

return(unsignedchar*)send_im_tail;}

//处置一般的QQ消息

voidMyQQ::qq_process_recv_normal_im(unsignedchar*data,unsignedchar**cursor,intle

n){intbytes;

qq_recv_normal_im_common*common;

qq_recv_normal_im_unprocessed*im_unprocessed;

if(*cursor>=(data+len-1)){return;}else

common=(qq_recv_normal_im_common*)malloc(sizeof(qq_recv_normal_im_common));

bytes=qq_normal_im_common_read(data,cursor,len,common);if(bytes<0){return;}

switch(common->normal_im_type){caseQQ_NORMAL_IM_TEXT:

qq_process_recv_normal_im_text(data,cursor,len,common);break;

caseQQ_NORMAL_IM_FILE_REJECT_UDP://qq_process_recv_file_reject(data,cursor,len,

//common->sender_uid,gc);break;

caseQQ_NORMAL_IM_FILE_APPROVE_UDP://qq_process_recv_file_accept(data,cursor,

len,//common->sender_uid,gc);break;

caseQQ_NORMAL_IM_FILE_REQUEST://qq_process_recv_file_request(data,cursor,len,/

/common->sender_uid,gc);break;

caseQQ_NORMAL_IM_FILE_CANCEL://qq_process_recv_file_cancel(data,cursor,len,//c

ommon->sender_uid,gc);break;

caseQQ_NORMAL_IM_FILE_NOTIFY://qq_process_recv_file_notify(data,cursor,len,//co

mmon->sender_uid,gc);break;default:return;

}//normal_im_type

g_free(common->session_md5);}

voidMyQQ::qq_process_recv_normal_im_text(unsignedchar*data,unsignedchar**cursor,i

ntlen,qq_recv_normal_im_common*common){

shortgaim_msg_type;

char*name;

char*msg_with_gaim_smiley;char*msg_utf8_encoded;qq_recv_normal_im_text*im_text;

if(*cursor>=(data+len-1)){return;}else

im_text=(qq_recv_normal_im_text*)malloc(sizeof(qq_recv_normal_im_text));

im_text->common=common;

read_packet_w(data,cursor,len,&(im_text->msg_seq));read_packet_dw(data,cursor,len,&(i

m_text->send_time));read_packet_b(data,cursor,len,&(im_text->unknown1));read_packet_b(d

ata,cursor,len,&(im_text->sender_icon));

read_packet_data(data,cursor,len,(unsignedchar*)&(im_text->unknown2),3);read_packet

_b(data,cursor,len,&(im_text->is_there_font_attr));

read_packet_data(data,cursor,len,(unsignedchar*)&(im_text->unknown3),4);read_packet

_b(data,cursor,len,&(im_text->msg_type));

if(im_text->msg_type==QQ_IM_AUTO_REPLY){im_text->is_there_font_attr=0x00;

im_text->msg=(unsignedchar*)malloc(1024);memcpy(im_text->msg,*cursor,data+len-*c

ursor);}else{

if(im_text->is_there_font_attr){

im_text->msg=(unsignedchar*)malloc(1500);

memcpy(im_text->msg,*cursor,strlen((constchar*)*cursor));

im_text->msg[strlen((constchar*)*cursor)]=0;}else

{im_text->msg=(unsignedchar*)malloc(1024);memcpy(im_text->msg,*cursor,data+len-

*cursor);im_text->msg[data+len-*cursor]=0;}}

MessageText=im_text->msg;//若是需要自动答复if(Status==3){

//I_QQAutoReply()函数获取预先设置的自动答复消息内容,需自己实

现char*MText=I_QQAutoReply();

QQSendTextMessage(common->sender_uid,MText,0x01);}

//在主界面中显示消息

//I_QQReceiveMessage((char*)MessageText,common->sender_uid);}

intMyQQ::qq_normal_im_common_read(unsignedchar*data,unsignedchar**cursor,intlen

,qq_recv_normal_im_common*common){intbytes;

bytes=0;

bytes+=read_packet_w(data,cursor,len,&(common->sender_ver));bytes+=read_packet_dw

(data,cursor,len,&(common->sender_uid));bytes+=read_packet_dw(data,cursor,len,&(comm

on->receiver_uid));

common->session_md5=(unsignedchar*)malloc(QQ_KEY_LENGTH);memcpy(common->

session_md5,*cursor,QQ_KEY_LENGTH);bytes+=QQ_KEY_LENGTH;*cursor+=QQ_KE

Y_LENGTH;

bytes+=read_packet_w(data,cursor,len,&(common->normal_im_type));

if(bytes!=28){return-1;}

returnbytes;}

👁️ 阅读量:0