首页
社区
课程
招聘
[旧帖] [求助]内核编程时 memcpy失败。。 0.00雪花
发表于: 2010-5-11 17:03 1738

[旧帖] [求助]内核编程时 memcpy失败。。 0.00雪花

2010-5-11 17:03
1738
现在正写一个inline unhook NtOpenProcess的程序练练手
  需要将原函数被修改前五个字节改写成原来的指令(push 0xC4)
  定位到了NtOpenProcess的首地址后,就开始用memcpy进行拷贝:
(BYTE)orig_code[5] ={0x68,0xc4,0x00,0x00,0x00};
  ULONG Address = (ULONG)NtOpenProcess;

  //去除内存写保护
  memcpy(orig_code,(BYTE*)Address,5)
  //恢复内存写保护
   ...

  用windbg调试的时候发现memcpy执行后,Address里面的内容并没有改变。。

  望高手能帮助下~

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 25
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
似乎push 0xc4是固定的 xp sp2,xp sp3都是
2010-5-11 18:24
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
现在情况是 NtOpenProcess 被inline hook后,它的首五个字节被一个jmp指令覆盖了(跳转到了hook函数地址),此时我要还原此函数,只需要将这五个字节改写回来就行了。
   ls说的意思我不大懂,你是说每条指令都是 以 push 0xc4 开头么? 但我反汇编后发现不同的函数它的首地址是不同的。

  然后还有个问题,就是现在我这有一堆(几十上百个)内核函数被inline hook了,我需要全部还原的话,有没有什么模块化的方法,即批量还原的。
2010-5-12 00:20
0
游客
登录 | 注册 方可回帖
返回
//