能力值:
( LV4,RANK:50 )
|
-
-
2 楼
楼主,弱弱的问下,遇到重定位,还能这么处理吗?
|
能力值:
( LV15,RANK:520 )
|
-
-
3 楼
晕,这不和我那个基本一样吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
乾坤大挪移法。呵~
|
能力值:
( LV13,RANK:283 )
|
-
-
5 楼
标记一下,多谢分享
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
能不能给些use case啊,什么情况下需要这样?
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
一个古老的经典方法
|
能力值:
( LV13,RANK:460 )
|
-
-
8 楼
mark,~
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
他把整个 user32 都映射过来了。。
这个怎么会有防止断点的情况发生呢?不解。求高手解释。
在 MyMessageBox(NULL, "ReMapLibrary OK!", "Test", 0); 里面产生int 3断点
|
能力值:
( LV3,RANK:30 )
|
-
-
10 楼
模块链表中不会有user32.dll。调试器找不到导出函数。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
木马免杀不错…
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
现在看来,LoadLibrary才是万能的断点啊。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
函数跟流程都那样好不。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
你知道一个程序一开始要调用多少个动态链接库不,,,
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
谢谢楼主分享!
|
能力值:
( LV4,RANK:50 )
|
-
-
16 楼
因为直接BP 下断..找不到MyMessageBox的地址``可以防止在OD中对MessageBox函数下段..就这样```
|
能力值:
( LV15,RANK:520 )
|
-
-
17 楼
直接复制原来地址处的二进制代码,直接全段内存搜索,搜索完毕后此处下断点,好多壳都这样做了
|
能力值:
( LV3,RANK:20 )
|
-
-
18 楼
做个标记,这个不错
|
能力值:
( LV13,RANK:388 )
|
-
-
19 楼
alloc页属性应该是PAGE_EXECUTE_READWRITE吧
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
程序中的FreeLibrary(hOldMod)这句并没有真正的释放掉dll,稍微改动,你的程序马上挂掉:
while (FreeLibrary(hOldMod)) {}
还是重定位问题,你只重定位了入口点而已,dll中的其他地方呢?
|
能力值:
( LV3,RANK:30 )
|
-
-
21 楼
谢谢楼主分享。
|
能力值:
( LV13,RANK:260 )
|
-
-
22 楼
哎哟, 你把xx.dll 改个名字 直接Loader 哟.....写代码干嘛 呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
重定位问题根本没解决,另外:
FreeLibrary(hOldMod); 这一句释放了user32
接着往下走到
MyMessageBox = (MSGBOX)ReGetProcAddress(hNewMod, hOldMod, "MessageBoxA");
里面调用了
MyApiAddr = (DWORD)GetProcAddress(hOldModule, lpProcName);
如果hOldModule被释放的话,这里GetProcAddress一定是返回0的,事实上user32.dll根本没被释放
|
能力值:
( LV9,RANK:380 )
|
-
-
24 楼
不给力,导入、导出、表定位表都没修复~
|
|
|