CALL地址 
 
031152B4      | FF73 08               | push dword ptr ds:[ebx+0x8]                      | 这里的值 ,有些是1,有些是4,有些是2,我也不知道是啥 
031152B7      | 8D85 14FFFFFF         | lea eax,dword ptr ss:[ebp-0xEC]                  | 
031152BD      | B9 202D7304           | mov ecx,wechatwin.4732D20                        | 4732D20:"x哰\x08" 
031152C2      | 50                    | push eax                                         | 这个是打开窗口的标题 
031152C3      | 8D43 0C               | lea eax,dword ptr ds:[ebx+0xC]                   | 
031152C6      | 50                    | push eax                                         | 这里好像是打开窗口的坐标,为0即可。但是不能直接PUSH 0 要PUSH一个地址。地址的值 为0 
031152C7      | 57                    | push edi                                         | 要打开的WXID 
031152C8      | E8 C3FAE8FF           | call wechatwin.2FA4D90                           | 打开窗口CALL 
 
DLLBASE = 2e90000 
 
 
 
- .版本 2
 
 - .支持库 spec
 
  
- .子程序 Call_OpenWnd, , 公开
 
 - .参数 WxidUnicode, 字节集
 
 - .参数 TitleUnicode, 字节集
 
 - .局部变量 ecx, , , , ebp-4
 
 - .局部变量 call, , , , ebp-8
 
 - .局部变量 args, 数据类型_OpenWind
 
  
- ecx = WxData.DLLBase + 25832736  ' 0x6FF02D20-?0x6E660000=18A2D20
 
 - call = WxData.DLLBase + 1133968  ' 0x6E774D90-?0x6E660000=114D90
 
 - args.wxid = 申请内存 (512, )
 
 - args.title = 申请内存 (512, )
 
 - 内存写字节集 (args.wxid, WxidUnicode)
 
 - 内存写字节集 (args.title, TitleUnicode)
 
 - args.wxidlen = 取文本长度 (编码_Unicode到Ansi (WxidUnicode))
 
 - args.wxidsize = args.wxidlen × 2 + 2
 
 - args.titlelen = 取文本长度 (编码_Unicode到Ansi (TitleUnicode))
 
 - args.titlesize = args.titlelen × 2 + 2
 
 - args.wxid2 = args.wxid  ' 之所以写这个。是看了一个别人的DLL,这个偏移有这个。所以就补了一下。下面一样
 
 - args.title2 = args.title
 
 - Call_OpenWndEx (call, ecx, 取变量地址 (args.wxid), 取变量地址 (args.pos), 取变量地址 (args.title))
 
 - 释放内存 (args.wxid)
 
 - 释放内存 (args.title)
 
 - .' 如果真 (取字节集长度 (WxidUnicode) = 0 或 WxidUnicode = {  })
 
 -     ' 返回 ()
 
 - .如果真结束
 
 - ' WxUtils.InitMemAddress (WxidAddress, TitleAddress, BuffAddress, WxidUnicode, TitleUnicode)
 
 - ' 置入代码 ({ 96, 106, 4, 255, 117, 240, 255, 117, 236, 255, 117, 244, 139, 77, 252, 255, 85, 248, 97 })
 
  
 
- .子程序 Call_OpenWndEx
 
 - .参数 call, , , +0c
 
 - .参数 ecx, , , +10
 
 - .参数 arg1, , , +14
 
 - .参数 arg2, , , +18
 
 - .参数 arg3, , , +1c
 
  
- 置入代码 ({ 96, 139, 77, 16, 106, 4, 255, 117, 28, 255, 117, 24, 255, 117, 20, 255, 85, 12, 97, 144 })
 
 - ' PUSHAD
 
 - ' MOV ECX,[EBP+10]
 
 - ' PUSH 4
 
 - ' PUSH DWORD PTR [EBP+1C]
 
 - ' PUSH DWORD PTR [EBP+18]
 
 - ' PUSH DWORD PTR [EBP+14]
 
 - ' CALL [EBP+C]
 
 - ' POPAD
 
 - ' NOP
 
  
- .版本 2
 
  
- .数据类型 数据类型_OpenWind
 
 -     .成员 pos, , , , 0
 
 -     .成员 pos2, , , , 4
 
 -     .成员 wxid, , , , 8
 
 -     .成员 wxidlen, , , , c
 
 -     .成员 wxidsize, , , , 10
 
 -     .成员 nop1, , , , 14
 
 -     .成员 nop2, , , , 18
 
 -     .成员 title, , , , 1c
 
 -     .成员 titlelen, , , , 20
 
 -     .成员 titlesize, , , , 24
 
 -     .成员 nop3, , , , 28
 
 -     .成员 nop4, , , , 2c
 
 -     .成员 wxid2, , , , 30
 
 -     .成员 title2, , , , 34
 
  
  复制代码 
 
能调用。不奔溃。但是无法正常显示窗口,有人碰到过吗,困扰好几天了。想不通呀 
 
 |