- UID
- 8671
注册时间2006-2-27
阅读权限40
最后登录1970-1-1
独步武林
TA的每日心情 | 开心 2018-5-6 16:27 |
---|
签到天数: 7 天 [LV.3]偶尔看看II
|
猫脱 PECompact 2.x -> Jeremy Collake
软件名称:灵点条码打印系统
语言种类: 简体中文
版 本 号: V2.0
文件大小: 909 K
发布日期: 2006.03.22
软件类型: 共享
脱壳文章作者:野猫III[D.4s]
演示动画:https://www.chinapyg.com/viewthr ... a=page%3D1#pid25362
下载地址:http://download.enet.com.cn/html/030812006032201.html
新版下载:http://down.itbbs.com/Software/View-Software-5672.html <---下载了好像也是2.0版!
软件简介:
通用的条码打印系统,配置灵活支持20多种国际标准,无须专用打印机和条码纸,在Windows系统下安装即可使用,打印提供多种选项,可以选择打印条码汉字标题,条形码编码,位置可以任意确定,条码制作所见所得,提供实时预览功能,无需在打印机上反复调试,对纸张无特殊要求,从信封,卡片,证照到不干胶标签,专用条码纸都可以准确打印,输入可以批量制作,个别输入或文本文件导入,输出提供批量,选范围和个别打印的功能,完全能够适合各种行业的特殊要求。
脱壳过程:
一、用 PEiD查出是PECompact 2.x -> Jeremy Collake壳。
二、用OD载入,忽略所有异常,然后重新载入程序。载入后,代码停在这里:
00401000 > $ B8 681B6300 MOV EAX,JYtmw.00631B68
00401005 . 50 PUSH EAX
00401006 . 64:FF35 00000>PUSH DWORD PTR FS:[0]
//F8单步来到这里,看寄存器。ESP红了。
++++++++++++++++++++++++
EAX 00631B68 JYtmw.00631B68
ECX 0012FFB0
EDX 7C92EB94 ntdll.KiFastSystemCallRet
EBX 7FFDF000
ESP 0012FFC0 。。。。。。。ESP红了!我们接着下断这个硬件断点。
EBP 0012FFF0
ESI FFFFFFFF
EDI 7C930738 ntdll.7C930738
EIP 00401006 JYtmw.00401006
C 0 ES 0023 32位 0(FFFFFFFF)
P 1 CS 001B 32位 0(FFFFFFFF)
A 0 SS 0023 32位 0(FFFFFFFF)
Z 1 DS 0023 32位 0(FFFFFFFF)
S 0 FS 003B 32位 7FFDE000(FFF)
T 0 GS 0000 NULL
D 0
O 0 LastErr ERROR_CLASS_ALREADY_EXISTS (00000582)
EFL 00000246 (NO,NB,E,BE,NS,PE,GE,LE)
ST0 empty -UNORM D1D8 01050104 00000000
ST1 empty 0.0
ST2 empty 0.0
ST3 empty 0.0
ST4 empty 0.0
ST5 empty 0.0
ST6 empty 1.0000000000000000000
ST7 empty 1.0000000000000000000
3 2 1 0 E S P U O Z D I
FST 4020 Cond 1 0 0 0 Err 0 0 1 0 0 0 0 0 (EQ)
FCW 027F Prec NEAR,53 掩码 1 1 1 1 1 1
+++++++++++++++++++++++++++++
在OD命令栏输入dd 12FFC0,Enter键之后,我们在数据窗口中看到:
0012FFC0 00631B68 JYtmw.00631B68 。。。右键--断点---硬件断点--双字
0012FFC4 7C816D4F 返回到 kernel32.7C816D4F
0012FFC8 7C930738 ntdll.7C930738
====================然后点OD的运得按钮。来到:
7C957826 3B45 F8 CMP EAX,DWORD PTR SS:[EBP-8]
7C957829 72 09 JB SHORT ntdll.7C957834
7C95782B 3B45 F4 CMP EAX,DWORD PTR SS:[EBP-C]
7C95782E ^ 0F82 F731FFFF JB ntdll.7C94AA2B
7C957834 50 PUSH EAX
7C957835 E8 67000000 CALL ntdll.7C9578A1
7C95783A 84C0 TEST AL,AL
7C95783C ^ 0F84 E931FFFF JE ntdll.7C94AA2B
7C957842 F605 5AC3997C 8>TEST BYTE PTR DS:[7C99C35A],80
7C957849 0F85 20720100 JNZ ntdll.7C96EA6F
。。F8到这里的时候,跳转不实现。右键--->跟随!
+++++++++++++++++++++++++++++++++
7C96EA6F 6A 10 PUSH 10
7C96EA71 53 PUSH EBX
7C96EA72 6A 00 PUSH 0
7C96EA74 FF75 0C PUSH DWORD PTR SS:[EBP+C]
7C96EA77 56 PUSH ESI
7C96EA78 E8 136B0100 CALL ntdll.7C985590
7C96EA7D 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
7C96EA80 ^ E9 CA8DFEFF JMP ntdll.7C95784F
7C96EA85 57 PUSH EDI 。。。右键-->断点-->运行到所选!
7C96EA86 FF75 F0 PUSH DWORD PTR SS:[EBP-10]
+++++++++++++++++++++++++++
7C957852 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
7C957855 50 PUSH EAX
7C957856 FF75 0C PUSH DWORD PTR SS:[EBP+C]
7C957859 53 PUSH EBX
7C95785A 56 PUSH ESI
7C95785B E8 F3BEFCFF CALL ntdll.7C923753
7C957860 F605 5AC3997C 8>TEST BYTE PTR DS:[7C99C35A],80
7C957867 8BF8 MOV EDI,EAX
7C957869 0F85 16720100 JNZ ntdll.7C96EA85
7C95786F 395D 08 CMP DWORD PTR SS:[EBP+8],EBX
7C957872 0F84 1B720100 JE ntdll.7C96EA93
7C957878 8BC7 MOV EAX,EDI
7C95787A 33C9 XOR ECX,ECX
7C95787C 2BC1 SUB EAX,ECX
7C95787E ^ 0F85 8631FFFF JNZ ntdll.7C94AA0A
7C957884 F646 04 01 TEST BYTE PTR DS:[ESI+4],1
7C957888 0F85 4F720100 JNZ ntdll.7C96EADD
7C95788E C645 FF 01 MOV BYTE PTR SS:[EBP-1],1
7C957892 5F POP EDI
7C957893 5B POP EBX
7C957894 8A45 FF MOV AL,BYTE PTR SS:[EBP-1]
7C957897 5E POP ESI
7C957898 C9 LEAVE
7C957899 C2 0800 RETN 8 .............单步来到这里。再单步跳进。一直单步来到下面。
++++++++++++++++++++++
00631B9B 53 PUSH EBX
00631B9C 51 PUSH ECX
00631B9D 57 PUSH EDI
00631B9E 56 PUSH ESI
00631B9F 52 PUSH EDX
00631BA0 8D98 57120010 LEA EBX,DWORD PTR DS:[EAX+10001257] 。。。F8到这时,观察ESP.
00631BA6 8B53 18 MOV EDX,DWORD PTR DS:[EBX+18]
++++++++++++++++++++++++
EAX F06308ED
ECX 0012FFB0
EDX 7C92EB94 ntdll.KiFastSystemCallRet
EBX 7FFD9000
ESP 0012FFAC ........ESP红了,下命令点断: dd 12ffac
EBP 0012FFF0
ESI FFFFFFFF
EDI 7C930738 ntdll.7C930738
EIP 00631BA0 JYtmw.00631BA0
C 0 ES 0023 32位 0(FFFFFFFF)
P 0 CS 001B 32位 0(FFFFFFFF)
A 0 SS 0023 32位 0(FFFFFFFF)
Z 0 DS 0023 32位 0(FFFFFFFF)
S 0 FS 003B 32位 7FFDF000(FFF)
T 0 GS 0000 NULL
D 0
O 0 LastErr ERROR_CLASS_ALREADY_EXISTS (00000582)
EFL 00000202 (NO,NB,NE,A,NS,PO,GE,G)
ST0 empty -UNORM BBB0 01050104 00000000
ST1 empty 0.0
ST2 empty 0.0
ST3 empty 0.0
ST4 empty 0.0
ST5 empty 0.0
ST6 empty 1.0000000000000000000
ST7 empty 1.0000000000000000000
3 2 1 0 E S P U O Z D I
FST 4020 Cond 1 0 0 0 Err 0 0 1 0 0 0 0 0 (EQ)
FCW 027F Prec NEAR,53 掩码 1 1 1 1 1 1
++++++++++++++++++++++++++++++++++++++++++++++++++++
在OD中下命令断点: dd 12ffac , Enter键之后,我们在数据跟随窗口中看到:
0012FFAC 7C92EB94 ntdll.KiFastSystemCallRet 。。。右键--断点-硬件访问--双字。
0012FFB0 FFFFFFFF
0012FFB4 7C930738 ntdll.7C930738
+++++++++++点OD的运行按钮程序被断在这里:
00631C25 5E POP ESI ; JYtmw.005839E0
00631C26 5F POP EDI
00631C27 59 POP ECX
00631C28 5B POP EBX
00631C29 5D POP EBP
00631C2A FFE0 JMP EAX 。。。F8单步来这。再F8进去看到光明!
00631C2C E0 39 LOOPDNE SHORT JYtmw.00631C67
+++++++++++++++++++++++++++++++++
005839E0 55 DB 55 ; CHAR 'U'
。。。。。右键---分析--从模块中删除分析
005839E1 8B DB 8B
005839E2 EC DB EC
005839E3 83 DB 83
005839E4 C4 DB C4
005839E5 F0 DB F0
005839E6 B8 DB B8
005839E7 40 DB 40 ; CHAR '@'
005839E8 16 DB 16
+++++++++++++++++++
005839E0 55 PUSH EBP 。。。。。。。。很熟悉吧!右键--用Ollydump脱壳--保存。
005839E1 8BEC MOV EBP,ESP
005839E3 83C4 F0 ADD ESP,-10
005839E6 B8 40165800 MOV EAX,JYtmw.00581640
005839EB E8 A43DE8FF CALL JYtmw.00407794
005839F0 68 783A5800 PUSH JYtmw.00583A78
005839F5 68 8C3A5800 PUSH JYtmw.00583A8C ; ASCII "TApplication"
005839FA E8 5547E8FF CALL JYtmw.00408154 ; JMP 到 USER32.FindWindowA
++++++++++++++++
1839E0
试运行脱壳后的程序,正常!查壳得:Borland Delphi 6.0 - 7.0
至此,脱壳完成!谢谢观看。
本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
[ 本帖最后由 野猫III 于 2006-5-10 16:48 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|