返回信息流这几天感冒得厉害,夜里咳得不停,整天晕头转向的,今天却又蛋疼,看软开版貌似也寂静,就发个贴,保佑自己感冒早点好:)
本文没啥技术含量,就是突然无聊了写点什么的,高手略过。。。脱壳我是大菜中的大菜,所以以下要是我写的有些让你们不明白的,也不要问我,因为我也不知道为虾米要这样,哈哈~~废话少说 开刀。。。系统版本是 Windows XP SP3
首先说下软件,软件叫 “文件批量改名工具 V3.0 Beta”,下载地址可以在这边:http://www.skycn.com/soft/15449.html
先用PEid查壳显示如下图:
用OD载入该软件,停留在入口处:
00401000 > B8 440F5500 mov eax, 00550F44
00401005 50 push eax
00401006 64:FF35 0000000>push dword ptr fs:[0]
0040100D 64:8925 0000000>mov fs:[0], esp
00401014 33C0 xor eax, eax
00401016 8908 mov [eax], ecx
00401018 50 push eax
从
00401014 33C0 xor eax, eax
00401016 8908 mov [eax], ecx
这两句可以知道,会触发一个异常,所以上面的S.E.H.的安装就显得非常重要了。
所以直接在上面安装的结构化异常处理函数地址0x00550f44下个断点,F9运行后会停留在以下地方:
00550F44 B8 0EFD54F0 mov eax, F054FD0E
00550F49 8D88 59120010 lea ecx, [eax+10001259]
00550F4F 8941 01 mov [ecx+1], eax
00550F52 8B5424 04 mov edx, [esp+4]
00550F56 8B52 0C mov edx, [edx+C]
00550F59 C602 E9 mov byte ptr [edx], 0E9
00550F5C 83C2 05 add edx, 5
00550F5F 2BCA sub ecx, edx
00550F61 894A FC mov [edx-4], ecx
00550F64 33C0 xor eax, eax
00550F66 C3 retn
单步跟踪下去,这样到retn后会返回到这边:
7C9232A8 64:8B25 0000000>mov esp, fs:[0]
7C9232AF 64:8F05 0000000>pop dword ptr fs:[0]
7C9232B6 8BE5 mov esp, ebp
7C9232B8 5D pop ebp
7C9232B9 C2 1400 retn 14
很明显这个是系统dll的地址位置。我们继续单步下去,retn后来到这边:
7C9232A8 64:8B25 0000000>mov esp, fs:[0]
7C9232AF 64:8F05 0000000>pop dword ptr fs:[0]
7C9232B6 8BE5 mov esp, ebp
7C9232B8 5D pop ebp
7C9232B9 C2 1400 retn 14
继续单步,retn后来到这边:
7C92327A 5F pop edi ; ntdll.7C930228
7C92327B 5E pop esi
7C92327C 5B pop ebx
7C92327D C2 1400 retn 14
过程依然继续,retn后来到这边:
7C94AA0F F605 FAE3997C 8>test byte ptr [7C99E3FA], 80
7C94AA16 8BF8 mov edi, eax
7C94AA18 0F85 0B570200 jnz 7C970129
7C94AA1E 395D 08 cmp [ebp+8], ebx
7C94AA21 0F84 10570200 je 7C970137
7C94AA27 8BC7 mov eax, edi
7C94AA29 33C9 xor ecx, ecx
7C94AA2B 2BC1 sub eax, ecx
7C94AA2D ^ 0F85 E2F8FFFF jnz 7C94A315
7C94AA33 F646 04 01 test byte ptr [esi+4], 1
7C94AA37 0F85 44570200 jnz 7C970181
7C94AA3D C645 FF 01 mov byte ptr [ebp-1], 1
7C94AA41 5F pop edi
7C94AA42 5B pop ebx
7C94AA43 8A45 FF mov al, [ebp-1]
7C94AA46 5E pop esi
7C94AA47 C9 leave
7C94AA48 C2 0800 retn 8
废话不多说,继续来到这边:
7C92E48A 0AC0 or al, al
7C92E48C 74 0C je short 7C92E49A
7C92E48E 5B pop ebx
7C92E48F 59 pop ecx
7C92E490 6A 00 push 0
7C92E492 51 push ecx
7C92E493 E8 C6EBFFFF call ZwContinue
7C92E498 EB 0B jmp short 7C92E4A5
F7进入ZwContinue函数内部,来到这边:
7C92D05E > B8 20000000 mov eax, 20
7C92D063 BA 0003FE7F mov edx, 7FFE0300
7C92D068 FF12 call [edx]
7C92D06A C2 0800 retn 8
F7步入 call [edx]来到这边:
7C92E510 > 8BD4 mov edx, esp
7C92E512 0F34 sysenter
7C92E514 > C3 retn
呃,快进入内核了,OD是用户态,调试不了内核,所以单步到sysenter后会来到这边:
00550F67 B8 0EFD54F0 mov eax, F054FD0E
00550F6C 64:8F05 0000000>pop dword ptr fs:[0]
00550F73 83C4 04 add esp, 4
00550F76 55 push ebp
00550F77 53 push ebx
00550F78 51 push ecx
00550F79 57 push edi
00550F7A 56 push esi
00550F7B 52 push edx
00550F7C 8D98 12120010 lea ebx, [eax+10001212]
00550F82 8B53 18 mov edx, [ebx+18]
00550F85 52 push edx
00550F86 8BE8 mov ebp, eax
00550F88 6A 40 push 40
00550F8A 68 00100000 push 1000
00550F8F FF73 04 push dword ptr [ebx+4]
00550F92 6A 00 push 0
00550F94 8B4B 10 mov ecx, [ebx+10]
00550F97 03CA add ecx, edx
00550F99 8B01 mov eax, [ecx]
呃 这边就是关键代码了,从上面的代码往下看,会看到下面的某个地方有这么条指令:
00550FF0 /EB 0C jmp short 00550FFE
00550FF2 |03CA add ecx, edx
00550FF4 |68 00800000 push 8000
00550FF9 |6A 00 push 0
00550FFB |57 push edi
00550FFC |FF11 call [ecx]
00550FFE \8BC6 mov eax, esi
00551000 5A pop edx
00551001 5E pop esi
00551002 5F pop edi
00551003 59 pop ecx
00551004 5B pop ebx
00551005 5D pop ebp
00551006 FFE0 jmp eax
这条jmp eax可是关键跳,在此打断点,F9运行到断点,然后单步一下就直接奔到软件的真正入口处了!
004C9A58 55 push ebp
004C9A59 8BEC mov ebp, esp
004C9A5B 83C4 F0 add esp, -10
004C9A5E B8 D47F4C00 mov eax, 004C7FD4
004C9A63 E8 C8CCF3FF call 00406730
004C9A68 A1 A8CA4C00 mov eax, [4CCAA8]
004C9A6D 8B00 mov eax, [eax]
Ok,dump下来,脱壳完成,再次用PEid查壳显示如下:
运行下软件,没啥问题,看来脱壳成功!
总结一下吧:
这个是个压缩壳,没有反调试保护,如果是保护壳的话,那就难脱了。。。后面之所以要单步在系统dll处,是因为我这边的OD有时候好像有点Bug,不太好使,所以我就狠下心慢慢跟踪下去了。。。
该贴没啥技术含量,大牛就别看了,我也是无聊加蛋疼 或者说心血来潮才突然写写的 哈哈 保佑我感冒早点好哇~~~其实上面的好多过程我也不懂啊 就是在这边装逼啦 哈哈 大家笑纳 轻拍[em22]
这是一条镜像帖。来源:北邮人论坛 / soft-design / #37447同步于 2010/1/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
【原创】手工脱PECompact 2.x壳
jmpesp
2010/1/17镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
赞!
破解搞过一段,只是f8 f7的太枯燥了,不如写代码有趣,也就放下了。
【 在 jmpesp (民国沉思者...) 的大作中提到: 】
: 这几天感冒得厉害,夜里咳得不停,整天晕头转向的,今天却又蛋疼,看软开版貌似也寂静,就发个贴,保佑自己感冒早点好:)
: 本文没啥技术含量,就是突然无聊了写点什么的,高手略过。。。脱壳我是大菜中的大菜,所以以下要是我写的有些让你们不明白的,也不要问我,因为我也不知道为虾米要这样,哈哈~~废话少说 开刀。。。系统版本是 Windows XP SP3
: 首先说下软件,软件叫 “文件批量改名工具 V3.0 Beta”,下载地址可以在这边:http://www.skycn.com/soft/15449.html
: ...................
羡慕LZ这种会脱壳的大菜。。。小菜之中的小菜路过
【 在 jmpesp (民国沉思者...) 的大作中提到: 】
: 这几天感冒得厉害,夜里咳得不停,整天晕头转向的,今天却又蛋疼,看软开版貌似也
: 寂静,就发个贴,保佑自己感冒早点好:)
: 本文没啥技术含量,就是突然无聊了写点什么的,高手略过。。。脱壳我是大菜中的大
: 菜,所以以下要是我写的有些让你们不明白的,也不要问我,因为我也不知道为虾米要这
: 样,哈哈~~废话少说 开刀。。。系统版本是 Windows XP SP3
: 首先说下软件,软件叫 “文件批量改名工具 V3.0 Beta”,下载地址可以在这边
:http://www.skycn.com/soft/15449.html
: ...................
破解的话至少得知道windows程序的一般流程是什么样的
脱壳需要更多的是对于PE文件和汇编代码的分析
可以看看罗云彬的那本书,现在出第三版了
【 在 Vampire ({吸}{血}{鬼}) 的大作中提到: 】
: 原来翻黑客防线的时候看那上面各种脱壳破解调试跟踪
: 看不懂,但是好像很high啊
: 这个是不是先得有一定的windows api的基础?
: ...................
友情路过帮顶。。。
【 在 jmpesp (民国沉思者...) 的大作中提到: 】
: 这几天感冒得厉害,夜里咳得不停,整天晕头转向的,今天却又蛋疼,看软开版貌似也寂静,就发个贴,保佑自己感冒早点好:)
: 本文没啥技术含量,就是突然无聊了写点什么的,高手略过。。。脱壳我是大菜中的大菜,所以以下要是我写的有些让你们不明白的,也不要问我,因为我也不知道为虾米要这样,哈哈~~废话少说 开刀。。。系统版本是 Windows XP SP3
: 首先说下软件,软件叫 “文件批量改名工具 V3.0 Beta”,下载地址可以在这边:http://www.skycn.com/soft/15449.html
: ...................
引用炮儿爷语录:好的!
顺便教育下一代不要再做IT民工。。。
【 在 coolwc (小包) 的大作中提到: 】
: 何不给我们展示一下神的世界。。。