逆向调试入门-判断逻辑

网友投稿 228 2022-10-21


逆向调试入门-判断逻辑

编程的时候,会有几个条件判断,当符合之后,才会允许下一步操作。

程序:

思路:

跟以前一样

2、猜想程序的逻辑结构

3、调试程序

实战

弹出窗口

我们开始调试,打开OD

一步一步进行调试,F8

这两个call函数,看样子是载入图标和鼠标样式

路过一个文件读取操作函数

在这里我们看到一个call函数,MessageBoxA

正是提示我们的“Evaluation period out of date. Purchase new license”

最后一个call函数是终止程序。

我们重新加载程序。Ctrl+F2

运行到断点处,F9

在这个MessageBox的函数前,我们跳过

经查询知道,这个JNZ指令条件跳转在于Z标志位

将标志位设置为0

来到这个函数,应该是读取文件,而且是许可证文件内容

下断点,我们继续

发现这个jmp跳转,直接到了call函数

这里的messagesbox提示“keyfile is not valid”,许可证内容。

重新加载程序

我们看看JL是跳转到哪里?

所以这里我们不能跳转。

赶紧查询手册

SF!=OF

我们改变SF的值

这里进行了对比。

我们让其不实现

一直走下来,发现弹出成功窗口

保存文件。

爆破成功!

1、打开先检查有没有“keyfile.dat”文件

2、检查许可证文件有没有足够的字符串

3、检查内容是不是ascall码47

查询得知,为大写的G,连续8个G

4、最后成功打开


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:什么是核心交换机?如何选择核心交换机?
下一篇:Java 实现分布式服务的调用链跟踪
相关文章

 发表评论

暂时没有评论,来抢沙发吧~