本帖最后由 zbnysjwsnd8 于 2017-8-11 09:30 编辑
我看了一下你的代码
你这个检测断点有问题
这是我的GetWindowTextA的代码
[Asm] 纯文本查看 复制代码 7783CAB0 > 6A 0C push 0xC
7783CAB2 68 602F8A77 push user32.778A2F60
7783CAB7 E8 081A0100 call user32.7784E4C4
7783CABC 8B75 0C mov esi,dword ptr ss:[ebp+0xC]
7783CABF 85F6 test esi,esi ; echap543.<ModuleEntryPoint>
7783CAC1 74 56 je short user32.7783CB19
7783CAC3 837D 10 00 cmp dword ptr ss:[ebp+0x10],0x0
7783CAC7 74 50 je short user32.7783CB19
7783CAC9 8365 FC 00 and dword ptr ss:[ebp-0x4],0x0
7783CACD C606 00 mov byte ptr ds:[esi],0x0
7783CAD0 8B4D 08 mov ecx,dword ptr ss:[ebp+0x8]
7783CAD3 E8 D8AEFEFF call user32.778279B0
7783CAD8 8BD8 mov ebx,eax
7783CADA 8BC2 mov eax,edx ; echap543.<ModuleEntryPoint>
7783CADC 8945 E4 mov dword ptr ss:[ebp-0x1C],eax
7783CADF 8BCB mov ecx,ebx
7783CAE1 0BC8 or ecx,eax
7783CAE3 0F84 DC2E0200 je user32.7785F9C5
7783CAE9 50 push eax
7783CAEA 53 push ebx
7783CAEB E8 C3000000 call user32.7783CBB3
7783CAF0 6A 01 push 0x1
7783CAF2 56 push esi ; echap543.<ModuleEntryPoint>
7783CAF3 85C0 test eax,eax
7783CAF5 0F84 A52E0200 je user32.7785F9A0
7783CAFB FF75 E4 push dword ptr ss:[ebp-0x1C]
7783CAFE 53 push ebx
7783CAFF 8B55 10 mov edx,dword ptr ss:[ebp+0x10]
7783CB02 6A 0D push 0xD
7783CB04 59 pop ecx ; kernel32.75DA38F4
7783CB05 E8 4694FEFF call user32.77825F50
7783CB0A C745 FC FEFFFFF>mov dword ptr ss:[ebp-0x4],-0x2
7783CB11 E8 F3190100 call user32.7784E509
7783CB16 C2 0C00 retn 0xC
7783CB19 33C0 xor eax,eax
7783CB1B ^ EB F4 jmp short user32.7783CB11
这是我的GetWindowTextW代码:
[Asm] 纯文本查看 复制代码 7783CB30 > 6A 0C push 0xC
7783CB32 68 802F8A77 push user32.778A2F80
7783CB37 E8 88190100 call user32.7784E4C4
7783CB3C 8B75 0C mov esi,dword ptr ss:[ebp+0xC]
7783CB3F 85F6 test esi,esi ; echap543.<ModuleEntryPoint>
7783CB41 74 67 je short user32.7783CBAA
7783CB43 837D 10 00 cmp dword ptr ss:[ebp+0x10],0x0
7783CB47 74 61 je short user32.7783CBAA
7783CB49 8365 FC 00 and dword ptr ss:[ebp-0x4],0x0
7783CB4D 33C0 xor eax,eax
7783CB4F 66:8906 mov word ptr ds:[esi],ax
7783CB52 8B4D 08 mov ecx,dword ptr ss:[ebp+0x8]
7783CB55 E8 56AEFEFF call user32.778279B0
7783CB5A 8BD8 mov ebx,eax
7783CB5C 8BC2 mov eax,edx ; echap543.<ModuleEntryPoint>
7783CB5E 8945 E4 mov dword ptr ss:[ebp-0x1C],eax
7783CB61 8BCB mov ecx,ebx
7783CB63 0BC8 or ecx,eax
7783CB65 74 3C je short user32.7783CBA3
7783CB67 50 push eax
7783CB68 53 push ebx
7783CB69 E8 45000000 call user32.7783CBB3
7783CB6E 6A 00 push 0x0
7783CB70 56 push esi ; echap543.<ModuleEntryPoint>
7783CB71 85C0 test eax,eax
7783CB73 74 1E je short user32.7783CB93
7783CB75 FF75 E4 push dword ptr ss:[ebp-0x1C]
7783CB78 53 push ebx
7783CB79 8B55 10 mov edx,dword ptr ss:[ebp+0x10]
7783CB7C 6A 0D push 0xD
7783CB7E 59 pop ecx ; kernel32.75DA38F4
7783CB7F E8 CC93FEFF call user32.77825F50
7783CB84 C745 FC FEFFFFF>mov dword ptr ss:[ebp-0x4],-0x2
7783CB8B E8 79190100 call user32.7784E509
7783CB90 C2 0C00 retn 0xC
7783CB93 FF75 10 push dword ptr ss:[ebp+0x10]
7783CB96 6A 0D push 0xD
7783CB98 FF75 E4 push dword ptr ss:[ebp-0x1C]
7783CB9B 53 push ebx
7783CB9C E8 7F69FEFF call user32.77823520
7783CBA1 ^ EB E1 jmp short user32.7783CB84
7783CBA3 C745 FC FEFFFFF>mov dword ptr ss:[ebp-0x4],-0x2
7783CBAA 33C0 xor eax,eax
7783CBAC ^ EB DD jmp short user32.7783CB8B
0x6A 0x0C 0x68转换成易语言的字节集是这样的:
{106,12,104}
和你这里检测的 { 106, 8, 104 } 根本就不一样
通用性好差啊
恐怕只有和楼主一个系统的
不修改代码才能验证算法吧 |