首页
社区
课程
招聘
Obsidium V1.1.1.4 脱壳――jingulong兄的UnPackIt.EXE
发表于: 2004-4-28 22:13 16096

Obsidium V1.1.1.4 脱壳――jingulong兄的UnPackIt.EXE

fly 活跃值
85
2004-4-28 22:13
16096
00407000     EB 02               jmp short unpackit.00407004//进入OD后停在这
003A161B     F7F0                div eax//第1次异常
003A4FA9     F7F0                div eax//第2次异常
003A5363     F7F0                div eax//第3次异常
003A54D9     F7F0                div eax//第4次异常   输入表处理
003A381D     F7F0                div eax//第5次异常
003A3BD1     F7F0                div eax//第6次异常
003A381D     F7F0                div eax//第7次异常
003A3BD1     F7F0                div eax//第8次异常   
00408818     F7F0                div eax//第9次异常   跳OEP
003A64F0     66:F706 2000        test word ptr ds:[esi],20//找到这里
003A64F5     74 59               je short 003A6550
0040884C     C8 000000           enter 0,0//此处下断,Shift+F9断在这
00408850     EB 02               jmp short unpackit.00408854
004088D9     8990 B8000000       mov dword ptr ds:[eax+B8],edx//此处下断,F9断在这 EDX=00408B78
004088DF     EB 03               jmp short unpackit.004088E4
00408B78     E8 B7000000         call unpackit.00408C34//F7进入
00408C34     F8                  clc
00408C35     73 06               jnb short unpackit.00408C3D
00408C3D     60                  pushad
00408C3E     836C24 20 05        sub dword ptr ss:[esp+20],5
00408C43     8B4C24 20           mov ecx,dword ptr ss:[esp+20]
00408C47     F9                  stc
00408C48     72 02               jb short unpackit.00408C4C
00408C4C     C601 FA             mov byte ptr ds:[ecx],0FA
00408C4F     EB 04               jmp short unpackit.00408C55
00408C55     C741 01 80BAF580    mov dword ptr ds:[ecx+1],80F5BA80
00408C5C     F8                  clc
00408C5D     73 05               jnb short unpackit.00408C64
00408C64     BB BC000000         mov ebx,0BC
00408C69     F8                  clc
00408C6A     73 01               jnb short unpackit.00408C6D
00408C6D     B8 E8ED7C07         mov eax,77CEDE8
00408C72     C009 0F             ror byte ptr ds:[ecx],0F
00408C75     C109 5F             ror dword ptr ds:[ecx],5F
00408C78     F9                  stc
00408C79     72 06               jb short unpackit.00408C81
00408C81     F8                  clc
00408C82     73 03               jnb short unpackit.00408C87
00408C87     83C1 04             add ecx,4
00408C8A     F8                  clc
00408C8B     73 01               jnb short unpackit.00408C8E
00408C8E     81E8 8CB4A71A       sub eax,1AA7B48C
00408C94     83EB 04             sub ebx,4
00408C97     0F85 D5FFFFFF       jnz unpackit.00408C72
00408C9E     73 05               jnb short unpackit.00408CA5
00408CA5     61                  popad
00408CA6     F9                  stc
00408CA7     72 04               jb short unpackit.00408CAD
00408CAD     C3                  retn//返回00408B78 这段代码其实就是再次解码00408B78

00408B78     EB 01               jmp short unpackit.00408B7B

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 11
支持
分享
最新回复 (30)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
UnPacKit [Obsidium V1.1.1.4]

Try
2004-4-28 22:14
0
雪    币: 217
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
刚逛到这,呵呵,看到了:D
2004-4-28 22:24
0
雪    币: 227
活跃值: (164)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
pf
学习 ing...
2004-4-28 22:25
0
雪    币: 245
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
分板块建立是有必要的,否则感觉有点杂乱。建议再增加一个工具使用讨论板块。
学习脱文。。。
2004-4-28 22:32
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好啊.继续学习!:o
2004-4-28 22:59
0
雪    币: 303
活跃值: (476)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
1 恭喜脱壳论坛建立
2 感谢FLY大虾的文章,FLY大虾的文章是最详细的说
2004-4-28 23:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
还请不吝赐教:
老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志。忽略除了“整数被0除”之外的所有其他异常选项。

