首页
社区
课程
招聘
[原创]CTF bugku 逆向 Mountain climbing writeup
发表于: 2019-2-19 22:48 7815

[原创]CTF bugku 逆向 Mountain climbing writeup

2019-2-19 22:48
7815

进入题目后,得到一个名为ConsoleApplication2.exe的PE文件,首先查看运行结果(病毒文件慎重,推荐虚拟机)


意思大概是让输入一个key,这个key经过运算之后得到一个maxnum,取运算的最大值,接下来,使用查壳工具查看是否加壳


发现该PE文件使用UPX加壳,接下来进行脱壳处理


随后使用IDA Pro打开查看,找到main函数


进入main_0


首先是生成一系列的随机数,随机数种子由srand(0xCu);指明,随后让输入key,存放于str中,长度为19,sub_41114F(Str);预处理key,接收key之后进去一个循环,然后根据key取随机数进行运算。根据if语句可以确定,输入字符的ASCII码经预处理后只能为‘L’(ASCII十进制为76)或‘R’(ASCII码十进制为82);

进入sub_41114F(Str);,在其内部调用中可以看到调用的其中一个函数结构如下:



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 2
支持
分享
最新回复 (5)
雪    币: 403
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
2019-2-21 08:59
0
雪    币: 1862
活跃值: (4294)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习
2019-2-23 12:32
0
雪    币: 230
活跃值: (82)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
学习
2019-3-20 17:12
0
雪    币: 19
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
从算法的角度分析,这样算好像不太对啊,应该用递归或者搜索查询最大值把
2019-7-25 20:38
0
游客
登录 | 注册 方可回帖
返回