首先

执行程序

西普CTF-bin100(ebCTF 2013)-以夕阳落款

然后代码丢进IDA,shift+12,

西普CTF-bin100(ebCTF 2013)-以夕阳落款

根据程序中的字符串,大概了解到程序是roll数字,roll的顺序必须为31337

分析代码---好复杂我也看不懂

大概能读懂一些比较,反正就是对比呗,

每次取随机数除以6取余,逐个和1-6进行对比,对比完后,再和目标数字对比,对比不上程序结束。

用OD执行,然后修改,先在比较入口下断点(类似断点有5个):如图处

西普CTF-bin100(ebCTF 2013)-以夕阳落款

程序执行F9,然后敲回车

右击代码数据窗口中跟随---内存地址

下面代码框中双击修改,第一次修改为3,第二次1依次类推。

西普CTF-bin100(ebCTF 2013)-以夕阳落款

最后还有个对比要跳过,双击修改代码,je改为jne

西普CTF-bin100(ebCTF 2013)-以夕阳落款

修改完成后发现得到的结果是乱码的,乱码,乱码,乱码。

哈哈哈哈哈哈哈哈,乱码就对了,乱码就对了

这个程序比较坑的就是有个时间对比函数。如果时间误差超过2秒,值就变了,类似对比有5个。

西普CTF-bin100(ebCTF 2013)-以夕阳落款

在OD中对应如下,类似对比有5个,把jle改为jmp即可,与目标数字对比结束后,tiime函数下面就是对比:

西普CTF-bin100(ebCTF 2013)-以夕阳落款

动态调试的时候,把这个也改过来就可以了,就可以运行出结果了。

西普CTF-bin100(ebCTF 2013)-以夕阳落款

菜鸟第一次写writeup,欢迎各位大佬点评。
Flag:

温馨提示: 此处内容需要评论本文后刷新才能查看,支付2元即可直接查看所有Flag。

小广告:关于获取西普实验吧所有Flag请点击这里查看索引

查看所有Flag文章需要输入密码,需要获取文章密码的童鞋请扫描下面微信或支付宝二维码捐助至少2元(老哥,捐多捐少是个缘分)之后发送支付凭证号联系我获取,Flag大全地址:Flag大全

新功能:捐款的小伙伴请联系我把自己的注册邮箱加入网站白名单,可以免回复看到本站所有Flag

PS:本站不是实验吧的官方站点,纯粹是个人博客,收取Flag费用仅是维持服务器费用,做站不易,且行窃珍惜!

微信二维码:
支付宝二维码: