能力值:
( LV9,RANK:450 )
|
-
-
2 楼
用PEID查显示:UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo [Overlay]
这个软件应该是 [Overlay] 的问题,建议你看一下 看雪论坛精华六 -> 脱壳技术 -> 技巧会集 -> 附加数据 -> 浅谈脱壳中的附加数据问题(overlay)
粘贴完数据后,简单跟了一下
用bp SetFilePointer 设置断点
0012F5DC 004071D2 /CALL 到 SetFilePointer 来自 ffffffff.004071CD
0012F5E0 00000094 |hFile = 00000094 (window)
0012F5E4 00025A00 |OffsetLo = 25A00 (154112.)
0012F5E8 00000000 |pOffsetHi = NULL
0012F5EC 00000000 \Origin = FILE_BEGIN
0012F5F0 0044B345 返回到 ffffffff.0044B345 来自 ffffffff.004071C8
看这段的堆栈友好提示0012F5EC 00000000 \Origin = FILE_BEGIN 这里使用的是FILE_BEGIN指针ALT+F9返回
来到这里
004071C8 51 PUSH ECX
004071C9 6A 00 PUSH 0
004071CB 52 PUSH EDX
004071CC 50 PUSH EAX
004071CD E8 12E8FFFF CALL <JMP.&kernel32.SetFilePointer>
004071D2 C3 RETN
这句004071CB 52 PUSH EDX 中的EDX就是关键,F8继续,看看是谁给EDX传的值
0044B339 . 33C9 XOR ECX,ECX
0044B33B . 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]
0044B33E . 8BC6 MOV EAX,ESI
0044B340 . E8 83BEFBFF CALL ffffffff.004071C8
0044B345 . 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]
看这句0044B33B . 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]这里是[EBP-C]把值传给了EDX,此时堆栈EBP的值是0012FE48
这里我就有点看不明白了,顺便问问高手这里应该怎么下硬件断点来找最上面SetFilePointer里所指的那个25A00呢?我对[ebp-c]也就是12FE3C下了hw 12FE3C断点,但是没找到是那传的这个25A00。高手指点一下吧。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
VFP程序啦,,2K系统,程序运行时会解压到“C:\WINNT\Downloaded Program Files\?’怜?\??\y703907.EXE”
PROCEDURE Click
SOUNDFUN('ding.wav')
IF THISFORM.TEXT2.VALUE = 0
MESSAGEBOX('请输入注册码!','提示')
THISFORM.TEXT2.SETFOCUS
RETURN
ENDIF
LOCAL REGFILE
REGFILE = GETENV('SystemRoot') + '\herbs3.lx'
IF THISFORM.TEXT2.VALUE = INT((VAL(JQM2) + 20051110) / 2008)
ZCM = INT((VAL(JQM2) + 20051110) / 2008)
SAVE to ®file ALL LIKE zcm
REG_NO = .T.
MESSAGEBOX('注册成功!','提示')
THISFORM.RELEASE
ELSE
MESSAGEBOX('注册码不对,注册不成功!','提示')
THISFORM.TEXT2.VALUE = 0
THISFORM.TEXT2.SETFOCUS
ENDIF
ENDPROC
|
能力值:
( LV9,RANK:1250 )
|
-
-
4 楼
1.0版本
PEID:Microsoft Visual C++ 5.0 [Overlay]
W32dasm载入分析后发现:
* Possible Reference to String Resource ID=00003: "Microsoft Visual FoxPro"
用UnFoxAll分析后有一个zhuce.sct的,打开就是算法。
8.0版本试了下,没能搞定。
带壳竟然能够脱离od调试器。
|
能力值:
( LV9,RANK:170 )
|
-
-
5 楼
最初由 龙岱客 发布 VFP程序啦,,2K系统,程序运行时会解压到“C:\WINNT\Downloaded Program Files\?’怜?\??\y703907.EXE”
当初跟出这文件,不知道是有何用,原来如此。谢谢。
|
能力值:
( LV9,RANK:450 )
|
-
-
6 楼
破解应该不男。讨论一下脱壳后修复[Overlay]的问题吧。
|
能力值:
( LV9,RANK:170 )
|
-
-
7 楼
最初由 RegKiller 发布 破解应该不男。讨论一下脱壳后修复[Overlay]的问题吧。
有空时再看如何修复。现在先暴了好用用再说。
|
能力值:
( LV9,RANK:170 )
|
-
-
8 楼
herbs2.exe算法
0045A31E 8D4D>lea ecx,dword ptr ss:[ebp-20]
0045A321 FFD3 call ebx ; 取出机器码
0045A323 8B0D>mov ecx,dword ptr ds:[463024]
0045A329 51 push ecx
0045A32A FF15>call dword ptr ds:[<&MSVBVM60.#581>] ; MSVBVM60.rtcR8ValFromBstr
0045A330 8B16 mov edx,dword ptr ds:[esi]
0045A332 56 push esi
0045A333 DD9D>fstp qword ptr ss:[ebp-A8]
0045A339 FF92>call dword ptr ds:[edx+304]
0045A33F 50 push eax
0045A340 8D45>lea eax,dword ptr ss:[ebp-20]
0045A343 50 push eax
0045A344 FF15>call dword ptr ds:[<&MSVBVM60.__vbaObjSet>] ; MSVBVM60.__vbaObjSet
0045A34A 8BF8 mov edi,eax
0045A34C 8D55>lea edx,dword ptr ss:[ebp-18]
0045A34F 52 push edx
0045A350 57 push edi
0045A351 8B0F mov ecx,dword ptr ds:[edi]
0045A353 FF91>call dword ptr ds:[ecx+A0]
0045A359 85C0 test eax,eax
0045A35B DBE2 fclex
0045A35D 7D 1>jge short herbs2.0045A371
0045A35F 68 A>push 0A0
0045A364 68 8>push herbs2.00404D88
0045A369 57 push edi
0045A36A 50 push eax
0045A36B FF15>call dword ptr ds:[<&MSVBVM60.__vbaHresultC>; MSVBVM60.__vbaHresultCheckObj
0045A371 8B45>mov eax,dword ptr ss:[ebp-18]
0045A374 50 push eax
0045A375 FF15>call dword ptr ds:[<&MSVBVM60.#581>] ; MSVBVM60.rtcR8ValFromBstr
0045A37B FF15>call dword ptr ds:[<&MSVBVM60.__vbaFPInt>] ; MSVBVM60.__vbaFPInt
0045A381 FF15>call dword ptr ds:[<&MSVBVM60.__vbaFpR8>] ; MSVBVM60.__vbaFpR8
0045A387 DD9D>fstp qword ptr ss:[ebp-C8]
0045A38D DD85>fld qword ptr ss:[ebp-A8]
0045A393 DC05>fadd qword ptr ds:[4011A0] 加20051115
0045A399 833D>cmp dword ptr ds:[463000],0
0045A3A0 75 0>jnz short herbs2.0045A3AA
0045A3A2 DC35>fdiv qword ptr ds:[401198] 除2000
0045A3A8 EB 1>jmp short herbs2.0045A3BB
0045A3AA FF35>push dword ptr ds:[40119C]
0045A3B0 FF35>push dword ptr ds:[401198]
0045A3B6 E8 E>call <jmp.&MSVBVM60._adj_fdiv_m64>
0045A3BB DFE0 fstsw ax 浮点数字给al
0045A3BD A8 0>test al,0D 是否是12位
0045A3BF 0F85>jnz herbs2.0045A670
0045A3C5 FF15>call dword ptr ds:[<&MSVBVM60.__vbaFPInt>] ; MSVBVM60.__vbaFPInt
0045A3CB DC05>fadd qword ptr ds:[4011A0] 加20051115
0045A3D1 DFE0 fstsw ax 浮点数字给al
0045A3D3 A8 0>test al,0D 是否是12位
0045A3D5 0F85>jnz herbs2.0045A670
0045A3DB FF15>call dword ptr ds:[<&MSVBVM60.__vbaFpR8>] ; MSVBVM60.__vbaFpR8
0045A3E1 DC9D>fcomp qword ptr ss:[ebp-C8] 与假码比较
0045A3E7 DFE0 fstsw ax
0045A3E9 F6C4>test ah,40
0045A3EC 74 0>je short herbs2.0045A3F5
0045A3EE B8 0>mov eax,1
0045A3F3 EB 0>jmp short herbs2.0045A3F7
0045A3F5 33C0 xor eax,eax
机器码:3232323232328678
注册码:1616181677304
zcm=Int((Val(JQM)+20051115)/2000+20051115)
herbs2.exe
DRIVER={Microsoft Access Driver (*.mdb)};
UID=Admin;PWD=lxsoftyxt20051115;
DBQ=\drug.dbf
输入假码后下万能断点,断下,ctrl+F9,返回后,往上看看 45A40C NOP 则注册成功。另还得去启动检验。
|
能力值:
( LV9,RANK:1250 )
|
-
-
9 楼
最初由 龙岱客 发布 VFP程序啦,,2K系统,程序运行时会解压到“C:\WINNT\Downloaded Program Files\?’怜?\??\y703907.EXE” [CODE] PROCEDURE Click SOUNDFUN('ding.wav') IF THISFORM.TEXT2.VALUE = 0 ........ 您好,我发现用foxtools反编译后用txt打开的却是一堆乱码:
?? f f P@ % ? U ? ?C? ding.wav ? %? ? ? ? ?^ ? ?C? 请输入注册码!? 提示犋?
? ? ? ? B? ? ? ? T? ?? SystemRoot5? \herbs3.lx?( %? ? ? CC? g??1??8?)? T? ?C? g??1??8?! SAVE to ®file ALL LIKE zcm
T? ?? ?C? 注册成功!? 提示犋?
? ? ? ?|? ?C? 注册码不对,注册不成功!? 提示犋? T? ? ? ? ?
? ? ? ? ? U
SOUNDFUN THISFORM TEXT2 VALUE SETFOCUS REGFILE JQM2 ZCM REG_NO RELEASE Click, ?1 Qq A A q q?? ? ?1 A 1 ) f
请问用什么打开才不会乱码?
谢谢。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
to:cyto
用PEid的Overlay插件提取y703907.EXE的overlay数据,再用“UnFoxAll 3.0专业增强版”反编译
|
能力值:
( LV9,RANK:1250 )
|
-
-
11 楼
最初由 龙岱客 发布 to:cyto
用PEid的Overlay插件提取y703907.EXE的overlay数据,再用“UnFoxAll 3.0专业增强版”反编译
谢谢回复。
我试了下,还是不行。
unfoxall3.0的载入后什么东西都没有。
只好foxtools,还能反编译出来,不过就是上面所说的乱码。
另外,overlay的粘贴后,我用winhex查看,结尾不一样的。而且不能运行粘完overlay的程序。手工粘贴然后修改SetFilePointer指针倒是可以运行,反编译后还是乱码。
对提取到的y703907.exe直接进行反汇编也得到一样的效果,就是乱码。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
最初由 cyto 发布
谢谢回复。 我试了下,还是不行。 unfoxall3.0的载入后什么东西都没有。 ........ 用unfoxall3.0反编译导出的Overlay数据*.Ovl
|
能力值:
( LV9,RANK:1250 )
|
-
-
13 楼
谢谢答复。
我实在太笨了,还是没能搞定。
你试着反编译y703907.exe看看是不是像我反编译的一样是乱码,如果不是的话那我的字体或者哪个地方出问题了。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
最初由 cyto 发布 谢谢答复。 我实在太笨了,还是没能搞定。 你试着反编译y703907.exe看看是不是像我反编译的一样是乱码,如果不是的话那我的字体或者哪个地方出问题了。
你有没用UnFoxAll反编译提取出来的Overlay数据?同样是乱码?如果是,那就没你办法了。
首先,我用FoxTools反编译y703907.exe,跟你一样得到的是乱码,而用UnFoxAll反编译不了y703907.exe,所以我选择提取Overlay数据,用FoxTools反编译提取的Overlay数据,一样得到的是乱码,用UnFoxAll反编译则可以(依然有乱码的内容,但在乱码后面UnFoxAll增加了处理过的代码,或者是FoxTools反编译不完全)。
提取的Overlay数据其实就是.app文件,可以用FoxTools反编译时在“其它-环境设置”勾选‘解密时生成.app文件以便进一步手动分析’得到,然后再用UnFoxAll反编译.app文件。
|
能力值:
( LV9,RANK:1250 )
|
-
-
15 楼
感谢龙岱客的热心,谢谢您。
终于解决了乱码问题。
我是这样做的,先foxtools反编译,得到3个文件:
IDD_ABOUT.SCT;IDD_MAIN.SCT;IDD_START.SCT
然后用unfoxall 3.0再次对这三个文件反编译,各个打开发现注册算法躺在IDD_START.SCT这个文件中。
之前对y703907.exe不关心,精力放在对overlay的处理,overlay白粘了。
|
|
|