是否在开始试探的时候,需要不忽略所有异常。才会找到最后一次异常和比较重要的异常?
03A54D9     F7F0                div eax//第4次异常   输入表处理  003A381D     F7F0                div eax//第5次异常  003A3BD1     F7F0                div eax//第6次异常  003A381D     F7F0                div eax//第7次异常  003A3BD1     F7F0                div eax//第8次异常     00408818     F7F0                div eax//第9次异常   跳OEP

最后一次跳OEP可以理解,但怎么得知IAT处理的异常呢?
我个人一直是用过那个异常的时间会比较长,而且详细跟踪会在里面找到一些dll相关的API调用,不知是否想法正确?
结合上一个问题,怎么可以判断跳OEP和处理IAT使用的是同一种异常呢?
搜索命令:test word ptr ds:[esi],20   003A64F0 66:F706 2000 test word ptr ds:[esi],20//找到这里  003A64F5 74 59 je short 003A6550

这个结果应该是跟踪到的吧,怎么就知道在这里就是对IAT是否处理过的判断呢?
在手动脱一些简单壳的时候(如aspack早期版本),我也自己跟到了类似的地方。经诸位大虾脱文指点也确认地方正确。
可到底怎么判断是否正确呢?
是不是看在这个判断语句后面的对内存操作中,是否对类似IAT结构的内存进行了操作或擦除?
如果是这样的,那么在如此多的代码中又是怎么找到这个地方的呢?
(不会是一句一句跟,然后看关注对内存有操作的循环吧-__-)

还有个问题,就是如果去看Yoda's。。。的源码,是不是会对IAT加密的过程有更深入的了解,个人觉得现在自己蒙的成分比较大

洗耳恭听中。。。

                                  菜鸟:xuanqing
2004-4-28 23:07
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
9
xuanqing 兄客气了。

其实很多脱壳笔记都是数十次脱壳过程的整理
每次脱壳寻找相对简单点的方法,积累起来,最后才汇总成笔记

因为比较烦人,所以常写脱壳笔记的兄弟不太多
2004-4-28 23:32
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
10
TO xuanqing 兄:

是否在开始试探的时候,需要不忽略所有异常。才会找到最后一次异常和比较重要的异常?


碰到不熟悉的壳时基本上我是这样操作的。有脱壳笔记的壳参看其他兄弟的经验省许多事

最后一次跳OEP可以理解,但怎么得知IAT处理的异常呢?

呵呵,写笔记之前我跟踪过几次

结合上一个问题,怎么可以判断跳OEP和处理IAT使用的是同一种异常呢?

这个不确定。有些作者喜欢他常用的手法

是不是看在这个判断语句后面的对内存操作中,是否对类似IAT结构的内存进行了操作或擦除?

可以在IAT下内存断点,看看是哪里对IAT操作的

就是如果去看Yoda's。。。的源码,是不是会对IAT加密的过程有更深入的了解

的确如此,如果能够写猛壳或者脱壳机,肯定对于这些知识了解的比较通彻
2004-4-29 01:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
bow//
多谢fly大虾一一指点
2004-4-29 11:10
0
雪    币: 227
活跃值: (160)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
请教fly
完成了下面的步骤,在修复iat时遇到问题。imr不承认,并异常退出。

“运行LordPE,先完全Dump这个进程,然后“区域脱壳”,地址=00A10000,大小=00008000,得到Region00A10000-00A18000.dmp文件。用LordPE打开dumped.exe,从磁盘载入Region00A10000-00A18000.dmp区段,改其VOffset=00610000。只保留LordPE的“验证PE”选项,对dumped.exe重建PE。OK,Dump完毕!”

我是用另外一个unpack.exe,结构也很相象,学完unpackit.exe,再请教。
2004-4-29 17:04
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
13
lipton 兄客气了
试试Import REConstructor V1.42+版

