.text:0040166E C6 45 F0 5C mov [ebp+pszSubKey+2Ch], '\'
.text:00401672 C6 45 F1 57 mov [ebp+pszSubKey+2Dh], 'W'
.text:00401676 C6 45 F2 69 mov [ebp+pszSubKey+2Eh], 'i'
.text:0040167A C6 45 F3 6E mov [ebp+pszSubKey+2Fh], 'n'
.text:0040167E C6 45 F4 6C mov [ebp+pszSubKey+30h], 'l'
.text:00401682 C6 45 F5 6F mov [ebp+pszSubKey+31h], 6Fh
.text:00401686 C6 45 F6 67 mov [ebp+pszSubKey+32h], 67h
.text:0040168A C6 45 F7 6F mov [ebp+pszSubKey+33h], 6Fh
.text:0040168E C6 45 F8 6E mov [ebp+pszSubKey+34h], 6Eh
.text:00401692 C6 45 F9 5C mov [ebp+pszSubKey+35h], 5Ch
#1 楼
使用IDAPython查找字节字符串ASERT MindshaRE可解决此问题。不必实际运行并非总是可能的代码。
有效地,该脚本将逐条指令进行操作,以查找将ASCII字符移入内存位置。它很有趣,并使用QT创建了一个交互式表,但是您可以删除该部分,并在要使用的指令上添加注释。
评论
抱歉,添加了说明
– jbh
2014年1月25日,下午3:43
脚本看起来很整洁,但显然在x64上失败。会尝试打补丁:)
– Konrads
15年2月16日在16:46
是的,我注意到该脚本的一件事是它严重依赖于等效字符串。 (它正在寻找“ mov”和“ [e”))因此,它肯定只能在x86上运行。我针对不同的体系结构重新实现了它,但是放错了位置。
– jbh
2015年2月17日在3:59
我开始对其进行修补-使它与x64一起使用是将[e更改为[(e | r)]的问题,但是它假设第一个mov将为mov [rsp],'x' mov [rsp + 138h + var_118],“ x”。返回修补程序...
– Konrads
15年2月17日在17:11
#2 楼
您可以使用ida-x86emu来模拟字符串的动态构造。但是,如果您想要更自动化的方式,则需要编写IDA脚本或插件。
评论
不要忘记IDA与Bochs的集成;)
– 0xC0000022L♦
13年11月19日在16:14
评论
您不能在字符串生成器函数之后放置一个断点吗?我可以设置一个断点,但我正在尝试简化所有情况下的断点,而不仅仅是一次。
“骇客”的方法可能是在构建完所有字符串之后中断,并在备忘录转储上运行“ strings”命令。