【问题标题】:How to analyze the function call (sub_41A1b8) for solving crackme with IDA Pro?如何分析函数调用(sub_41A1b8)用IDA Pro解决crackme?
【发布时间】:2016-05-30 16:58:24
【问题描述】:

请提示在代码中哪里有条件检查?如何定义,破解我的密码是 IDA Pro 中的“Benadryl”?据我了解,如果密码正确,则会调用“call sub_4038D0”函数,我们会跳转到loc_42D555。帮助理解它是如何工作的?

【问题讨论】:

    标签: reverse-engineering cracking ida


    【解决方案1】:

    如果设置了零标志,jz short loc_42D555 会跳转到 loc_42D555。否则执行下一条指令。

    请注意,下一条指令是引用失败字符串(“错误代码 DUDE”)的地方。另请注意,loc_42D555 是引用成功字符串(“Thanks you made...”)的地址。

    因此,如果在jz short loc_42D555 指令处设置了零标志,您可能解决了crackme。

    在前面的指令中,调用了sub_41A1b8 函数。如果eaxedx 中引用的字符串(在这种情况下,您的输入字符串和“Benadryl”)相等,则此函数很可能会设置零标志,但您需要分析sub_41A1b8 函数才能知道这一点肯定的。

    要理解这一点,您需要学习 x86 汇编。 plentyoftutorials 可以帮助您入门。

    【讨论】:

    • 非常感谢。原来,有必要步入sub_41A1b8函数吗?毕竟它可以在 IDA 中完成吗?还是仅在 OllyDbg 中?对不起,我在这个问题上是个傻瓜。我会学习更多:(
    • 要确定sub_41A1B8 函数中发生了什么,是的,您需要分析该函数。您可以使用 OllyDbg 之类的调试器介入,或者直接双击 IDA 中的函数名称。话虽如此,如果你不先学习 x86 汇编的基础知识,这个练习的价值就完全丧失了。否则您将无法明确理解该功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    • 2018-01-05
    • 1970-01-01
    相关资源
    最近更新 更多