004D002D . 50 push eax
004D002E . FF15 EC104000 call dword ptr ds:[<&MSVBVM60.#520>] ; msvbvm60.rtcTrimVar
004D0034 . E8 6768FFFF call 文件批量.004C68A0 ; 算法CALL 调用 2 注册时调用
004D0039 . 8945 88 mov dword ptr ss:[ebp-0x78],eax ; 真码 (UNICODE "AFFX-FFR0-ADX2-EPL6")
004D003C . C745 80 08800000 mov dword ptr ss:[ebp-0x80],0x8008
004D0043 . 8D4D 90 lea ecx,dword ptr ss:[ebp-0x70]
004D0046 . 51 push ecx ; /var18
004D0047 . 8D55 80 lea edx,dword ptr ss:[ebp-0x80] ; |
004D004A . 52 push edx ; |var28
004D004B . FF15 44114000 call dword ptr ds:[<&MSVBVM60.__vbaVar> ; 比较真假码的关键CALL VB的比较函数 eax中出现真码 可做内存
注册机004D0051 . 66:8985 1CFFFFFF mov word ptr ss:[ebp-0xE4],ax
004D0058 . 8D45 80 lea eax,dword ptr ss:[ebp-0x80]
004D005B . 50 push eax
004D005C . 8D4D 90 lea ecx,dword ptr ss:[ebp-0x70]
004D005F . 51 push ecx
004D0060 . 8D55 A0 lea edx,dword ptr ss:[ebp-0x60]
004D0063 . 52 push edx
004D0064 . 6A 03 push 0x3
004D0066 . FF15 3C104000 call dword ptr ds:[<&MSVBVM60.__vbaFre>
004D006C 83C4 10 add esp,0x10
004D006F 0FBF85 1CFFFFFF movsx eax,word ptr ss:[ebp-0xE4]
004D0076 85C0 test eax,eax
004D0078 0F84 F2030000 je 文件批量.004D0470 ; 关键跳
004D007E . C745 FC 09000000 mov dword ptr ss:[ebp-0x4],0x9
004D0085 . 8B0D 58405200 mov ecx,dword ptr ds:[0x524058]
………………………………………………………………………………………………………省略去中间N多代码
004D0362 . 8B08 mov ecx,dword ptr ds:[eax]
004D0364 . 898D 1CFFFFFF mov dword ptr ss:[ebp-0xE4],ecx
004D036A . 68 7C3A4900 push 文件批量.00493A7C ; 文件批量重命名 注册版
004D036F . 8B95 1CFFFFFF mov edx,dword ptr ss:[ebp-0xE4]
004D0375 . 8B02 mov eax,dword ptr ds:[edx]
………………………………………………………………………………………………………省略去中间N多代码
004D04AD . 8D95 40FFFFFF lea edx,dword ptr ss:[ebp-0xC0]
004D04B3 . 8D4D 90 lea ecx,dword ptr ss:[ebp-0x70]
004D04B6 . FF15 90124000 call dword ptr ds:[<&MSVBVM60.__vbaVar>; msvbvm60.__vbaVarDup
004D04BC . C785 58FFFFFF 98>mov dword ptr ss:[ebp-0xA8],文件批量.00493>; 注册码错误,请重新输入!
004D04C6 . C785 50FFFFFF 08>mov dword ptr ss:[ebp-0xB0],0x8
004D04D0 . 8D95 50FFFFFF lea edx,dword ptr ss:[ebp-0xB0]
004D04D6 . 8D4D A0 lea ecx,dword ptr ss:[ebp-0x60]
004D04D9 . FF15 90124000 call dword ptr ds:[<&MSVBVM60.__vbaVar>; msvbvm60.__vbaVarDup
004D04DF . 8D8D 70FFFFFF lea ecx,dword ptr ss:[ebp-0x90]
3、F7进 算法CALL,此时看到有三处调用分别为:
1)004C6603 . E8 98020000 call 文件批量.004C68A0 ; 启动验证调用 调用 1
2)004D0034 . E8 6768FFFF call 文件批量.004C68A0 ; 注册验证调用 调用 2
3)004D09E0 . E8 BB5EFFFF call 文件批量.004C68A0 ; 关于功能调用 调用 3
4、来到三处的段分别下断,得重程序F9运行,断在启动和注册的段首,F8向走程序检安装目录下"User"文件夹下文件名为“renamefile.txt”的Key文件是否存在,如Key不存在就跳向注册,如果存在就向下走来到验证Key文件里的注册信息是否正确;
代码:
004C637D . 8BD0 mov edx,eax
004C637F . 8D4D C8 lea ecx,dword ptr ss:[ebp-0x38]
004C6382 . FF15 BC124000 call dword ptr ds:[<&MSVBVM60.__vbaStr>; msvbvm60.__vbaStrMove
004C6388 . 8D4D C0 lea ecx,dword ptr ss:[ebp-0x40]
004C638B . FF15 04134000 call dword ptr ds:[<&MSVBVM60.__vbaFre>; msvbvm60.__vbaFreeStr
004C6391 . 8D4D B8 lea ecx,dword ptr ss:[ebp-0x48]
004C6394 . FF15 08134000 call dword ptr ds:[<&MSVBVM60.__vbaFre>; msvbvm60.__vbaFreeObj
004C639A . C745 FC 03000000 mov dword ptr ss:[ebp-0x4],0x3
004C63A1 . 6A FF push -0x1 ; /OnErrEvent = Resume Next
004C63A3 . FF15 C0104000 call dword ptr ds:[<&MSVBVM60.__vbaOnE>; \__vbaOnError
004C63A9 . C745 FC 04000000 mov dword ptr ss:[ebp-0x4],0x4
004C63B0 . 8D4D C8 lea ecx,dword ptr ss:[ebp-0x38]
004C63B3 . 51 push ecx
004C63B4 . E8 87FDFFFF call 文件批量.004C6140 ;验证Ke文件是否存在
004C63B9 0FBFD0 movsx edx,ax
004C63BC . 85D2 test edx,edx
004C63BE . 0F84 6A030000 je 文件批量.004C672E ;如Key不存在就跳向注册,如果存在就向下走来到验证Key文件里的注册信息是否正确;
004C63C4 . C745 FC 05000000 mov dword ptr ss:[ebp-0x4],0x5
004C63CB . 8B45 C8 mov eax,dword ptr ss:[ebp-0x38]
5、以下分别为三处调用验证处:
代码:
1)、启动验证调用 调用 1
004C6602 . 51 push ecx
004C6603 . E8 98020000 call 文件批量.004C68A0 ; 启动验证 调用算法CLL 1
004C6608 . 8BD0 mov edx,eax
004C660A . 8D4D BC lea ecx,dword ptr ss:[ebp-0x44]
004C660D . FF15 BC124000 call dword ptr ds:[<&MSVBVM60.__vbaStr>; msvbvm60.__vbaStrMove
004C6613 . 50 push eax
004C6614 . FF15 F4104000 call dword ptr ds:[<&MSVBVM60.__vbaStr>; msvbvm60.__vbaStrTextCmp
004C661A . F7D8 neg eax
004C661C . 1BC0 sbb eax,eax
004C661E . 40 inc eax
004C661F . F7D8 neg eax
004C6621 . 66:23F0 and si,ax
004C6624 . 66:8975 80 mov word ptr ss:[ebp-0x80],si
004C6628 . 8D55 BC lea edx,dword ptr ss:[ebp-0x44]
004C662B . 52 push edx
004C662C . 8D45 C0 lea eax,dword ptr ss:[ebp-0x40]
004C662F . 50 push eax
004C6630 . 6A 02 push 0x2
004C6632 . FF15 50124000 call dword ptr ds:[<&MSVBVM60.__vbaFre>; msvbvm60.__vbaFreeStrList
004C6638 . 83C4 0C add esp,0xC
004C663B 0FBF4D 80 movsx ecx,word ptr ss:[ebp-0x80]
004C663F . 85C9 test ecx,ecx
004C6641 0F84 E2000000 je 文件批量.004C6729 ;爆破点:关键跳 修改为: je 004C6647
004C6647 . C745 FC 0C000000 mov dword ptr ss:[ebp-0x4],0xC
2)注册验证调用 调用 2
004D002E . FF15 EC104000 call dword ptr ds:[<&MSVBVM60.#520>] ; msvbvm60.rtcTrimVar
004D0034 . E8 6768FFFF call 文件批量.004C68A0 ; 算法CALL 调用 2 注册时调用
004D0039 . 8945 88 mov dword ptr ss:[ebp-0x78],eax ; 真码 (UNICODE "AFFX-FFR0-ADX2-EPL6")
004D003C . C745 80 08800000 mov dword ptr ss:[ebp-0x80],0x8008
004D0043 . 8D4D 90 lea ecx,dword ptr ss:[ebp-0x70]
004D0046 . 51 push ecx ; /var18
004D0047 . 8D55 80 lea edx,dword ptr ss:[ebp-0x80] ; |
004D004A . 52 push edx ; |var28
004D004B . FF15 44114000 call dword ptr ds:[<&MSVBVM60.__vbaVar>; \ ;关键CALL VB的比较函数 eax中出现真码 可做内存注册机
004D0051 . 66:8985 1CFFFFFF mov word ptr ss:[ebp-0xE4],ax
004D0058 . 8D45 80 lea eax,dword ptr ss:[ebp-0x80]
004D005B . 50 push eax
004D005C . 8D4D 90 lea ecx,dword ptr ss:[ebp-0x70]
004D005F . 51 push ecx
004D0060 . 8D55 A0 lea edx,dword ptr ss:[ebp-0x60]
004D0063 . 52 push edx
004D0064 . 6A 03 push 0x3
004D0066 . FF15 3C104000 call dword ptr ds:[<&MSVBVM60.__vbaFre>;
004D006C 83C4 10 add esp,0x10
004D006F 0FBF85 1CFFFFFF movsx eax,word ptr ss:[ebp-0xE4]
004D0076 85C0 test eax,eax
004D0078 0F84 F2030000 je 文件批量.004D0470 ; 爆破点: 关键跳修改为:je 004D007E
004D007E . C745 FC 09000000 mov dword ptr ss:[ebp-0x4],0x9
3)关于功能调用 调用 3
004D09DA . FF15 F4124000 call dword ptr ds:[<&MSVBVM60.__vbaAry>; msvbvm60.__vbaAryUnlock
004D09E0 . E8 BB5EFFFF call 文件批量.004C68A0 ; 算法CALL 调用 3 关于功能
004D09E5 . 8945 B4 mov dword ptr ss:[ebp-0x4C],eax
004D09E8 . C745 AC 08800000 mov dword ptr ss:[ebp-0x54],0x8008
004D09EF . 8D4D BC lea ecx,dword ptr ss:[ebp-0x44]
004D09F2 . 51 push ecx ; /var18
004D09F3 . 8D55 AC lea edx,dword ptr ss:[ebp-0x54] ; |
004D09F6 . 52 push edx ; |var28
004D09F7 . FF15 44114000 call dword ptr ds:[<&MSVBVM60.__vbaVar>; \__vbaVarTstEq
004D09FD . 66:8945 80 mov word ptr ss:[ebp-0x80],ax
004D0A01 . 8D45 AC lea eax,dword ptr ss:[ebp-0x54]
004D0A04 . 50 push eax
004D0A05 . 8D4D BC lea ecx,dword ptr ss:[ebp-0x44]
004D0A08 . 51 push ecx
004D0A09 . 6A 02 push 0x2
004D0A0B . FF15 3C104000 call dword ptr ds:[<&MSVBVM60.__vbaFre>; msvbvm60.__vbaFreeVarList
004D0A11 . 83C4 0C add esp,0xC
004D0A14 0FBF55 80 movsx edx,word ptr ss:[ebp-0x80]
004D0A18 85D2 test edx,edx
004D0A1A 0F84 F4020000 je 文件批量.004D0D14 ; 爆破点: 关键跳修改为:je 004D0A20
004D0A20 . C745 FC 0C000000 mov dword ptr ss:[ebp-0x4],0xC