能力值:
( LV9,RANK:850 )
|
-
-
22 楼
00455C84 55 push ebp-----------------真正的OEP
00455C85 8BEC mov ebp,esp
00455C87 83C4 F0 add esp,-10
00455C8A B8 945A4500 mov eax,KeygenMe.00455A94
00455C8F E8 6000FBFF call KeygenMe.00405CF4
00455C94 A1 60704500 mov eax,dword ptr ds:[457060]
Borland Delphi 6.0
反DeDe
用OD查找字串:
可以看到几个奇怪的字串,这里就是断点
有一些就是与加密相关的字串:
书上说有情人千里能够婵娟--------------用来加密 注册码
可是我现在只想把你手儿牵
来,来,我是一颗波菜,菜菜菜菜菜菜!--------用来加密 注册名
来,来,我是一颗波菜,菜菜菜菜菜菜!
00455699 E8 0ED6FDFF call dumped_.00432CAC ; 取得注册名wofan
0045569E 8B45 90 mov eax,dword ptr ss:[ebp-70]
004556A1 8D55 94 lea edx,dword ptr ss:[ebp-6C]
004556A4 E8 37F4FFFF call dumped_.00454AE0 ; 注册名倒置
004556A9 8B45 94 mov eax,dword ptr ss:[ebp-6C]
004556AC 50 push eax
004556AD 8D55 8C lea edx,dword ptr ss:[ebp-74]
004556B0 8B87 F8020000 mov eax,dword ptr ds:[edi+2F8]
004556B6 E8 F1D5FDFF call dumped_.00432CAC
004556BB 8B55 8C mov edx,dword ptr ss:[ebp-74]
004556BE 8D45 D8 lea eax,dword ptr ss:[ebp-28]
004556C1 59 pop ecx
004556C2 E8 19EBFAFF call dumped_.004041E0
004556C7 8D55 88 lea edx,dword ptr ss:[ebp-78]
004556CA 8B87 F8020000 mov eax,dword ptr ds:[edi+2F8]
004556D0 E8 D7D5FDFF call dumped_.00432CAC
004556D5 8B45 88 mov eax,dword ptr ss:[ebp-78]
004556D8 E8 B7EAFAFF call dumped_.00404194
004556DD 83F8 03 cmp eax,3 ; 比较注册名的长度,不能少于3
004556E0 0F8E 68010000 jle dumped_.0045584E
004556E6 8D55 84 lea edx,dword ptr ss:[ebp-7C]
004556E9 8B87 FC020000 mov eax,dword ptr ds:[edi+2FC]
004556EF E8 B8D5FDFF call dumped_.00432CAC ; 取得假注册码:1234567890
004556F4 8B45 84 mov eax,dword ptr ss:[ebp-7C]
004556F7 E8 98EAFAFF call dumped_.00404194
004556FC 83F8 04 cmp eax,4 ; 注册码位数不能少于4
004556FF 0F8E 49010000 jle dumped_.0045584E
00455705 8D55 80 lea edx,dword ptr ss:[ebp-80]
00455708 8B87 FC020000 mov eax,dword ptr ds:[edi+2FC]
0045570E E8 99D5FDFF call dumped_.00432CAC
00455713 8B45 80 mov eax,dword ptr ss:[ebp-80]
00455716 E8 7DFBFFFF call dumped_.00455298
0045571B 3C 01 cmp al,1
0045571D 0F85 2B010000 jnz dumped_.0045584E
00455723 8D95 70FFFFFF lea edx,dword ptr ss:[ebp-90]
00455729 8B87 FC020000 mov eax,dword ptr ds:[edi+2FC]
0045572F E8 78D5FDFF call dumped_.00432CAC ; 假注册码
00455734 8B85 70FFFFFF mov eax,dword ptr ss:[ebp-90]
0045573A 8D8D 74FFFFFF lea ecx,dword ptr ss:[ebp-8C]
00455740 BA 80594500 mov edx,dumped_.00455980
00455745 E8 B2F6FFFF call dumped_.00454DFC ; 注册码两位一组形成十六进制数,与字串1运算
0045574A 8B85 74FFFFFF mov eax,dword ptr ss:[ebp-8C]
00455750 8D95 78FFFFFF lea edx,dword ptr ss:[ebp-88]
00455756 E8 41F8FFFF call dumped_.00454F9C
0045575B 8B85 78FFFFFF mov eax,dword ptr ss:[ebp-88]
00455761 8D8D 7CFFFFFF lea ecx,dword ptr ss:[ebp-84]
00455767 BA A4594500 mov edx,dumped_.004559A4
0045576C E8 3BFAFFFF call dumped_.004551AC
00455771 8B85 7CFFFFFF mov eax,dword ptr ss:[ebp-84]
00455777 50 push eax
00455778 8D95 64FFFFFF lea edx,dword ptr ss:[ebp-9C]
0045577E 8B87 F8020000 mov eax,dword ptr ds:[edi+2F8]
00455784 E8 23D5FDFF call dumped_.00432CAC ;获得注册名长度5
00455789 8B85 64FFFFFF mov eax,dword ptr ss:[ebp-9C]
0045578F 8D8D 68FFFFFF lea ecx,dword ptr ss:[ebp-98]
00455795 BA C8594500 mov edx,dumped_.004559C8
0045579A E8 EDF4FFFF call dumped_.00454C8C ;
0045579F 8B85 68FFFFFF mov eax,dword ptr ss:[ebp-98]
004557A5 8D8D 6CFFFFFF lea ecx,dword ptr ss:[ebp-94]
004557AB BA C8594500 mov edx,dumped_.004559C8
004557B0 E8 47F6FFFF call dumped_.00454DFC
004557B5 8B95 6CFFFFFF mov edx,dword ptr ss:[ebp-94]
004557BB 58 pop eax
004557BC E8 1FEBFAFF call dumped_.004042E0 ; 比较用的Call
004557C1 75 5C jnz short dumped_.0045581F ; 爆破点
d 00455980:
00455980 CA E9 C9 CF CB B5 D3 D0 C7 E9 C8 CB C7 A7 C0 EF 书上说有情人千里==========字串1
00455990 C4 DC B9 BB E6 BF BE EA 能够婵娟....
长度为0x18
d 004559c8看到:
004559C8 C0 B4 A3 AC C0 B4 A3 AC CE D2 CA C7 D2 BB BF C5 来,来,我是一颗====字串2
004559D8 B2 A8 B2 CB A3 AC B2 CB B2 CB B2 CB B2 CB B2 CB 波菜,菜菜菜菜菜
004559E8 B2 CB A3 A1 菜!..
长度为0x24
字串2的ASCII码会与注册名运算。
没有使用加密算法。但是sub ,xor 之类比较多。
///////////////////////////////////////////////////////////////////////////////
00454E77 B9 02000000 mov ecx,2
00454E7C BA 01000000 mov edx,1
00454E81 8B45 FC mov eax,dword ptr ss:[ebp-4]
00454E84 E8 6BF5FAFF call dumped_.004043F4-----------------注册码两位一组:12
00454E89 8B4D DC mov ecx,dword ptr ss:[ebp-24]
00454E8C 8D45 E0 lea eax,dword ptr ss:[ebp-20]
00454E8F BA 984F4500 mov edx,dumped_.00454F98
00454E94 E8 47F3FAFF call dumped_.004041E0
00454E99 8B45 E0 mov eax,dword ptr ss:[ebp-20]
00454E9C E8 1B30FBFF call dumped_.00407EBC
00454EA1 8945 EC mov dword ptr ss:[ebp-14],eax
00454EA4 BE 03000000 mov esi,3
00454EA9 8D45 D4 lea eax,dword ptr ss:[ebp-2C] ; 长循环,对前面的结果处理
00454EAC 50 push eax
00454EAD B9 02000000 mov ecx,2
00454EB2 8BD6 mov edx,esi
00454EB4 8B45 FC mov eax,dword ptr ss:[ebp-4]
00454EB7 E8 38F5FAFF call dumped_.004043F4------------取第下一组34
00454EBC 8B4D D4 mov ecx,dword ptr ss:[ebp-2C]
00454EBF 8D45 D8 lea eax,dword ptr ss:[ebp-28]
00454EC2 BA 984F4500 mov edx,dumped_.00454F98
00454EC7 E8 14F3FAFF call dumped_.004041E0
00454ECC 8B45 D8 mov eax,dword ptr ss:[ebp-28]
00454ECF E8 E82FFBFF call dumped_.00407EBC
00454ED4 8945 E4 mov dword ptr ss:[ebp-1C],eax
00454ED7 3B7D F0 cmp edi,dword ptr ss:[ebp-10]
00454EDA 7D 03 jge short dumped_.00454EDF
00454EDC 47 inc edi
00454EDD EB 05 jmp short dumped_.00454EE4
00454EDF BF 01000000 mov edi,1
00454EE4 8B45 F8 mov eax,dword ptr ss:[ebp-8]
00454EE7 33DB xor ebx,ebx
00454EE9 8A5C38 FF mov bl,byte ptr ds:[eax+edi-1]
//////////////////////////////////////////////////////////////////
00455980 CA E9 C9 CF CB B5 D3 D0 C7 E9 C8 CB C7 A7 C0 EF 书上说有情人千里
00455990 C4 DC B9 BB E6 BF BE EA 能够婵娟....
///////////////////////////////////////////////////////////////////
00454EED 335D E4 xor ebx,dword ptr ss:[ebp-1C]======= CA xor 34=FE
00454EF0 3B5D EC cmp ebx,dword ptr ss:[ebp-14]=======EBX =0xFE ,头一组:12 cmp
00454EF3 7F 0B jg short dumped_.00454F00=========jg 就执行:
00454EF5 81C3 FF000000 add ebx,0FF=======================
00454EFB 2B5D EC sub ebx,dword ptr ss:[ebp-14]=======(FE+FF-头一组)
00454EFE EB 03 jmp short dumped_.00454F03
00454F00 2B5D EC sub ebx,dword ptr ss:[ebp-14]========否则执行:FE-头一组
00454F03 8D45 D0 lea eax,dword ptr ss:[ebp-30]
00454F06 8BD3 mov edx,ebx
00454F08 E8 AFF1FAFF call dumped_.004040BC
00454F0D 8B55 D0 mov edx,dword ptr ss:[ebp-30]
00454F10 8D45 E8 lea eax,dword ptr ss:[ebp-18]
00454F13 E8 84F2FAFF call dumped_.0040419C
00454F18 8B45 E4 mov eax,dword ptr ss:[ebp-1C]
00454F1B 8945 EC mov dword ptr ss:[ebp-14],eax
00454F1E 83C6 02 add esi,2
00454F21 8B45 FC mov eax,dword ptr ss:[ebp-4]
00454F24 E8 6BF2FAFF call dumped_.00404194
00454F29 3BF0 cmp esi,eax
00454F2B ^ 0F8C 78FFFFFF jl dumped_.00454EA9 ;
00454F31 8B45 F4 mov eax,dword ptr ss:[ebp-C]
00454F34 8B55 E8 mov edx,dword ptr ss:[ebp-18]
00454F37 E8 ECEFFAFF call dumped_.00403F28
00454F3C 33C0 xor eax,eax
00454F3E 5A pop edx
00454F3F 59 pop ecx
00454F40 59 pop ecx
00454F41 64:8910 mov dword ptr fs:[eax],edx
00454F44 68 734F4500 push dumped_.00454F73
00454F49 8D45 D0 lea eax,dword ptr ss:[ebp-30]
00454F4C BA 05000000 mov edx,5
00454F51 E8 A2EFFAFF call dumped_.00403EF8
00454F56 8D45 E8 lea eax,dword ptr ss:[ebp-18]
00454F59 E8 76EFFAFF call dumped_.00403ED4
00454F5E 8D45 F8 lea eax,dword ptr ss:[ebp-8]
00454F61 BA 02000000 mov edx,2
00454F66 E8 8DEFFAFF call dumped_.00403EF8
00454F6B C3 retn
==========================================
00455980 CA E9 C9 CF CB B5 D3 D0 C7 E9 C8 CB C7 A7 C0 EF 书上说有情人千里
00455990 C4 DC B9 BB E6 BF BE EA 能够婵娟....
12 34 56 78 90
34 xor CA=FE if FE>12 then FE+FF-12 else FE-12=EC
56 xor E9=BF if BF>34 then BF+FF-12 else BF-34=8B
78 xor C9=B1 if B1>56 then B1+FF-56 else B1-56=5B
90 xor CF=5F if 5F>78 then 5F+FF-78 else 5F-78=====5F+FF-78=E6
得到:
00A590CC EC 8B 5B E6 ?[?F
后面还会对它处理:
EC-30-A-7-6-1A-6=85
8B-30-A-7-6-1A-6=42
5B-30-A-7-6-1A-6=F4
E6-30-A-7-6-1A-6=7F
======================================================================================
谁有耐心,分析一下?
|