学习
实践
活动
专区
工具
TVP
写文章

逆向基础(二)

写在前面:最近在学逆向,然后很多人说不知道怎么入门,我也在摸着石头过河,然后想的发一个系列。一来分享学习的过程,大家一起进步,二来就当笔记来记录一下,加深印象。当然,时间不定,看心情。

0x00

题目:第三届上海市大学生网络安全大赛 REVERSE-->crackme

放在了百度云:链接: https://pan.baidu.com/s/1pLNyeaZ 密码: vhr9

刚拿到题还是太年轻,直接放到了ida分析,一堆花指令,然后搜key word定位关键位置,竟然啥都没搜到。。。

然后反应了一下,是不是有壳。上pedid

可以看到是nSPack 3.7 -> North Star/Liu Xing Ping。然后肯定就是要脱壳了,我直接拿脚本脱的,也可以根据esp手工脱,网上有很多教程,在此不再累述。

脱完以后重新走一遍流程,静态的先看一下,是不是很清楚了。

当然可以静态的去分析,今天咱们来拿od动态的来分析一遍,在这里下个断,看看程序的判断流程是怎么样的

先把栈上我们输入的字符串长度计算出来,edx就是开始,ecx就是结束。减一下,是不是刚好就是咱们输入的长度==11,然后就要和0x2A(42)比较了。如果成功的话就跳je,不成功的话就exit了。

跳过去以后,把我们的字符串和this_is_not_flag按位异或相与,然后eax*n+401250比较,看看这块内存是什么鬼。

看到了吧,对应ida的这里

然后逻辑很简单了。

0x01

exp如下

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171222G00U1000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券