其他分享
首页 > 其他分享> > 微信机器人之PC微信hook

微信机器人之PC微信hook

作者:互联网

想实现微信机器人软件的主要构成分为一个主进程exe和一个注入的dll,主进程exe:把dll注入到微信,发送指令给dll,接受dll的信息,注入的dll:被注入到微信内部,拦截微信的数据,调用微信的功能接收主进程的指令,执行指令对应的操作、发信息给主进程,通过这样的操作,就能实现获取信息和发送信息的最主要功能了。

编写微信机器人软件最主要的工作,就是找到微信中关键call,然后调用call代码的数据或者直接调用call代码来实现我们需要的功能。以接收好友消息为例,大致说明一下制作机器人的过程。

【接收实时消息】
1、第一步,打开CE软件,加载微信,附加微信之后,用另外一个微信,给已经登陆的微信发送一条信息,然后用CE 点击:New Scan ,注意不要选 UTF-16,搜索之后,出来了几条结果,再用一个微信发送一条信息,这时看有哪些地址是刚才的发送的内容,把他选到下面去。

 

2、然后把这个地址复制下来,在OD里面下个断点。

 

3、然后发送一条消息,程序中断,堆栈窗口往下翻,发现“lass SyncMgr”,有价值的信息。

 

4、右键【反汇编窗口跟随】,函数位置下断点,删除内存写入断点,放程序执行完。再发一条消息,程序断下来。查看各个寄存器的值,是都由寄存器存储了微信接收人、发送人和具体内容。然后保存反汇编窗口代码,切换到e界面,获取基质地址,计算消息的偏移地址

 

5、分析代码,编写hook代码

基址:0F2D0000

EBX=0DB52460 ->0DB576A0

hook=116B138F-0F2D0000=‭‭37622671‬‬

call=11642818-0F2D0000=‭‭37169176‬‬


116B1373 F9 stc
116B1374 81EE 04000000 sub esi,0x4
116B137A C1D0 78 rcl eax,0x78
116B137D 98 cwde
116B137E 8B06 mov eax,dword ptr ds:[esi]
116B1380 E9 73B50500 jmp WeChatWi.1170C8F8
116B1385 ^ E9 51CEEAFF jmp WeChatWi.1155E1DB
116B138A 68 48A5F0B1 push 0xB1F0A548
116B138F E8 8414F9FF call WeChatWi.11642818 ; inset1
116B1394 3155 39 xor dword ptr ss:[ebp+0x39],edx
116B1397 AA stos byte ptr es:[edi]
116B1398 48 dec eax
116B1399 5A pop edx
116B139A 1E push ds
116B139B DC40 22 fadd qword ptr ds:[eax+0x22]
116B139E 5F pop edi
116B139F B8 0B483173 mov eax,0x7331480B


0DB576D8 00000001
0DB576DC 00000000
0DB576E0 00000002
0DB576E4 621A2ACC andromed.621A2ACC
0DB576E8 0E0F3728 UNICODE "1234343681@chatroom"

0DB57710 0E31B5E0 UNICODE "[破涕为笑]"

0DB57810 08C5ADD0 UNICODE "wxid_jhnasdfghjkj22"
0DB57814 00000013
0DB57818 00000013
0DB5781C 00000000
0DB57820 00000000
0DB57824 0DCA63A0 UNICODE "75c3848bf7af25d77ed15057c1cbb784"

0DB5788C 0D67EC90 UNICODE "<msgsource>\n\t<silence>0</silence>\n\t<membercount>3<"

 


————————————————
版权声明:本文为CSDN博主「qq_1148212080」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_32539491/article/details/123580846

标签:hook,微信,dll,PC,call,UNICODE,ptr,eax
来源: https://www.cnblogs.com/jxzx/p/16022973.html