首页
社区
课程
招聘
未解决 [求助]请教如何寻找某个数据的上游写入指令?
发表于: 2020-6-28 23:30 1852

未解决 [求助]请教如何寻找某个数据的上游写入指令?

2020-6-28 23:30
1852

假设我在DEBUG某个没有源码的程序的时候,遇到这样一种情况。
我设置了一个BREAKPOINT,然后程序运行到这个地址停下,

 

rax=000007fffffdb000 rbx=0000000000000000 rcx=000000000257ff28
rdx=0000000078f49390 rsi=0000000000000000 rdi=0000000000000000
rip=0000000078ebb1d0 rsp=00000000024aff28 rbp=0000000000000000
r8=0000000000000000 r9=0000000078f49390 r10=0000000000000000
r11=0000000000000000 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0 nv up ei pl zr na po nc
cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000246
18ebb321 mov rdx,qword ptr [rcx]

 

0:001> db rcx
000000000257ff28 04 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ...x............ 000000000257ff38 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
00000000`0257ff48 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

 

如果我想知道是哪个指令写入了rcx所指向的内存,并且写入的数值=4,该怎么做?
上面只是某一次程序运行的例子。实际程序运行的时候,rcx的VALUE每次都不一样。

 

1、RCX指向的地址是随机的,无法提前预知,所以内存访问断点没用。
2、在这个断点触发之前,前面有很多指令执行过,无法知道到底是什么范围的指令有可能写入数据。
3、不能对全部的程序同时做监控,因为监控动作导致性能下降,而使得被分析的目标无法正常执行。
简而言之,也就是如何寻找到数据的上游指令。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 5734
活跃值: (1737)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
windbg 有条件断点指令 
2020-6-29 00:35
0
雪    币: 2043
活跃值: (215)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
小艾 windbg 有条件断点指令
兄弟,我设定的场景是你根本不知道要监控的内存地址,你咋下断点?
2020-6-29 01:17
0
游客
登录 | 注册 方可回帖
返回
//