逆向学习[1]一道入门题详解

前言

在学校的练习平台上找到了一个入门级的逆向小程序,给大家拿来练手。面向小白,大佬勿喷。
程序下载地址,密码:a4nh

解题思路

找到验证逻辑的条件判断指令处,通过修改条件跳转指令,使得程序接下来走验证成功流程,即可在验证成功弹出消息框中得到对应Key。
首先下载源程序,然后拖到PEiD分析一下 ,发现存在UPX的壳。

UPX脱壳工具网上有很多,随便找一个对程序进行脱壳即可。

脱壳成功,然后把脱壳后的程序拖到Ollydbg分析。
先查找所有参考文本字符串,定位到程序弹出错误的地方。

查找”Serial is error!”字符串
00440570地址


向下走,发现这个跳转是由上方004404D6地址跳转实现的


但是这个条件不是
继续向下走,00440500地址还有一处跳转,这个跳转是距离错误提示最近的

我们在此处用NOP填充

然后再次运行程序,输入任意字符得到Key

总结

非常基础入门的一道逆向题,希望以后有机会和时间能更新一些进阶的题目~

文章作者: Linuz
文章链接: https://linuz.me/2019/06/21/Simple-reverse/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Linuz's Blog
敢不敢赏脸一次