首页
社区
课程
招聘
[求助] 有什么较好的方法追溯是哪句代码写入 [esp+10]?
发表于: 2025-4-18 16:21 3532

[求助] 有什么较好的方法追溯是哪句代码写入 [esp+10]?

2025-4-18 16:21
3532

这是 call 的参数和调用

00E8E6EB | 53               | push ebx                              |

00E8E6EC | 55               | push ebp                              |

00E8E6ED | 50               | push eax                              |

00E8E6EE | 51               | push ecx                              |

00E8E6EF | 52               | push edx                              |

00E8E6F0 | 8BCF             | mov ecx,edi                           | edi:&"0帴"

00E8E6F2 | E8 D9E9FFFF      | call xxxx.E8D0D0                      |


call xxxx.E8D0D0 内部:

00E8D0D0 | 6A FF            | push FFFFFFFF                         |

00E8D0D2 | 68 A8F31901      | push xajh.119F3A8                     | 119F3A8:&"岅_?┾??"

00E8D0D7 | 64:A1 00000000   | mov eax,dword ptr fs:[0]              |

00E8D0DD | 50               | push eax                              |

00E8D0DE | 64:8925 00000000 | mov dword ptr fs:[0],esp              |

00E8D0E5 | 51               | push ecx                              |

00E8D0E6 | 56               | push esi                              |

00E8D0E7 | 8B7424 18        | mov esi,dword ptr ss:[esp+18]         |

00E8D0EB | 57               | push edi                              |

....

....

....

00E8D168 | 57               | push edi                              |

00E8D169 | 51               | push ecx                              |

00E8D16A | 8B4E 0C          | mov ecx,dword ptr ds:[esi+C]          |

00E8D16D | 034C24 10        | add ecx,dword ptr ss:[esp+10]         |


如果我想知道 00E8D16D 地址处的 [esp+10] 这个临时变量是被哪句代码写入的,应该如何操作?


这个 call 会断下的很频繁,我想根据 call 的参数来在头部下一个条件断点过滤其他调用,在头部断下后再对[esp+10] 这个地址下一硬件写入断点来找到写入的代码,但这个 call 很难捕获到我需要的特定调用参数。


有什么好的办法能判断 [esp+10] 是上面哪句代码写入的吗?



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 698
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
那你就头部下条件断 符合你条件再下读写断
2025-4-18 17:57
0
雪    币: 147
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
fanfall 那你就头部下条件断 符合你条件再下读写断
Suppose 发表于 2025-4-18 18:01
硬件访问断点

很有很多个地方调用了这个call,很容易被其他的干扰调用断下,请问有什么好的解决方法吗?
2025-4-18 18:18
0
雪    币: 72
活跃值: (436)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
lostin9772 Suppose 发表于 2025-4-18 18:01 硬件访问断点 很有很多个地方调用了这个call,很容易被其他的干扰调用断下,请问有什么好的解决方法吗?
你要是不想漏掉什么重要的东西,最好的方式就是一个一个看,虽然麻烦但是不会有漏的
2025-4-20 12:42
0
雪    币: 315
活跃值: (3093)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
怕麻烦搞不了逆向,你看的一些帖子一来就找到了关键位置,其实是他省略了过程,哪个没花时间去研究
2025-4-21 09:10
0
雪    币: 433
活跃值: (2130)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6

好像有个寄存器里是上次跳转的地址,忘了哪个了

最后于 2025-4-21 23:15 被萌克力编辑 ,原因:
2025-4-21 23:13
0
雪    币: 147
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
Python成长路 怕麻烦搞不了逆向,你看的一些帖子一来就找到了关键位置,其实是他省略了过程,哪个没花时间去研究
对的 不过有很多时候一些小技巧还是事半功倍,对于一些麻烦些的操作我也想看看大家是怎么处理的,说不定有比较好的思路  嘻嘻
2025-4-22 14:50
0
雪    币: 147
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
萌克力 好像有个寄存器里是上次跳转的地址,忘了哪个了
有吗,我印象中好像没有哪个寄存器会记录上次跳转的地址,对于一些不知道从哪里跳转过来的代码,我都是直接查看引用,看看哪里有引用这个地方
2025-4-22 14:52
0
雪    币: 433
活跃值: (2130)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
9
lostin9772 有吗,我印象中好像没有哪个寄存器会记录上次跳转的地址,对于一些不知道从哪里跳转过来的代码,我都是直接查看引用,看看哪里有引用这个地方

你这样很难学的..刚搜了下在sp里,有返回地址

建议先把王爽的汇编语言过一遍,或者常用ai问问

最后于 2025-4-25 17:48 被萌克力编辑 ,原因:
2025-4-25 17:47
0
雪    币: 147
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
萌克力 lostin9772 有吗,我印象中好像没有哪个寄存器会记录上次跳转的地址,对于一些不知道从哪里跳转过来的代码,我都是直接查看引用,看看哪 ...
sp寄存器是指esp或rsp吗?这不是栈顶寄存器吗?只能说返回地址存在栈里面,不能说esp寄存器一定指向返回地址吧?
2025-4-27 11:16
0
雪    币: 147
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
萌克力 lostin9772 有吗,我印象中好像没有哪个寄存器会记录上次跳转的地址,对于一些不知道从哪里跳转过来的代码,我都是直接查看引用,看看哪 ...
我知道你的意思是当调用一个call的时候,参数先入栈,然后返回地址入栈,然后进入call内,但是我问的不是这个。我问的是在函数体里面如果[esp+10](临时变量)被写入了值,是哪里写入的(可以在函数头对[esp+10]下硬件断点),但是由于我这个call频繁的被各种地方调用,所以很难定位到特定的call调用,当然笨办法就是不断筛选调用,直到自己想要的特定调用触发,然后以这个特定call的参数先下一个条件断点,当特定call由于条件断点断下后,我再在函数头部对[esp+10]下一个硬件断点,然后执行,看函数体(函数体很长,很难逐步分析哪里进行了写入)哪里改变了[esp+10]
2025-4-27 11:31
0
雪    币: 5242
活跃值: (5290)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
方法 1   从CALL头部记录栈顶的位置.  然后单步走到 [esp+10]  是什么变量的地址.
方法2    从IDA分析这个函数的调用约定,以及变量对应的地址.
方法3    CE查找数据源的访问地址
方法4    条件断点断到此处的位置,然后返回到上一层看数据传参

......  方法来自于你的大脑,你的能力应该超乎你想象.
2025-4-28 21:26
0
游客
登录 | 注册 方可回帖
返回