-
-
未解决
[求助]请教如何寻找某个数据的上游写入指令?
-
发表于:
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............
00000000
0257ff38 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期)