XXPC版发送视频消息研究
本帖最后由 Kido 于 2019-6-6 18:33 编辑先看效果图!发送视频,确定是可以播放的。然后,原理很简单。主要是看分析
逻辑分析
如果观察仔细,或者进入ida分析过,这个发送逻辑的人应该了解了!
发送文本消息、艾特消息、图片消息等,只是这个函数中的不同分支,也就说是,里面可能包含着其他类型的消息,因此,我们在这个函数的头部下断,然后发送一个视频给某个好友或者群,断下之后,一路跟踪的分支 3这里少去图片,直接给汇编代码,有空的自己可以分析一下
0FE19D32|.6A 00 |PUSH 0x0
0FE19D34|.83EC 14 |SUB ESP, 0x14
0FE19D37|.8BCC |MOV ECX, ESP
0FE19D39|.8965 D0 |MOV , ESP
0FE19D3C|.6A FF |PUSH -0x1
0FE19D3E|.68 083BD410 |PUSH 10D43B08
0FE19D43|.E8 68903B00 |CALL 101D2DB0 ;call返回的EAX是结构
0FE19D48|.83EC 14 |SUB ESP, 0x14
0FE19D4B|.C745 FC 0B000>|MOV , 0xB
0FE19D52|.8BCC |MOV ECX, ESP
0FE19D54|.8965 C0 |MOV , ESP
0FE19D57|.53 |PUSH EBX ;视频路径结构
0FE19D58|.E8 93903B00 |CALL 101D2DF0 ;call返回的EAX是结构
0FE19D5D|.83EC 14 |SUB ESP, 0x14
0FE19D60|.8BCC |MOV ECX, ESP
0FE19D62|.8965 BC |MOV , ESP
0FE19D65|.FF75 CC |PUSH ;wx结构
0FE19D68|.E8 83903B00 |CALL 101D2DF0 ;call返回的EAX是结构
0FE19D6D|.8D85 A4FBFFFF |LEA EAX, ;这个地址是一个固定的数据
0FE19D73|.C645 FC 0D |MOV BYTE PTR SS:, 0xD
0FE19D77|.50 |PUSH EAX
0FE19D78|.E8 E301FAFF |CALL 0FDB9F60
0FE19D7D|.8BC8 |MOV ECX, EAX
0FE19D7F|.C745 FC FFFFF>|MOV , -0x1
0FE19D86|.E8 95921600 |CALL 0FF83020 ;这个是关键call
在关键call之前主要做了一件事情,组合数据结构,放到堆栈!这个call有17个参数。没经过一个call的返回值eax是一组数据。
在0FE19D6D出lea eax的数据,我这边测试是一段固定数据。
00DAE0C8000001E6
00DAE0CC0000033E
00DAE0D000000226
00DAE0D400000001
00DAE0D8000001E6
这是数据结构的,下图是关键call下断图,有兴趣的参考!最终效果,如文章开始GIF演示
IDA分析一下很清晰的看到 sub_10233020 调用了多少个参数的。。就能明白了!好了,这个就分享到这里!感谢 Angelxf 分享备份语音方法、发送消息方法等
case 3:
if ( sub_10474FD0(v7) )
{
v60 = 0;
v85 = &v55;
sub_10482DB0(&unk_10FF3B08, -1);
v87 = 11;
v81 = &v50;
sub_10482DF0(v7);
v80 = &v45;
sub_10482DF0(v84);
LOBYTE(v87) = 13;
v44 = &v65;
sub_10069F60();
v87 = -1;
sub_10233020(v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60);
v87 = 14;
v20 = sub_1024EE70();
v21 = sub_1040A5D0(v20);
v85 = v22;
if ( sub_1040A5D0(&v65) != v21 || v23 != v85 )
{
v24 = sub_1040A5D0(&v65);
v25 = v83;
v72 = v24;
v73 = v26;
sub_100CBDF0(&v72);
if ( sub_100CBCF0(v25) )
{
sub_1004E320(&v66);
v67 = 0;
v68 = 0i64;
v69 = 0;
LOBYTE(v87) = 16;
v70 = -1;
sub_100596A0(&v65);
LOBYTE(v87) = 17;
LABEL_26:
sub_100CAC50(&v66, 1);
sub_10083CC0(&v66);
}
}
LABEL_27:
v87 = -1;
sub_1004DC80(&v65);
}
break; 不能弄简单一点嘛,看不懂。 揰掵佲 发表于 2019-3-5 14:16
啊哈,那就不清楚了,不过,如果可以自己开发插件,双方共同使用插件的话,那就可以实现大于200M的了
这个想法好,那微信卖片子的人就高兴了, 6781111 发表于 2019-3-5 13:18
视频大小也限制吧?
腾讯本身限制100M 貌似~ 貌似PC微信最大只能发25M的视频 太大了也发不出去 PC版微信等待更多开发辅助,因为很不方便 揰掵佲 发表于 2019-3-5 13:33
腾讯本身限制100M 貌似~
不能大于20M 迷失自我 发表于 2019-3-5 14:15
不能大于20M
啊哈,那就不清楚了,不过,如果可以自己开发插件,双方共同使用插件的话,那就可以实现大于200M的了