首页
社区
课程
招聘
咋定位这个地址,再写入代码
2016-1-24 13:06 5328

咋定位这个地址,再写入代码

2016-1-24 13:06
5328
收藏
点赞0
打赏
分享
最新回复 (15)
雪    币: 28
活跃值: (223)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jeppeter 2016-1-24 16:46
2
0
不知道你想了解什么,如果是这个代码的含义,就是这里调用了 FastSysCall in Wow64. 这里https://en.wikipedia.org/wiki/Win32_Thread_Information_Block有你的解释。这里其实大概是下面的C代码

if (FastSysCallTable[num] != null){
                   FastSysCallTable[num](args);
} else{ 
           DefaultSysCall(args);
}
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
赵建新 2016-1-24 19:07
3
0
7757FDCA  |.  64:FF15 C0000>call dword ptr fs:[0xC0]
调用了哪个API,直接定位到那个API才能定位这个地址对不。
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
赵建新 2016-1-24 21:20
4
0
我想定位到这
7757FDCA  |.  64:FF15 C0000>call dword ptr fs:[0xC0]
执行下一步的那个代码  然后HOOK,不知道怎么才能定位到那个代码
雪    币: 28
活跃值: (223)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jeppeter 2016-1-25 08:35
5
0
你的关键不是定位这一个代码,你只要换了FS:[0XC0]所指的代码就对了,这个替换比你的替换要简单。而且实现的效果是一样的。
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
赵建新 2016-1-25 10:21
6
0
[QUOTE=jeppeter;1413105]你的关键不是定位这一个代码,你只要换了FS:[0XC0]所指的代码就对了,这个替换比你的替换要简单。而且实现的效果是一样的。[/QUOTE]

就是FS:[0XC0]所指的代码
这里
74962320   /E9 FB110000     jmp wow64cpu.74963520
74962320地址咋计算出来的,这个地址74962320应该是动态的
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sxlrain 2016-1-25 12:54
7
0
有人帮忙吗
雪    币: 28
活跃值: (223)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jeppeter 2016-1-25 19:50
8
0
这个是在链接的时候确定的。
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
赵建新 2016-1-25 21:41
9
0
给我想个办法行吗,谢谢你
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
Rprop 2016-1-25 22:02
10
0
怎么定位http://bbs.pediy.com/showthread.php?t=207398这贴不是有人答你了吗, 至于怎么插入代码, 就如上面说的替换 fs:[0xc0] 的值, 最后跳回去是最简单的, 实在想写代码就找一块空地(修改内存属性)写代码, jmp过来完事jmp回去恢复现场
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
赵建新 2016-1-25 23:49
11
0
[QUOTE=rrrfff;1413236]怎么定位http://bbs.pediy.com/showthread.php?t=207398这贴不是有人答你了吗, 至于怎么插入代码, 就如上面说的替换 fs:[0xc0] 的值, 最后跳回去是最简单的, 实在想写代码就找一块空地(修改内存属性)写代码, jmp过来完事jmp回去恢复现场[/QUOTE]

咋获取线程的TEB结构地址呀
雪    币: 270
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
千千万 2016-1-28 16:12
12
0
FS寄存器可以直接使用,0x18偏移处是一个Self指针
TEB结构地址获取
	DWORD dwTEBAddr;
	_asm mov eax, fs:[0x18];
	_asm mov dwTEBAddr, eax;

楼主要获取某个偏移所指向地址直接
	DWORD dwTEBC0, dwTEBC4, dwTEBC8;
	_asm mov eax, fs:[0xc0];
	_asm mov dwTEBC0, eax;
	_asm mov eax, fs:[0xc4];
	_asm mov dwTEBC4, eax;
	_asm mov eax, fs:[0xc8];
	_asm mov dwTEBC8, eax;
雪    币: 250
活跃值: (81)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
古往今来 2016-1-28 19:15
13
0
2楼正解.
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
赵建新 2016-1-29 17:19
14
0
感谢这位兄台的指点
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
赵建新 2016-1-29 17:23
15
0
[QUOTE=千千万;1413605]FS寄存器可以直接使用,0x18偏移处是一个Self指针
TEB结构地址获取
        DWORD dwTEBAddr;
        _asm mov eax, fs:[0x18];
        _asm mov dwTEBAddr, eax;
楼主要获取某个偏移所指向地址直接
        DWORD dwTEBC0, dw...[/QUOTE]

var
  dwtebc0,WriteByte:DWORD;
  begin
  asm
      mov eax, fs:[0C0H]
      mov dwTEBC0, eax
    end;
   Writeprocessmemory(GetCurrentProcess,Pointer(dwTEBC0),@newSpeed[1],6,WriteByte);
  // ShowMessage(IntToStr(GetLastError()));
end;

怎么错误998了,帮我看下怎么才能写入代码,感谢
雪    币: 110
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
核心未拥有 2016-1-29 18:36
16
0
https://github.com/codereversing/wow64syscall
看这里
游客
登录 | 注册 方可回帖
返回