能力值:
(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
|
能力值:
( 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有什么办法?
|
能力值:
(RANK:10 )
|
-
-
4 楼
抱歉,我也很想知道,
|
能力值:
(RANK:10 )
|
-
-
5 楼
最初由 h_f22 发布 是啊,这个入口我也找到过,不过没有用。他是在退出的时候得处理吧,跟着还可以找到这里:
[CODE] 6C08C5C1 61 POPAD 6C08C5C2 75 08 JNZ SHORT d2maphac.6C08C5CC ........
F7走可以跟到retn上面入栈的那个地址
|
能力值:
( LV9,RANK:3410 )
|
-
-
6 楼
你可以载入dll后直接下 BP GetModuleHandleA
这样重新载入时就会中断了
也可以在入口下 硬件执行 断点
重新载入时应该也可以中断下来
|
能力值:
( LV6,RANK:90 )
|
-
-
7 楼
我试了BP GetModuleHandleA可是没断下来,直接在入口处下断也不行。
OD重新载入的时候不再代码段的断点似乎就被清除了,难道要用TRW?
还有硬件断点如何设置?
|
能力值:
( LV9,RANK:3410 )
|
-
-
8 楼
你的系统是9X?
实在不行你把壳入口代码改成EB FE,载入循环暂停后再改回去
|
能力值:
(RANK:10 )
|
-
-
9 楼
最初由 fly 发布 你可以载入dll后直接下 BP GetModuleHandleA 这样重新载入时就会中断了
也可以在入口下 硬件执行 断点 重新载入时应该也可以中断下来
我刚才也试验了,
1.载入之后就是loaddll的消息循环了,下BP GetModuleHandleA没有用;再次用OD载入倒是断了下来,但是不知道是谁的领空
2.硬件断点我也试验了,同样的拦不下来
3.我的系统是中文XP+SP2.
|
能力值:
( LV9,RANK:3410 )
|
-
-
10 楼
重新载入时就会中断了
|
能力值:
( LV6,RANK:90 )
|
-
-
11 楼
把入口的pushad改成Jmp 6c08cFF?
为什么?这是跳到哪里去了?
而且在载入的时候OD停不到入口处,只有把loaddll退出的时候OD才能停到入口处,如何在进入消息循环前改啊?
我的系统是WinXp+Sp2和win98双系统
|
能力值:
( LV6,RANK:90 )
|
-
-
12 楼
重新载入的时候断点在程序领空外,不能保存,也就没断下来。
我的情况就是这样的。
|
能力值:
(RANK:10 )
|
-
-
13 楼
楼主,这样试试:
把loaddll退出的时候OD才能停到入口处的这个字节用CC替换,保存在重新载入,应该可以断下的~
|
能力值:
(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.就可以了
|
能力值:
( LV6,RANK:90 )
|
-
-
15 楼
呵呵,楼上的你的方法好绝阿,这样肯定能断下来,但是那个pushad怎么办?
|
能力值:
(RANK:10 )
|
-
-
16 楼
载入的时候会中断在6C08C001这个地址,然后你手工把6C08C000的CC修改为60(pushad),再右键-->此处新建EIP.就可以了
|
能力值:
( LV9,RANK:3410 )
|
-
-
17 楼
最初由 h_f22 发布 把入口的pushad改成Jmp 6c08cFF?
为什么?这是跳到哪里去了?
而且在载入的时候OD停不到入口处,只有把loaddll退出的时候OD才能停到入口处,如何在进入消息循环前改啊? ........ 6C08C000 EB FE jmp short d2maphac.<ModuleEntryPoint>
EBFE是在入口制造死循环
怎么是Jmp 6c08cFF?
jmp 6C08C000
上面说的几种方法我都已经测试过
有效的
|
能力值:
( LV6,RANK:90 )
|
-
-
18 楼
明白fly的意思了,但是重新载入的时候代码不就又该回去了吗?
great的方法倒是有效,可是我的OD在代码窗口一点右键就出错。郁闷,难道要在pushad前加一个int3然后把eip改道这里吗?
|
能力值:
( LV9,RANK:3410 )
|
-
-
19 楼
你修改后另存一下
或者用winhex修改
调试时再恢复原来的代码
|
能力值:
( LV6,RANK:90 )
|
-
-
20 楼
恩,这种办法可以,我在慢慢试。
多谢指教!
|
能力值:
(RANK:10 )
|
-
-
21 楼
寒~~~~OD不是就可以即时修改存盘吗???
|
能力值:
( LV6,RANK:90 )
|
-
-
22 楼
great能解释一下为什么我一到6C08C001这个地址后单击右键OD就会出错?
还有新建EIP的快捷键是什么?
ctrl+*?
|
|
|