首页
社区
课程
招聘
关于脱壳Aspack的Dll的一问?
发表于: 2004-11-20 13:16 6283

关于脱壳Aspack的Dll的一问?

2004-11-20 13:16
6283
fly,我参考了你的《用Ollydbg手脱ASPack加壳的DLL》一文的方法,用OD加载我的Dll,可是OD不能停在pushad处,直接进入loaddll的消息循环,这是怎么回事?

但是我家在你的dll就可以,我看了一下你的dll是用Aspack2.11加的我的是Aspack1084的。

附上文件,帮忙看看,谢谢!

附件:d2maphack.rar 附件:d2maphack.rar

[课程]Linux pwn 探索篇!

收藏
免费 1
支持
分享
最新回复 (21)
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
确实是,不过退出的时候会终止在加壳的入口处,跟我昨天碰到了的情况一样,同样版本的pklite32加壳的dll就不能中断在入口出,非得关闭loaddll的时候才会终止,而同样的版本的pklite32加壳的ocx就会终止在入口处~~~这也许是别人不愿意说的一些秘密吧!

附上你的dll的入口:
6C08C000 >  60                pushad
6C08C001    E8 41060000       call    d2maphac.6C08C647
6C08C006    EB 41             jmp     short d2maphac.6C08C049
6C08C008    0000              add     byte ptr ds:[eax], al
6C08C00A    EF                out     dx, eax
6C08C00B    77 38             ja      short d2maphac.6C08C045
6C08C00D    0000              add     byte ptr ds:[eax], al
6C08C00F    0000              add     byte ptr ds:[eax], al
6C08C011    0000              add     byte ptr ds:[eax], al
2004-11-20 13:45
0
雪    币: 225
活跃值: (142)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
是啊,这个入口我也找到过,不过没有用。他是在退出的时候得处理吧,跟着还可以找到这里:

6C08C5C1   61               POPAD
6C08C5C2   75 08            JNZ SHORT d2maphac.6C08C5CC
6C08C5C4   B8 01000000      MOV EAX,1
6C08C5C9   C2 0C00          RETN 0C
6C08C5CC   68 D0D2016C      PUSH d2maphac.6C01D2D0
6C08C5D1   C3               RETN//在这里返回就退出了,找不到OEP

郁闷中,fly有什么办法?
2004-11-20 13:52
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
抱歉,我也很想知道,
2004-11-20 14:00
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
5
最初由 h_f22 发布
是啊,这个入口我也找到过,不过没有用。他是在退出的时候得处理吧,跟着还可以找到这里:

[CODE]
6C08C5C1 61 POPAD
6C08C5C2 75 08 JNZ SHORT d2maphac.6C08C5CC
........


F7走可以跟到retn上面入栈的那个地址
2004-11-20 14:02
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
6
你可以载入dll后直接下 BP GetModuleHandleA
这样重新载入时就会中断了

也可以在入口下 硬件执行 断点
重新载入时应该也可以中断下来
2004-11-20 14:05
0
雪    币: 225
活跃值: (142)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
我试了BP GetModuleHandleA可是没断下来,直接在入口处下断也不行。
OD重新载入的时候不再代码段的断点似乎就被清除了,难道要用TRW?

还有硬件断点如何设置?
2004-11-20 14:17
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
8
你的系统是9X?
实在不行你把壳入口代码改成EB FE,载入循环暂停后再改回去
2004-11-20 14:19
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 fly 发布
你可以载入dll后直接下 BP GetModuleHandleA
这样重新载入时就会中断了

也可以在入口下 硬件执行 断点
重新载入时应该也可以中断下来


我刚才也试验了,
1.载入之后就是loaddll的消息循环了,下BP GetModuleHandleA没有用;再次用OD载入倒是断了下来,但是不知道是谁的领空
2.硬件断点我也试验了,同样的拦不下来
3.我的系统是中文XP+SP2.
2004-11-20 14:23
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
10
重新载入时就会中断了
2004-11-20 14:28
0
雪    币: 225
活跃值: (142)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
把入口的pushad改成Jmp 6c08cFF?

为什么?这是跳到哪里去了?

而且在载入的时候OD停不到入口处,只有把loaddll退出的时候OD才能停到入口处,如何在进入消息循环前改啊?

我的系统是WinXp+Sp2和win98双系统
2004-11-20 14:34
0
雪    币: 225
活跃值: (142)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
重新载入的时候断点在程序领空外,不能保存,也就没断下来。
我的情况就是这样的。
2004-11-20 14:36
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
13
楼主,这样试试:

把loaddll退出的时候OD才能停到入口处的这个字节用CC替换,保存在重新载入,应该可以断下的~
2004-11-20 14:44
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
14
6C08C000 >  CC                int3
6C08C001    E8 41060000       call    d2maphac.6C08C647
6C08C006    EB 41             jmp     short d2maphac.6C08C049

载入的时候会中断在6C08C001这个地址,然后你手工把6C08C000的CC修改为60(pushad),再右键-->此处新建EIP.就可以了
2004-11-20 14:47
0
雪    币: 225
活跃值: (142)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
呵呵,楼上的你的方法好绝阿,这样肯定能断下来,但是那个pushad怎么办?
2004-11-20 14:50
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
16
载入的时候会中断在6C08C001这个地址,然后你手工把6C08C000的CC修改为60(pushad),再右键-->此处新建EIP.就可以了
2004-11-20 14:50
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
17
最初由 h_f22 发布
把入口的pushad改成Jmp 6c08cFF?

为什么?这是跳到哪里去了?

而且在载入的时候OD停不到入口处,只有把loaddll退出的时候OD才能停到入口处,如何在进入消息循环前改啊?
........


6C08C000    EB FE               jmp short d2maphac.<ModuleEntryPoint>
EBFE是在入口制造死循环
怎么是Jmp 6c08cFF?
jmp 6C08C000

上面说的几种方法我都已经测试过
有效的
2004-11-20 14:51
0
雪    币: 225
活跃值: (142)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
18
明白fly的意思了,但是重新载入的时候代码不就又该回去了吗?

great的方法倒是有效,可是我的OD在代码窗口一点右键就出错。郁闷,难道要在pushad前加一个int3然后把eip改道这里吗?
2004-11-20 15:08
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
19
你修改后另存一下
或者用winhex修改
调试时再恢复原来的代码
2004-11-20 15:09
0
雪    币: 225
活跃值: (142)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
20
恩,这种办法可以,我在慢慢试。
多谢指教!
2004-11-20 15:27
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
21
寒~~~~OD不是就可以即时修改存盘吗???
2004-11-20 15:30
0
雪    币: 225
活跃值: (142)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
22
great能解释一下为什么我一到6C08C001这个地址后单击右键OD就会出错?

还有新建EIP的快捷键是什么?
ctrl+*?
2004-11-20 15:44
0
游客
登录 | 注册 方可回帖
返回
//