小弟练习脱armadillo壳。
练习对象为吉历3.15版。
信息如下:
<------- 20-04-2007 04:17:06 ------->
C:\Program Files\JiLi\JiLi.exe
!- Protected Armadillo
Protection system (Basic)
!- <Protection Options>
Standard protection or Minimum protection
!- <Backup Key Options>
No Registry Keys at All
!- <Compression Options>
Better/Slower Compression
!- <Other Options>
!- Version 3.05 06Jun2003
现在遇到困难是没有已知key,因此想求助各位,谁有该软件的已知key能否分享一下,让小弟能有机会急需完成这篇文章。
文章已经完成部分如下:(仅为手记,有待脱壳成功后整理。)
软件ID:C039-DA55
下断:he GetDlgItem
堆栈提示:
0012BB10 00C9408B /CALL 到 GetDlgItem 来自 00C94089
0012BB14 002E033E |hWnd = 002E033E ('『吉历』V3.15',class='#32770',parent=0048031C)
0012BB18 00000407 \ControlID = 407 (1031.)
ALT F9返回:
00C9408B 8B1D 5453CA00 MOV EBX,DWORD PTR DS:[CA5354] ; USER32.GetWindowTextA
00C94091 50 PUSH EAX
00C94092 FFD3 CALL EBX
向下找到:
00C942DC 50 PUSH EAX
00C942DD FFD7 CALL EDI
00C942DF 8B0D 9C1BCB00 MOV ECX,DWORD PTR DS:[CB1B9C]
00C942E5 399C24 24020000 CMP DWORD PTR SS:[ESP+224],EBX
00C942EC 0F84 AE000000 JE 00C943A0
00C942F2 53 PUSH EBX
00C942F3 E8 CBD9FFFF CALL 00C91CC3 //跟进这个CALL
00C942F8 8B0D 9C1BCB00 MOV ECX,DWORD PTR DS:[CB1B9C]
00C942FE 53 PUSH EBX
00C942FF 894424 14 MOV DWORD PTR SS:[ESP+14],EAX
00C94303 E8 60C9FFFF CALL 00C90C68
00C94308 8B8C24 24020000 MOV ECX,DWORD PTR SS:[ESP+224]
00C9430F 83F9 01 CMP ECX,1
00C94312 75 25 JNZ SHORT 00C94339
00C94314 8B4424 10 MOV EAX,DWORD PTR SS:[ESP+10]
00C94318 8BC8 MOV ECX,EAX
00C9431A 81E1 FFFF0000 AND ECX,0FFFF
00C94320 C1E8 10 SHR EAX,10
00C94323 51 PUSH ECX
00C94324 50 PUSH EAX
00C94325 8D4424 1C LEA EAX,DWORD PTR SS:[ESP+1C]
00C94329 68 488FCA00 PUSH 0CA8F48 ; ASCII "%04X-%04X"
00C9432E 50 PUSH EAX
00C9432F E8 78A50000 CALL 00C9E8AC
来到这里
00C91CC3 8B81 C8150000 MOV EAX,DWORD PTR DS:[ECX+15C8]
00C91CC9 8B5424 04 MOV EDX,DWORD PTR SS:[ESP+4]
00C91CCD 8B4490 18 MOV EAX,DWORD PTR DS:[EAX+EDX*4+18]
00C91CD1 3381 F4080000 XOR EAX,DWORD PTR DS:[ECX+8F4]
00C91CD7 C2 0400 RETN 4 //在这里下硬件执行断点
重载程序,运行
程序断下:EAX提示:C039DA55,刚好是我的软件ID,现在开始准备写补丁代码。
分配一块内存:10000000,大小1000
修改:00C91CD1 3381 F4080000 XOR EAX,DWORD PTR DS:[ECX+8F4]
变成:00C91CD1 - E9 2AE3360F JMP 10000000
重新指定EIP为:00C91CD1
F8单步。
到达修改的位置:
10000000 35 8AC0E665 XOR EAX,DWORD PTR DS:[ECX+8F4] ; 恢复原来的代码
10000006 B8 41DD485F MOV EAX, ;替换成可用 KEY 的指纹
1000000B C2 0800 RETN 4 ; 原来的代码
现在就差找一个可用的key了!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
还有一个问题,我用OD编辑类似MOV EAX,XXXXXX的时候,如果XXXXXXX是999999以上的数字的时候,比如ABCDEF就无法编辑了,这是为什么呢?看到前辈们的脱文里有这样编辑的啊,为什么我就不能呢?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)