逆向分析 新手160个crackme之aLoNg3x.1
逆向aLoNg3x.1打开aLoNg3x.1,查看如何使用及有什么有用的信息。 打开程序输入相关的注册信息(注册码位置只能输入数字),发现ok按钮是被禁用的,点击Cancella会将Codice处的输入框置为0. 点击About-Help会出现提示信息,大体意思就是只要将ok跟Cancella两个按钮隐藏,显示出Ringzero0的logo就算逆向成功了。 首先我们用PEID进行查看,看看是否有壳及使用什么语言编写。 该程序没有壳,且使用Delphi语言编写的,那么我们可以使用IDR工具来帮助我们进行代码的分析。将程序导入IDR,我们可以看到相关的触发事件的代码地址,只要在OD中定位到对应的段首地址,我们就能够对相应的触发代码进行分析。 这里采用另外一种方式来进行关键位置的定位。我们知道,该程序需要做的是对两个按钮进行隐藏操作,那么我们定位按钮事件,就可以知道关键的位置。 OD载入后,CTRL+G,转到00401000的位置,CTRL+B查找特征值740E8BD38B83????????FF93????????,在定位下的CALL处下断.之后不断的CTRL+L继续查找剩下的call并F2下断. 下好断点后,在运行的程序中输入假码,发现刚输入OD就会中断下来,我们对断下来的call处F7跟进查看。 逐步分析代码,根据IDR所提供的信息做好备注,对于没有信息的call我们则可以跟进查看。 找到关键call的位置,我们跟进去可以看到,先是对用户名的长度进行计算,若是长度小于等于5,则会跳过下一步的验证。当用户名长度大于5时,就会将用户名进行一系列的计算之后,在ebx处得到一串数据与接下来获取的十六进制数(由输入的假码转换而来)相减的值在于29A进行比较,值相等就将bl置为1(OK按钮就会可见)。 我们对ok按钮点击事件进行中断发现,要想让ok按钮隐藏的前提条件就是cancella按钮处于隐藏的状态,那么我们就对cancella按钮的点击事件进行跟随。**** Hidden Message *****这样我们就逆向成功了。总结下逆向的过程:1.输入用户名后,将输入的用户名每个字节乘以用户名长度后相加,再减去7a69就是要输入的注册码,最后点击cancella按钮将其隐藏。(需要注意的是输入的用户名长度不能小于5)。2.根据输入的注册码,从后往前,字节乘以字节乘以注册码长度除以19后,余数加上41,计算出来的字符替代原来字节的位置,从而获取到新的用户名。修改用户名完成后,点击ok按钮就可以将之隐藏。3.Ok按钮跟cancella按钮都隐藏后,就会出现RingZero0的logo了。加油,就冲这么努力,不成大神都难啊! 这些练习cm,都是恒大的吗。 学习了。好好学习,天天向上 w_xh73 发表于 2017-12-15 10:34
这些练习cm,都是恒大的吗。
这些CM网上百度下就有,在我的帖子里也有链接,你可以自己找找 链接在哪那在 看看楼主的隐藏!不过最近逆向确实很火 好多人都在搞 学习一下, 看看学习一下` 学习学习,谢谢分享!
页:
[1]
2