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

在学校的练习平台上找到了一个入门级的逆向小程序,给大家拿来练手。面向小白,大佬勿喷。
程序下载地址,密码:a4nh
解题思路:找到验证逻辑的条件判断指令处,通过修改条件跳转指令,使得程序接下来走验证成功流程,即可在验证成功弹出消息框中得到对应Key。
首先下载源程序,然后拖到PEiD分析一下 ,发现存在UPX的壳。

image

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

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

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

image

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

image

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

我们在此处用NOP填充
image

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

转载请标明出处:https://linuz.me/2019/06/21/simple-reverse.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容