下载:http://www.cyboma.com/cyboqq/index.html
CyboQQ 2.1是一款支持QQ2009显IP辅助工具。它的自检验有些麻烦,如果cyboma.dll被改动,QQ不能被加载,同时显IP功能不能用。
打开CyboQQ.exe,用CreateFileW下断,观察堆栈,当其打开cyboma.dll文件时:
0012E934 7C801A4F /CALL 到 CreateFileW 来自 kernel32.7C801A4A
0012E938 7FFDFC00 |FileName = "D:\temp\CyboQQ\cyboma.dll"
0012E93C 80000000 |Access = GENERIC_READ
0012E940 00000000 |ShareMode = 0
0012E944 00000000 |pSecurity = NULL
0012E948 00000003 |Mode = OPEN_EXISTING
0012E94C 00000000 |Attributes = 0
0012E950 00000000 \hTemplateFile = NULL
Alt+F9回到cyboma.dll代码里,如下:
00EA11A8 FF50 5C call dword ptr [eax+5C] //CreateFileW
00EA11AB 8985 BCFEFFFF mov dword ptr [ebp-144], eax
00EA11B1 83BD BCFEFFFF F>cmp dword ptr [ebp-144], -1
00EA11B8 0F84 B4010000 je 00EA1372
00EA11BE 6A 00 push 0
00EA11C0 6A 00 push 0
00EA11C2 6A 00 push 0
00EA11C4 6A 02 push 2
00EA11C6 6A 00 push 0
00EA11C8 8B8D BCFEFFFF mov ecx, dword ptr [ebp-144]
00EA11CE 51 push ecx
00EA11CF E8 5C120000 call 00EA2430
00EA11D4 8BC8 mov ecx, eax
00EA11D6 E8 95210000 call 00EA3370
00EA11DB 8985 B8FEFFFF mov dword ptr [ebp-148], eax
00EA11E1 83BD B8FEFFFF 0>cmp dword ptr [ebp-148], 0
00EA11E8 0F84 61010000 je 00EA134F
00EA11EE 6A 00 push 0
00EA11F0 6A 00 push 0
00EA11F2 6A 00 push 0
00EA11F4 6A 04 push 4
00EA11F6 8B95 B8FEFFFF mov edx, dword ptr [ebp-148]
00EA11FC 52 push edx
00EA11FD E8 2E120000 call 00EA2430
00EA1202 8BC8 mov ecx, eax
00EA1204 E8 67220000 call 00EA3470
00EA1209 8985 B4FEFFFF mov dword ptr [ebp-14C], eax
00EA120F 83BD B4FEFFFF 0>cmp dword ptr [ebp-14C], 0
00EA1216 0F84 10010000 je 00EA132C
00EA121C E8 0F120000 call 00EA2430
00EA1221 8985 98FEFFFF mov dword ptr [ebp-168], eax
00EA1227 6A 00 push 0
00EA1229 8B85 BCFEFFFF mov eax, dword ptr [ebp-144]
00EA122F 50 push eax
00EA1230 8B8D 98FEFFFF mov ecx, dword ptr [ebp-168]
00EA1236 8B11 mov edx, dword ptr [ecx]
00EA1238 8B8D 98FEFFFF mov ecx, dword ptr [ebp-168]
00EA123E FF52 58 call dword ptr [edx+58]
00EA1241 8985 B0FEFFFF mov dword ptr [ebp-150], eax
00EA1247 8B85 B4FEFFFF mov eax, dword ptr [ebp-14C]
00EA124D 0385 B0FEFFFF add eax, dword ptr [ebp-150]
00EA1253 8B48 FC mov ecx, dword ptr [eax-4]
00EA1256 898D ACFEFFFF mov dword ptr [ebp-154], ecx
00EA125C 8B95 ACFEFFFF mov edx, dword ptr [ebp-154]
00EA1262 52 push edx
00EA1263 8B85 B4FEFFFF mov eax, dword ptr [ebp-14C]
00EA1269 0385 B0FEFFFF add eax, dword ptr [ebp-150]
00EA126F 2B85 ACFEFFFF sub eax, dword ptr [ebp-154]
00EA1275 83E8 04 sub eax, 4
00EA1278 50 push eax
00EA1279 68 C075EA00 push 0EA75C0
00EA127E 8B8D B0FEFFFF mov ecx, dword ptr [ebp-150]
00EA1284 83E9 04 sub ecx, 4
00EA1287 2B8D ACFEFFFF sub ecx, dword ptr [ebp-154]
00EA128D 51 push ecx
00EA128E 8B95 B4FEFFFF mov edx, dword ptr [ebp-14C]
00EA1294 52 push edx
00EA1295 E8 26B70000 call 00EAC9C0
00EA129A 83C4 14 add esp, 14
00EA129D 0FB6C0 movzx eax, al
00EA12A0 85C0 test eax, eax
00EA12A2 74 4E je short 00EA12F2
00EA12A4 6A 10 push 10
00EA12A6 E8 B1DC0000 call 00EAEF5C
00EA12AB 83C4 04 add esp, 4
这一段应是校验cyboma.dll,但要在文件里修改,遇到麻烦了,该段代码是动态生成的,因此不能直接在文件里改。
另外,直接用GetFileSize设断是拦不了的,得将断点设在GetFileSize中间,开始的代码被抽到程序里去了。
希望对自校验有兴趣的朋友一起来一研究一下。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课