1.运行程序观察程序特征(按钮文字、标题、弹窗信息等)
2.使用查壳工具进行查壳。(如果加壳就先脱壳脱壳后进入第三步,如果没加壳直接进入第三步)
3.使用IDA进行静态分析(找到程序关键点)
4.使用x64dbg进行动态调试(验证猜想)。
运行程序观察程序特征,我们可以发现程序存在两个文本框(这个时候我们应该考虑到GetDlgItemTextA这个API),接着我们点击按钮后出现一个弹窗(应该想到MessageBoxA)。
将程序拖入到x64dbg中,进入程序主模块后,
1.进入符号标签页
2.选择主进程模块
3.x64dbg会在右侧显示出函数API。
使用快捷键“Ctrl+N”也可以到达下图界面。
在上图中我们可以看到程序中确实存在”GetDlgItemTextA“和”MessageBoxA“这两个API,这里我们以MessageBoxA为例,双击MessageBoxA后即可到达下图界面,之后我们在该处下个断点,然后运行程序。
接着在我们按下Try按钮以后,我们会在上图的断点处断下,由于这个是系统API,所以我们不看这个函数”Ctrl+F9“直接运行到返回处,然后单步一次,即可到达下图界面。
在这里我们可以看到成功函数。
上图”0x004013A6“是成功函数开始的地方,所以我们继续往上看,及即可发现关键跳转。所以我们着重分析下图的汇编代码。
最后验证flag是否正确。
WX公众号:一谷米粒
知乎:https://www.zhihu.com/people/yi-gu-mi-li-47