如何用IDA Pro分析用于解决crackme的函数调用(sub_41A1b8)?

时间:2016-02-18 13:36:17

标签: reverse-engineering cracking ida

请提示在代码中检查条件的地方?如何定义,破解中的密码是IDA Pro中的“Benadryl”?据我所知,有一个“调用sub_4038D0”函数的调用,如果超过密码正确,我们跳转到loc_42D555。帮助了解它是如何工作的? enter image description here

enter image description here

1 个答案:

答案 0 :(得分:3)

如果设置了零标志,则

jz short loc_42D555跳转到loc_42D555。否则它会执行下一条指令。

请注意,下一条指令是引用失败字符串(“Wrong code DUDE”)的地方。另请注意,loc_42D555是引用成功字符串(“谢谢你制作......”)的地址。

因此,如果在jz short loc_42D555指令处设置了零标志,那么您可能已经解决了这个问题。

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

要理解这一点,您需要学习x86程序集。有plenty of tutorials可以帮助您入门。