运行程序在注册栏输入公司名:windycan(也就是我的大名啊),注册:87654321,按注册出现“注册码不正确,请重新输入”的字样,正确才怪呢,要是正确的话我可以去买彩票了,热烈盼望着这一天ing
用OD载入,(是不是先要打开软件运行程序胡乱输入后弹出“注册码不正确,请重新输入”然后用“OD中的“附加”载入呀”)ESP定律很快到达OEP,(是不是软件自动搜索到开始)然后用插件(是不是string reference中的ASCII还是UNICODE)搜啊搜,搜那句“注册码不正确,请重新输入”,然后双击来到以下代码处
005C141A 55 push ebp
005C141B 68 F9145C00 push HonorJjg.005C14F9
005C1420 64:FF30 push dword ptr fs:[eax]
005C1423 64:8920 mov dword ptr fs:[eax],esp
005C1426 8D55 EC lea edx,dword ptr ss:[ebp-14]
005C1429 8B45 FC mov eax,dword ptr ss:[ebp-4]
005C142C 8B80 00030000 mov eax,dword ptr ds:[eax+300]
005C1432 E8 8D28EBFF call HonorJjg.00473CC4-------------------------这里下断(是不是直接F2,或者其他)
005C1437 8B45 EC mov eax,dword ptr ss:[ebp-14]
005C143A 8D55 F0 lea edx,dword ptr ss:[ebp-10]
005C143D E8 7685E4FF call HonorJjg.004099B8
005C1442 8D55 E4 lea edx,dword ptr ss:[ebp-1C]
005C1445 B8 74155C00 mov eax,HonorJjg.005C1574
005C144A E8 4DE0FFFF call HonorJjg.005BF49C
005C144F 8B45 E4 mov eax,dword ptr ss:[ebp-1C]
005C1452 8D4D E8 lea ecx,dword ptr ss:[ebp-18]
005C1455 BA EF000000 mov edx,0EF
005C145A E8 49D5FFFF call HonorJjg.005BE9A8
005C145F 8B45 E8 mov eax,dword ptr ss:[ebp-18]
005C1462 8D4D F8 lea ecx,dword ptr ss:[ebp-8]
005C1465 BA A6000000 mov edx,0A6
005C146A E8 31DFFFFF call HonorJjg.005BF3A0
005C146F 8D55 DC lea edx,dword ptr ss:[ebp-24]
005C1472 8B45 FC mov eax,dword ptr ss:[ebp-4]
005C1475 8B80 04030000 mov eax,dword ptr ds:[eax+304]
005C147B E8 4428EBFF call HonorJjg.00473CC4
005C1480 8B45 DC mov eax,dword ptr ss:[ebp-24]
005C1483 8D55 E0 lea edx,dword ptr ss:[ebp-20]
005C1486 E8 2D85E4FF call HonorJjg.004099B8
005C148B 8B45 E0 mov eax,dword ptr ss:[ebp-20]
005C148E 8D4D F4 lea ecx,dword ptr ss:[ebp-C]
005C1491 BA A6000000 mov edx,0A6
005C1496 E8 05DFFFFF call HonorJjg.005BF3A0
005C149B 8B55 F4 mov edx,dword ptr ss:[ebp-C]
005C149E 8B45 F8 mov eax,dword ptr ss:[ebp-8]
005C14A1 E8 1A83E4FF call HonorJjg.004097C0
005C14A6 85C0 test eax,eax----------------------------传说中的比较(不明白能不能帮帮忙解释一下)
005C14A8 74 1C je short HonorJjg.005C14C6---------关键跳啊(是不是直接修改je short HonorJjg.005C14BA)
005C14AA 8D45 F8 lea eax,dword ptr ss:[ebp-8]
005C14AD E8 AE36E4FF call HonorJjg.00404B60
005C14B2 8D45 F4 lea eax,dword ptr ss:[ebp-C]
005C14B5 E8 A636E4FF call HonorJjg.00404B60
005C14BA B8 80155C00 mov eax,HonorJjg.005C1580----------来到这里
005C14BF E8 30CBE7FF call HonorJjg.0043DFF4
005C14C4 EB 29 jmp short HonorJjg.005C14EF
005C14C6 8B55 F0 mov edx,dword ptr ss:[ebp-10]
005C14C9 8B45 F4 mov eax,dword ptr ss:[ebp-C]
005C14CC E8 D3D8FFFF call HonorJjg.005BEDA4
005C14D1 84C0 test al,al
005C14D3 74 1A je short HonorJjg.005C14EF
005C14D5 8D45 F8 lea eax,dword ptr ss:[ebp-8]
005C14D8 E8 8336E4FF call HonorJjg.00404B60
005C14DD 8D45 F4 lea eax,dword ptr ss:[ebp-C]
005C14E0 E8 7B36E4FF call HonorJjg.00404B60
005C14E5 B8 A4155C00 mov eax,HonorJjg.005C15A4
005C14EA E8 05CBE7FF call HonorJjg.0043DFF4
005C14EF 33C0 xor eax,eax
005C14F1 5A pop edx
由于壳没有脱,005C14A8处无法改成JMP来实现爆破,但是在005C14A1下断好象也看不到真的的注册码,怎么办?如果我们在005C1432处下断,然后一路F8下来,(只是按F8吗不是很明白)注意观察寄存器的值,就会发现程序在此过程中读取机器码,公司名等信息,由于本人算法水平太次了,(还是不明白)没跟踪到注册码的形成过程,只在寄存器看到:
AX 00E1E40C ASCII "CABYCCCHBXCDCCBWBY"
ECX 00000001
EDX 00E2D4C0 ASCII "437934546"
EBX 00E2A2D0
ESP 0012F55C
EBP 0012F5A4
ESI 004476B4 HonorJjg.004476B4
EDI 0012F728
EIP 005C1462 HonorJjg.005C1462
C 0 ES 0023 32bit 0(FFFFFFFF)
P 0 CS 001B 32bit 0(FFFFFFFF)
A 0 SS 0023 32bit 0(FFFFFFFF)
Z 0 DS 0023 32bit 0(FFFFFFFF)
S 0 FS 0038 32bit 7FFDE000(FFF)
T 0 GS 0000 NULL
D 0
O 0 LastErr ERROR_SUCCESS (00000000)
EFL 00000202 (NO,NB,NE,A,NS,PO,GE,G)
ST0 empty -NAN FFFF FF06003B FFEAE9E3
ST1 empty -NAN FFFF FF06003B FFE9E8E2
ST2 empty -NAN FFFF FF06003B FFEAE9E3
ST3 empty -NAN FFFF FF06003A FFE7E6E0
ST4 empty -NAN FFFF FF06003B FFEAE9E3
ST5 empty -??? FFFF 00FF0006 0000003B
ST6 empty -??? FFFF 00000000 00000000
ST7 empty -??? FFFF 00800080 00800080
3 2 1 0 E S P U O Z D I
FST 0000 Cond 0 0 0 0 Err 0 0 0 0 0 0 0 0 (GT)
FCW 1272 Prec NEAR,53 掩码 1 1 0 0 1 0
希望大家帮帮我解释一下,只是解释一下了,由衷的感谢!!
请各位大大不要骂我!太笨我也自己研究了就是不明白
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课