首页
社区
课程
招聘
看雪CTF2018第四题wp新手版本
发表于: 2018-6-24 03:03 5483

看雪CTF2018第四题wp新手版本

2018-6-24 03:03
5483

肝这道题从第一天12点一直刚到第二天4点钟 完成的部分是把AES部分分析完 以及分析出RSA部分一小点点东西 知道了超出自己能力范围之后 就放弃了这道题 答应师傅不作弊 找师傅要了提示 然后才把剩下的部分做完 所以只是提交wp 没有提交flag 希望管理员大大不要生气


wp部分是我结合自己的思路 和师傅给我的提示写的 争取能够思路清晰 然后后半部分会有一些未完成部分我自己做的思路 有很多困惑 希望能得到大家的建议和解答

一.自己分析部分
1.分析大概流程: 下载文件运行如图


所以简单的if else

我到现在都还是新手 所以到这一部分我想讲一下我目前悟出来的查找main函数的方法(我很长一段时间都不能查找到main函数。。) 希望对和我一样我的小伙伴们能有所帮助
       1.查找401000, 大多数懒的作者写的程序都可以直接把这里视为main函数起点
        2.查找API: MessageBox之类
        3.查找特征字符串 比如上面的error
        4.这是最近悟出来的 比如如果输入数字 那么%d这里是关键 向上面这种 搜索%s


这里我选择的是第3种 IDA如图

主要是看pause 用vs的语句为了方便观察 都是system("pause") 否者会一闪而过 而且此处%s和界面的欢迎信息对应 其实也可以查找
点击pause 查看引用


猜测没错 所以这里往上拖 得到main函数地址为

IDA无法f5 所以看od汇编分析流程 大概如下


动态调试 
               a.观察经过4011e0 欢迎信息打印 所以此函数打印信息 
               b.注意查看堆栈 可以发现401078 这个函数生产success(ebp - 14) 和 error(ebp - 20) 字符串(重要 后面要使用这个信息分析流程)
               c.42e3c0输入字符串

打开ida 点击14 如图



可以看到403299是我们的分析重点 这里会打印成功的信息 所以我们查看满足什么条件 程序会到这里 

回溯流程发现关键跳转如图 edx == 2则可成功 



观察发现-4, -8 分别为两个函数返回值 仔细思考为什么常数是2 so: 1 + 1 = 2 即两个函数都必须为真 动态分析(查看调用这两个函数的函数堆栈) 发现第一个函数检验input[3:] , 第二个函数检验input[0:2](input为输入字符串) 因为第二个比较小 分析第二个 f5 如图

指令解析失败 我没学过脱壳花指令 所以准备放弃的 用OD 查看了一下

发现逻辑太简单了(想不通可以动态跟踪 记得是f7 ) 程序最终可以目的执行到 402e5a(中间db不影响程序执行 但是破坏了字节的对齐 所以ida无法f5) 把这一段nop掉就可以 nop之后如图 


ida重新f5如图


程序追溯如下
   v19 == v23 from v11 from v27 
            40d760: AES加密 生成密钥
            40dc40: AES加密 生成密文
            40100f: 获取v11的ascii 放到v23当中

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

最后于 2018-6-24 10:50 被wjzid编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 620
活跃值: (372)
能力值: (RANK:150 )
在线值:
发帖
回帖
粉丝
2
看雪的od有反反调试  吾爱的没有  我当时碰到了了反调试  反调试的思路是如果检测到被调试  就执行反调试代码(创建自身子进程)    前面说了如果  所以把jnz改为jmp就可以了  后续补充。。。还有补充一点  前面有两个检测  一个是长度小于0x17,  前三位必须为数字  忘了写了  抱歉..
2018-6-24 03:08
0
雪    币: 620
活跃值: (372)
能力值: (RANK:150 )
在线值:
发帖
回帖
粉丝
3
必须为数字  上面讲错了。。
2018-6-24 10:39
0
雪    币: 16754
活跃值: (7301)
能力值: ( LV13,RANK:923 )
在线值:
发帖
回帖
粉丝
4
确实我也是去年开始学的,还有很多不足的地方!看雪是个非常好的地方,学习氛围非常好的!各位师傅包括版主人也很好!
2018-6-24 13:44
0
雪    币: 5676
活跃值: (1303)
能力值: ( LV17,RANK:1185 )
在线值:
发帖
回帖
粉丝
5
main函数,xref  ExitProcess,找他的参数是哪个函数的返回值,那个函数就是main
当然要从入口点那块开始找
2018-6-25 18:45
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
16进制转10进制这种大数怎么转换,有工具吗?
2018-7-25 11:16
0
雪    币: 620
活跃值: (372)
能力值: (RANK:150 )
在线值:
发帖
回帖
粉丝
7
之幽灵 16进制转10进制这种大数怎么转换,有工具吗?
有的 在线网站 391K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2T1M7X3q4F1j5h3S2Q4x3X3g2U0L8$3#2Q4x3V1k6S2M7$3y4A6K9g2)9J5k6r3y4G2L8Y4k6W2M7Y4c8W2M7W2)9J5y4X3&6T1M7%4m8Q4x3@1u0Q4c8e0g2Q4b7U0S2Q4z5p5y4Q4c8e0k6Q4z5f1y4Q4z5f1u0Q4c8e0g2Q4b7f1k6Q4b7U0W2Q4c8e0k6Q4z5o6u0Q4b7e0S2Q4c8e0k6Q4z5f1y4Q4z5o6W2Q4c8e0g2Q4b7U0S2Q4b7f1g2Q4c8e0N6Q4b7V1u0Q4z5o6b7`.
2018-7-27 21:38
0
游客
登录 | 注册 方可回帖
返回