微信机器人之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<"

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。