看雪论坛
发新帖

[求助]自己写的dll修改某个exe里的地址内容,网上找不到这个技术

zhonghuayi 2017-8-30 17:52 608

图上 lisen2.dll 是我写的简单的int add(int a, int b) 函数

a.exe 调用 lisen2.dll 

现在想写一个 a.dll,用LordPE把a.dll的nad导入到 a.exe

不知道怎么用a.dll修改里的nad 函数初始化修改 013718a8 这个OD地址的内容,修改成 a.dll 里的 nadd() 这个地址。

自己参照写的不能实现WIN7系统

void WriteMemoryFuction(int InAddress, int fuction)

{

char data[5] = { 0x00, 0x00, 0x00, 0x00, 0x00 };

*(int *)&data[0] = fuction - InAddress - 5;

memcpy((void *)InAddress, data, sizeof(data));

}

int nadd(int a, int b);

void nad()

{

WriteMemoryFuction(0x013718a8, (int)nadd);

}

求助那里不对?


本主题帖已收到 0 次赞赏,累计¥0.00
最新回复 (6)
zhonghuayi 2017-8-30 19:24
2
求助,知道这个方法的说下
hjhwoaini 2017-8-30 22:37
3


*(char*)InAddress  =0xE8;
*(int*)(InAddress+1)=  fuction–4  - ( InAddress+1);
*(char*)(InAddress+5)=0x90;

foolishx 2017-8-31 10:51
4
你确定从理论上这个是可行的吗
zhonghuayi 2017-8-31 13:48
5
hjhwoaini *(char*)InAddress  =0xE8;*(int*)(InAddress+1)=  f ...
搞定了  已经自己解决了  ,楼上这个也可以

*(char*)InAddress    =0xE8;
*(int*)(InAddress+1)=    fuction–4    -  (  InAddress+1);
*(char*)(InAddress+5)=0x90;
wumnkx 2017-9-11 18:16
6
这个技术是不是叫做inline  hook?
AperOdry 2017-9-11 18:47
7
void inlineHook(LPVOID HookAddr,LPVOID HookProc)
{
char jmpInBuffer[5];
jmpInBuffer[0] = 0xE9;
int* pJmpInOffset = (int*)&jmpInBuffer[1];
*pJmpInOffset = (char*)HookProc - ((char*)HookAddr + 5);
memcpy((char*)HookAddr, jmpInBuffer, 5);
}
IAT HOOK也可以的

返回



©2000-2017 看雪学院 | Based on Xiuno BBS | 微信公众号:ikanxue
Time: 0.012, SQL: 9 / 京ICP备10040895号-17