另外:注册版Obsidium加壳程序有的使用了SDK,需要修复代码
2004-4-29 18:05
0
雪    币: 557
活跃值: (2303)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
14
Oh MY GOD,笨呢。怎么一下没想到这个办法呢,我可是用了很多时间才把资源的问题基本解决,早学乖一点,就不用这么“忙”了。
2004-4-29 18:30
0
雪    币: 227
活跃值: (160)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
to fly
修复iat的问题解决了,原因是我把Roffset也改成了610000,笨啊。
不过还是不能运行,对比你脱壳的文件有许多不同之处,估计是修复Pe时的错误。
另外想问一下,这个壳你是用imr1.42+修复的?
2004-4-29 19:20
0
雪    币: 228
活跃值: (165)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
这个壳其实可以添加一个新区段把OEP的数据放进去.主程序我找不到破解NOP的地方.:(
2004-4-29 20:18
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
17
最初由 lipton 发布
to fly
修复iat的问题解决了,原因是我把Roffset也改成了610000,笨啊。
不过还是不能运行,对比你脱壳的文件有许多不同之处,估计是修复Pe时的错误。
另外想问一下,这个壳你是用imr1.42+修复的?


应该是用1.42+修复的。不过我觉得1.6也没什么问题的。

另外:OEP的地址是动态申请的,即:不一定就是00A110CC,补上的代码段也不一定是00A10000-00A18000,以在你机子上调试时看到的为准

也可以把加壳的程序增加一个足够大的新区段,然后改变程序重定位代码的地址,使其把重定位后的代码写入你增加的区段。
2004-4-29 22:46
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
18
最初由 loveboom 发布
Oh MY GOD,笨呢。怎么一下没想到这个办法呢,我可是用了很多时间才把资源的问题基本解决,早学乖一点,就不用这么“忙”了。


我以前也是在这里绕了个弯子,后来看ZILOT大侠脱的Obsidium就仿效了一下 :D
2004-4-29 23:19
0
雪    币: 227
活跃值: (160)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
19
to fly
上面的问题已经解决了,问题出在修复FE时的选项,可以运行了,现还有一个问题就是脱壳后是108k,7000区段的块已经去掉,但无法剪掉,如何优化,请指教,谢谢。
2004-4-30 09:27
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
20
最初由 lipton 发布
to fly
上面的问题已经解决了,问题出在修复FE时的选项,可以运行了,现还有一个问题就是脱壳后是108k,7000区段的块已经去掉,但无法剪掉,如何优化,请指教,谢谢。


删除00007000区段,去掉LordPE的“脱壳修复”选项,保留“重新排列”、“验证PE”等选项,重建PE优化一下dumped_.exe即可

我就是这样简单优化的
2004-4-30 12:08
0
雪    币: 227
活跃值: (160)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
21
"删除00007000区段,去掉LordPE的“脱壳修复”选项,保留“重新排列”、“验证PE”等选项,重建PE优化一下dumped_.exe即可"

搞好了,谢谢指教。
2004-4-30 12:59
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
22
最初由 lipton 发布
"删除00007000区段,去掉LordPE的“脱壳修复”选项,保留“重新排列”、“验证PE”等选项,重建PE优化一下dumped_.exe即可"

搞好了,谢谢指教。


兄弟客气了。
给我发个mail:fly4099@sohu.com
2004-4-30 13:56
0
雪    币: 446
活跃值: (758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
23
因为这个东东的特殊函数不多,所以就不再改了。F9运行,程序达到第5次异常,IAT处理完毕。

运行ImportREC,填入RVA=006162E4,Size=00000240,点“Get Import”,得到输入表。
有1个特殊函数:006163E4 ? 0000 003A6D54//为:GetCommandLineA

其他是填充的垃圾数据,CUT掉就行了。改OEP=006110CC,FixDump!
删除00007000区段,去掉LordPE的“脱壳修复”选项,重建PE优化一下dumped_.exe即可

请问一下,这个IT的RVA是怎么得来的,我脱是脱了,在2000下脱的,就不知道IT是怎么得来的,谢谢了~~~
2004-5-21 12:46
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
24
看看函数的地址从哪里开始的
2004-5-21 12:50
0
雪    币: 446
活跃值: (758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
25
好的,晕,回复真快~!
2004-5-21 13:01
0
游客
登录 | 注册 方可回帖
返回
//