能力值:
( LV2,RANK:10 )
|
-
-
2 楼
dll基址+偏移
dll基址可以alt+e查看
这次dll基址是10000000,
base= ::LoadLibrary("Dll名字");
_asm
{
pushad
mov ecx,base
add ecx,0a040
MOV EAX, DWORD PTR DS:[ecx]
popad
}
要这样不行,就自己解析pe,找到重定位信息再改吧
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
我那个dll的基址是10000000,那
MOV EAX, DWORD PTR DS:[1000A040] ;
改为
MOV EAX, DWORD PTR DS:[A040] ??
|
能力值:
( LV4,RANK:40 )
|
-
-
4 楼
为什么不直接调用导出函数,而非要把代码挖出来用
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
呵呵,只为学习啊!
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
先将dll加载到内存中,根据重定位表中的数据重定位代码段数据,然后再提取代码啊。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
对于这种地址od好像已经重定位了,会有下划线提示,对于地址100a040的值,每次调试都不一样,不是个常量,真不知道反出汇编代码,独立编译,继续等待高手
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
顶一下顶一下顶一下顶一下顶一下
|
能力值:
( LV5,RANK:70 )
|
-
-
9 楼
楼主的想法太天真了,以为搞定重定位表就搞定了一切,其实整个看来有太多的问题,不如自己逆向,重写代码。
|
能力值:
( LV3,RANK:20 )
|
-
-
10 楼
100a040要重新计算偏移位置的,1000A040 - 10001533 + 现在加载的该指令地址就可以了
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
dll导出函数的汇编代码~~
|
|
|