首页
社区
课程
招聘
[求助]关于VC6写内存的问题
发表于: 2008-8-29 12:05 4544

[求助]关于VC6写内存的问题

2008-8-29 12:05
4544
   
  好久不见了。。。大大们一定技术又高了很多哦。 这次小菜又来有劳大架了,希望大大们能指点一下,谢谢了~~

    前面得到小虾版版和各位大大帮忙渡过了 hello word! 这关。。。感动中。。。

今天遇到的麻烦是写内存的问题

如下:

   	FARPROC msgproc=GetProcAddress(GetModuleHandle("user32.dll"),"MessageBoxA");


  得到了这个MSG地址之后 我想在00401000这个地址跳到这里  即 JMP messagebox

 BYTE jmp=0xE9


但是写内存的时候怎么  将 E9+msgproc 连起来 一起起入内存地址00401000呢?

谢谢拉~~~ 我不要网上的源代码。。。只是想知道那个怎么 连接起来起入哦。。。

如:

  buff=[COLOR="Blue"] 0xE9+msgproc[/COLOR] //不会写。:(
  WriteProcessMemory(GetCurrentProcess(),0x401000,buf,6,NULL);

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 454
活跃值: (1673)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
换个思路分两次写不行么~~~
buff= 0xE9;
WriteProcessMemory(GetCurrentProcess(),0x401000,buf,1,NULL);
WriteProcessMemory(GetCurrentProcess(),0x401001,&msgproc,4,NULL);
2008-8-29 12:43
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
3
LS的解释很到位。
2008-8-29 12:49
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4


写了之后不是 JMP MessageBoxA 的地址。。。

请大侠过目。。。

是照您的代码写的。。。WriteProcessMemory(GetCurrentProcess(),0x40841A,&msgpro,4,NULL)
只是写的地址不是 00401000 。。。
上传的附件:
  • 1.jpg (23.24kb,49次下载)
2008-8-29 13:40
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
究境怎么样写 才会使得 JMP ->地址

把那个地址给写正确呢???

2008-8-29 14:15
0
雪    币: 255
活跃值: (207)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
6
E9 后面的4位字节是个dword,值为&msgproc-0x401000-5.
2008-8-29 14:54
0
雪    币: 255
活跃值: (207)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
7
0x71a2428a-0x0040841a-5(jmp指令的长度)=0x7161BE6B
所以 0040841a处的指令应该为  e9 6b be 61 71
2008-8-29 14:59
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢大侠~~~ 搞定。。。
2008-8-29 15:39
0
游客
登录 | 注册 方可回帖
返回
//