@nevinhappy
问题是这样的:
我发现有两条命令很有意思:一条是TraceIntoConditional/ticnd ,另一条是 TraceOverConditional/tocnd
于是我做了一些试验:
用point-h crackme.exe 这个程序来搞的。
帮助中是这样写的:
TraceIntoConditional/ticnd
通过StepInto(F7)跟踪程序,直到满足指定条件或达到最大步数。
参数1 使用条件: 当计算为0以外的值时, 跟踪将停止
参数2 在调试器放弃之前跟踪的最大步数
逐步跟踪10000次程序,当eax=79时,断下
ticnd eax==79,10000 结果我们成功了!的确比OD更强大,而不必设置具体的地址!但有做了下面的试验
ticnd ESP==&"cuicui",10000 成功了!但转天无论如何又不成功了。
于是我又换了个软件叫MageBros
当前 esp==19fc14 ,字符串为 &"MB-3186-2945"
于是我搞了个分解动作:
msg {s:esp} ; 弹出&"MB-3186-2945"
msg &"MB-3186-2945" ; 弹出&"MB-3186-2945",说明表达式直接这样写也对,不用加{}
于是我到 【步过直到满足条件】 对话框这样设置:
第一行:{s:esp}==&"MB-3186-2945" ,行进步数10000
等价于tocnd {s:esp}==&"MB-3186-2945",100000
于是又只前进了一步就停止了,实在不解,难道字符串比较就不行呢?
看过 https://www.52pojie.cn/thread-1042228-1-1.html这个贴子
https://bbs.pediy.com/thread-251385.htm这个贴子
参数1 使用条件: 当计算为0以外的值时, 跟踪将停止,我尝试写成 !=也是只走了一步就停止了。
研究了两天,大部分命令都会了。进行文本比较咋就不成功呢?
最后于 2020-7-2 08:25
被ninebell编辑
,原因: