首页
社区
课程
招聘
如何判断DLL的重定位处?
发表于: 2004-11-28 21:48 4505

如何判断DLL的重定位处?

2004-11-28 21:48
4505
学习了fly大侠的DLL脱文,依样画葫芦也脱了几个DLL的壳。但有个问题一时难以解决,fly大侠提供了搜索命令序列的快速查找重定位地址的方法,可是当时是如何找到这些命令序列的?对被重定位了的,可能还好找些,但如果没被重定位的,就不知如何下手了。还请fly大侠说说思路。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 1
支持
分享
最新回复 (8)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
兄弟客气了
到OEP后找一下哪里的代码需要重定位
然后重新调试对其下内存写入断点
一般就能找到重定位处理的地方了
2004-11-28 21:49
0
雪    币: 319
活跃值: (2404)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
3
谢谢!对已经被重定位的,还好找,但如果没被重定位的呢?
2004-11-28 21:50
0
雪    币: 236
活跃值: (59)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
最初由 fly 发布
兄弟客气了
到OEP后找一下哪里的代码需要重定位

怎么找?
2004-11-29 17:30
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
5
用2个OD分别加载,DLL被映射
到不同的进程,不会重定位。

要想试重定位,自己写段代码,
先加载一个别的dll把地址占了,
再载入这一个
2004-11-29 21:52
0
雪    币: 319
活跃值: (2404)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
6
最初由 softworm 发布
用2个OD分别加载,DLL被映射
到不同的进程,不会重定位。

要想试重定位,自己写段代码,
先加载一个别的dll把地址占了,
........


厉害!!!
2004-11-29 22:03
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
7
不懂这些,我就知道GETMODULEHANDLE函数
2004-11-30 01:29
0
雪    币: 398
活跃值: (1078)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
8
#include <windows.h>

int APIENTRY WinMain(  HINSTANCE hInst,  HINSTANCE hPrevInst,  LPSTR lpszCmdLine,  int  nCmdShow )
{
        LoadLibrary("A.DLL");  // 第一次加载到 1000 0000, 重定位不起作用
        LoadLibrary("B.DLL");  // 第二次加载到其他地方,    重定位起作用

        return 0;

}

把你的 DLL 复制成 A.DLL 和 B.DLL, 和 EXE 放在一起就可以了.
2004-11-30 08:19
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
真的感谢各位的无私奉献。
2004-12-2 13:29
0
游客
登录 | 注册 方可回帖
返回
//