1

程序观察

这个程序是有壳的
20191101180611.png

打开程序,首先出现一个弹窗。弹窗关闭之后才会出现程序本体
20191101180732.png

20191101180740.png

程序没有让输入注册码的地方,只有一个地方显示 "Unregistered"。

可以看出来这个程序是让 去除弹窗和修改代码的。
20191101195809.png

脱壳

因为这个程序带壳,所以我们首先要脱壳。
在这之前我也没有手动脱壳的经验,但是脱壳工具都没用,无奈之下只能自己动了。

使用 OD 载入程序,可以看到代码头部有很多 push
20191101200441.png

向下执行,可以看到有相同数量的 pop,还有一个 jmp,很可能就是这里了
20191101200549.png

执行完跳转命令,来到了地址 401000 处
20191101200946.png

其实第一次不是这样的,是下面这样的(图是盗别人的。。)
235248q4nwnnn51wivgx5w.png

这时候让 OD 分析一下就会变成我的代码的样子了,然后我们使用 OllyDump 脱壳(重建输入表要选方式2,方式1会报错)
20191101201324.png

然后就脱壳成功了
20191101201624.png

程序分析

去除弹窗

使用 OD 载入程序,程序很简洁明了,去除弹窗的关键就是地址 40105c 处的跳转语句,只要将其修改为 jmp 4010D7 即可

20191101201934.png

20191101201945.png

修改状态

搜索字符串,可以看到"Unregistered"
20191101202438.png

跟进代码,由于此处代码只在刚开始的时候执行,所以需要在函数处下断点,然后重新加载程序。

查看函数的参数
20191101202846.png

将其 Text 参数修改为 00402050 即可
20191101203004.png

20191101203110.png

这个程序虽然是标的是三星,但是感觉并不难。还是说哪里有我忽略的地方?

相关文件在我的 Github


snow
4 声望0 粉丝

多么美好!