xiaomm250 发表于 2022-2-24 14:56

如何逆软件运行流程,知道前面执行的代码呢?

程序都是顺着运行的,
假设我在程序汇编的8888行下了一个断点,那么程序肯定会中断运行,
程序都是按照汇编一行一行运行的,我想知道8888行汇编的
上一句执行的汇编在哪一行?
上上一句执行的汇编在哪一行?
上上上一句执行的汇编在哪一行?
上上上上一句执行的汇编在哪一行?

我目前会的办法就是用减号,但是感觉减号有时候跑太快了,用调用堆栈,似乎也跑得太快了!
大家有哪些办法能够逆着流程找到过去被执行过的汇编呢?
你们都是用什么办法的呢?

ReLoading 发表于 2022-2-24 15:12

看堆栈,能找出当前程序调用过的call 以及参数,自己去分析
但并没有你想象的那么简单能看到每一行语句,
否则谁都会逆向了;
我想你应该先了解逆向的原理,以及反汇编的知识;

无闻无问 发表于 2022-2-24 15:25

ReLoading 发表于 2022-2-24 15:12
看堆栈,能找出当前程序调用过的call 以及参数,自己去分析
但并没有你想象的那么简单能看到每一行语句,
...

这是不可能的,因为各种不确定因素影响各种跳转,很多代码执行与否偶然性大…

如果你非要怎样,那就是x64dbg中的跟踪了,可以在跟踪文件中想到哪一行就到哪一行…

xiaomm250 发表于 2022-2-24 15:05

有没有办法,比如,上100句执行的语句,我在命令窗口输入100相关的参数命令,然后跳到对应的汇编语句上,有没有这样的功能?

xiaomm250 发表于 2022-2-24 15:14

ReLoading 发表于 2022-2-24 15:12
看堆栈,能找出当前程序调用过的call 以及参数,自己去分析
但并没有你想象的那么简单能看到每一行语句,
...

我也看过堆栈,不过我一般都是看调用堆栈,就是工具栏上的k按钮。传说中的F12暂停法就是用调用堆栈。

无闻无问 发表于 2022-2-24 15:20

差不多都是堆栈确定大范围,然后研究call缩小范围,通常都是大段大段看汇编,关键地方才会逐行看…

像你这样一行一行流程都去了解追踪,哪有这么多时间和精力?

大型的程序动不动就上万行甚至上亿行代码,你确定用体力去对抗机器?

我今天是大佬 发表于 2022-2-24 15:31

基本不太可能, 不然逆向就很简单了

xiaomm250 发表于 2022-2-24 15:34

我今天是大佬 发表于 2022-2-24 15:31
基本不太可能, 不然逆向就很简单了

如果有一个插件,能记录软件执行的哪一行汇编(并且记录行号),然后输出到文本,然后根据文本。。。这只是一个思路,我觉得应该行。

top777 发表于 2022-2-24 17:21

8楼想法不错,不知道有没有这样的插件。

冥界3大法王 发表于 2022-2-24 17:49

xiaomm250 发表于 2022-2-24 15:34
如果有一个插件,能记录软件执行的哪一行汇编(并且记录行号),然后输出到文本,然后根据文本。。。这只 ...

自己写的脚本已经超越此功能。{:301_998:}
页: [1] 2
查看完整版本: 如何逆软件运行流程,知道前面执行的代码呢?