- 论坛徽章:
- 0
|
猫脱 PECompact 2.x -> Jeremy Collake\r\n软件名称:灵点条码打印系统\r\n语言种类: 简体中文 \r\n版 本 号: V2.0 \r\n文件大小: 909 K \r\n软件类型: 共享\r\n脱壳文章作者:野猫III[D.4s]\r\n下载地址:http://download.enet.com.cn/html/030812006032201.html\r\n新版下载:http://down.itbbs.com/Software/View-Software-5672.html\r\n软件简介:\r\n通用的条码打印系统,配置灵活支持20多种国际标准,无须专用打印机和条码纸,在Windows系统下安装即可使用,打印提供多种选项,可以选择打印条码汉字标题,条形码编码,位置可以任意确定,条码制作所见所得,提供实时预览功能,无需在打印机上反复调试,对纸张无特殊要求,从信封,卡片,证照到不干胶标签,专用条码纸都可以准确打印,输入可以批量制作,个别输入或文本文件导入,输出提供批量,选范围和个别打印的功能,完全能够适合各种行业的特殊要求。\r\n\r\n脱壳过程:\r\n\r\n一、用 PEiD查出是PECompact 2.x -> Jeremy Collake壳。\r\n\r\n二、用OD载入,忽略所有异常,然后重新载入程序。载入后,代码停在这里:\r\n\r\n00401000 > $ B8 681B6300 MOV EAX,JYtmw.00631B68\r\n00401005 . 50 PUSH EAX\r\n00401006 . 64:FF35 00000>;PUSH DWORD PTR FS:[0]\r\n//F8单步来到这里,看寄存器。ESP红了。\r\n\r\n++++++++++++++++++++++++\r\nEAX 00631B68 JYtmw.00631B68\r\nECX 0012FFB0\r\nEDX 7C92EB94 ntdll.KiFastSystemCallRet\r\nEBX 7FFDF000\r\nESP 0012FFC0 。。。。。。。ESP红了!我们接着下断这个硬件断点。\r\nEBP 0012FFF0\r\nESI FFFFFFFF\r\nEDI 7C930738 ntdll.7C930738\r\nEIP 00401006 JYtmw.00401006\r\nC 0 ES 0023 32位 0(FFFFFFFF)\r\nP 1 CS 001B 32位 0(FFFFFFFF)\r\nA 0 SS 0023 32位 0(FFFFFFFF)\r\nZ 1 DS 0023 32位 0(FFFFFFFF)\r\nS 0 FS 003B 32位 7FFDE000(FFF)\r\nT 0 GS 0000 NULL\r\nD 0\r\nO 0 LastErr ERROR_CLASS_ALREADY_EXISTS (00000582)\r\nEFL 00000246 (NO,NB,E,BE,NS,PE,GE,LE)\r\nST0 empty -UNORM D1D8 01050104 00000000\r\nST1 empty 0.0\r\nST2 empty 0.0\r\nST3 empty 0.0\r\nST4 empty 0.0\r\nST5 empty 0.0\r\nST6 empty 1.0000000000000000000\r\nST7 empty 1.0000000000000000000\r\n3 2 1 0 E S P U O Z D I\r\nFST 4020 Cond 1 0 0 0 Err 0 0 1 0 0 0 0 0 (EQ)\r\nFCW 027F Prec NEAR,53 掩码 1 1 1 1 1 1\r\n+++++++++++++++++++++++++++++\r\n在OD命令栏输入dd 12FFC0,Enter键之后,我们在数据窗口中看到:\r\n0012FFC0 00631B68 JYtmw.00631B68 。。。右键--断点---硬件断点--双字\r\n0012FFC4 7C816D4F 返回到 kernel32.7C816D4F\r\n0012FFC8 7C930738 ntdll.7C930738\r\n====================然后点OD的运得按钮。来到:\r\n7C957826 3B45 F8 CMP EAX,DWORD PTR SS:[EBP-8]\r\n7C957829 72 09 JB SHORT ntdll.7C957834\r\n7C95782B 3B45 F4 CMP EAX,DWORD PTR SS:[EBP-C]\r\n7C95782E ^ 0F82 F731FFFF JB ntdll.7C94AA2B\r\n7C957834 50 PUSH EAX\r\n7C957835 E8 67000000 CALL ntdll.7C9578A1\r\n7C95783A 84C0 TEST AL,AL\r\n7C95783C ^ 0F84 E931FFFF JE ntdll.7C94AA2B\r\n7C957842 F605 5AC3997C 8>TEST BYTE PTR DS:[7C99C35A],80\r\n7C957849 0F85 20720100 JNZ ntdll.7C96EA6F \r\n。。F8到这里的时候,跳转不实现。右键--->跟随!\r\n+++++++++++++++++++++++++++++++++\r\n7C96EA6F 6A 10 PUSH 10\r\n7C96EA71 53 PUSH EBX\r\n7C96EA72 6A 00 PUSH 0\r\n7C96EA74 FF75 0C PUSH DWORD PTR SS:[EBP+C]\r\n7C96EA77 56 PUSH ESI\r\n7C96EA78 E8 136B0100 CALL ntdll.7C985590\r\n7C96EA7D 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX\r\n7C96EA80 ^ E9 CA8DFEFF JMP ntdll.7C95784F\r\n7C96EA85 57 PUSH EDI 。。。右键-->断点-->运行到所选!\r\n7C96EA86 FF75 F0 PUSH DWORD PTR SS:[EBP-10]\r\n+++++++++++++++++++++++++++\r\n7C957852 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]\r\n7C957855 50 PUSH EAX\r\n7C957856 FF75 0C PUSH DWORD PTR SS:[EBP+C]\r\n7C957859 53 PUSH EBX\r\n7C95785A 56 PUSH ESI\r\n7C95785B E8 F3BEFCFF CALL ntdll.7C923753\r\n7C957860 F605 5AC3997C 8>TEST BYTE PTR DS:[7C99C35A],80\r\n7C957867 8BF8 MOV EDI,EAX\r\n7C957869 0F85 16720100 JNZ ntdll.7C96EA85 \r\n7C95786F 395D 08 CMP DWORD PTR SS:[EBP+8],EBX\r\n7C957872 0F84 1B720100 JE ntdll.7C96EA93\r\n7C957878 8BC7 MOV EAX,EDI\r\n7C95787A 33C9 XOR ECX,ECX\r\n7C95787C 2BC1 SUB EAX,ECX\r\n7C95787E ^ 0F85 8631FFFF JNZ ntdll.7C94AA0A\r\n7C957884 F646 04 01 TEST BYTE PTR DS:[ESI+4],1\r\n7C957888 0F85 4F720100 JNZ ntdll.7C96EADD \r\n7C95788E C645 FF 01 MOV BYTE PTR SS:[EBP-1],1\r\n7C957892 5F POP EDI\r\n7C957893 5B POP EBX\r\n7C957894 8A45 FF MOV AL,BYTE PTR SS:[EBP-1]\r\n7C957897 5E POP ESI\r\n7C957898 C9 LEAVE\r\n7C957899 C2 0800 RETN 8 .............单步来到这里。再单步跳进。一直单步来到下面。\r\n++++++++++++++++++++++\r\n00631B9B 53 PUSH EBX\r\n00631B9C 51 PUSH ECX\r\n00631B9D 57 PUSH EDI\r\n00631B9E 56 PUSH ESI\r\n00631B9F 52 PUSH EDX\r\n00631BA0 8D98 57120010 LEA EBX,DWORD PTR DS:[EAX+10001257] 。。。F8到这时,观察ESP.\r\n00631BA6 8B53 18 MOV EDX,DWORD PTR DS:[EBX+18]\r\n++++++++++++++++++++++++\r\nEAX F06308ED\r\nECX 0012FFB0\r\nEDX 7C92EB94 ntdll.KiFastSystemCallRet\r\nEBX 7FFD9000\r\nESP 0012FFAC ........ESP红了,下命令点断: dd 12ffac\r\nEBP 0012FFF0\r\nESI FFFFFFFF\r\nEDI 7C930738 ntdll.7C930738\r\nEIP 00631BA0 JYtmw.00631BA0\r\nC 0 ES 0023 32位 0(FFFFFFFF)\r\nP 0 CS 001B 32位 0(FFFFFFFF)\r\nA 0 SS 0023 32位 0(FFFFFFFF)\r\nZ 0 DS 0023 32位 0(FFFFFFFF)\r\nS 0 FS 003B 32位 7FFDF000(FFF)\r\nT 0 GS 0000 NULL\r\nD 0\r\nO 0 LastErr ERROR_CLASS_ALREADY_EXISTS (00000582)\r\nEFL 00000202 (NO,NB,NE,A,NS,PO,GE,G)\r\nST0 empty -UNORM BBB0 01050104 00000000\r\nST1 empty 0.0\r\nST2 empty 0.0\r\nST3 empty 0.0\r\nST4 empty 0.0\r\nST5 empty 0.0\r\nST6 empty 1.0000000000000000000\r\nST7 empty 1.0000000000000000000\r\n3 2 1 0 E S P U O Z D I\r\nFST 4020 Cond 1 0 0 0 Err 0 0 1 0 0 0 0 0 (EQ)\r\nFCW 027F Prec NEAR,53 掩码 1 1 1 1 1 1\r\n++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n在OD中下命令断点: dd 12ffac , Enter键之后,我们在数据跟随窗口中看到:\r\n0012FFAC 7C92EB94 ntdll.KiFastSystemCallRet 。。。右键--断点-硬件访问--双字。\r\n\r\n0012FFB0 FFFFFFFF\r\n0012FFB4 7C930738 ntdll.7C930738\r\n+++++++++++点OD的运行按钮程序被断在这里:\r\n00631C25 5E POP ESI ; JYtmw.005839E0\r\n00631C26 5F POP EDI\r\n00631C27 59 POP ECX\r\n00631C28 5B POP EBX\r\n00631C29 5D POP EBP\r\n00631C2A FFE0 JMP EAX 。。。F8单步来这。再F8进去看到光明!\r\n00631C2C E0 39 LOOPDNE SHORT JYtmw.00631C67\r\n\r\n+++++++++++++++++++++++++++++++++\r\n005839E0 55 DB 55 ; CHAR \'U\' \r\n。。。。。右键---分析--从模块中删除分析\r\n005839E1 8B DB 8B\r\n005839E2 EC DB EC\r\n005839E3 83 DB 83\r\n005839E4 C4 DB C4\r\n005839E5 F0 DB F0\r\n005839E6 B8 DB B8\r\n005839E7 40 DB 40 ; CHAR \'@\'\r\n005839E8 16 DB 16\r\n+++++++++++++++++++\r\n005839E0 55 PUSH EBP 。。。。。。。。很熟悉吧!右键--用Ollydump脱壳--保存。\r\n005839E1 8BEC MOV EBP,ESP\r\n005839E3 83C4 F0 ADD ESP,-10\r\n005839E6 B8 40165800 MOV EAX,JYtmw.00581640\r\n005839EB E8 A43DE8FF CALL JYtmw.00407794\r\n005839F0 68 783A5800 PUSH JYtmw.00583A78\r\n005839F5 68 8C3A5800 PUSH JYtmw.00583A8C ; ASCII \"TApplication\"\r\n005839FA E8 5547E8FF CALL JYtmw.00408154 ; JMP 到 USER32.FindWindowA\r\n++++++++++++++++\r\n1839E0\r\n\r\n试运行脱壳后的程序,正常!查壳得:Borland Delphi 6.0 - 7.0\r\n\r\n至此,脱壳完成!谢谢观看。 |
|