首页
社区
课程
招聘
[原创]看雪ctf 2017 No.14
发表于: 2017-6-28 09:12 5169

[原创]看雪ctf 2017 No.14

2017-6-28 09:12
5169

随缘做题 2333

程序带壳,用查壳工具没能查出来是什么壳,那这个应该是作者原创的,只能手工脱壳了,可是。。。。我不会脱壳,瞎捣腾一番,毫无结果。。。

在最后快要放弃的时候,尝试了一次投机的方法,运行程序,用OD附加,转到401000,然后dump,发现能dump!!!

这样就得到了疑似脱壳后的代码了,然后是字符串搜索,定位到sub_40679A()


其中sub_4074A3()如下


所以v0上的数据就是'Please enter the key: '

sub_40752A()的功能不清楚,不过看起来那么复杂,应该是库函数吧,根据实际就暂时把他当做printf之类的函数吧

找到调用sub_40679A的函数sub_407165()


这里的过程看上很怪。。。不过里面的函数有点特别,比如sub_40818E,sub_407918,sub_407E2F,他们的参数里都有一个函数地址,跟进分析这些函数地址,根据其代码,分析猜测其功能,然后推测出其验证过程:输入长度为12的字符串交由bf_vm验证。

bf_vm函数如下


这里输入的字符串会转成bit,然后程序根据预先准备好的bf代码生成字节码,然后再开始运行vm

bf_func函数如下


这里的功能跟bf的并没多大不同,只是case 5和case 6需要注意,case 5如下


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (8)
雪    币: 10072
活跃值: (3008)
能力值: ( LV15,RANK:515 )
在线值:
发帖
回帖
粉丝
2
2017-6-29 14:28
0
雪    币: 1355
活跃值: (339)
能力值: ( LV13,RANK:920 )
在线值:
发帖
回帖
粉丝
3

太牛了,谢谢楼主分享

2017-6-29 15:22
0
雪    币: 13713
活跃值: (2851)
能力值: ( LV15,RANK:2663 )
在线值:
发帖
回帖
粉丝
4
感谢渡师傅
2017-6-29 16:15
0
雪    币: 11705
活跃值: (975)
能力值: ( LV12,RANK:779 )
在线值:
发帖
回帖
粉丝
5
非常厉害!
2017-6-29 17:36
0
雪    币: 1610
活跃值: (548)
能力值: ( LV12,RANK:382 )
在线值:
发帖
回帖
粉丝
6
厉害厉害,  拜读好几遍
2017-6-29 23:31
0
雪    币: 2548
活跃值: (965)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
7
新技能get
2017-6-30 09:56
0
雪    币: 459
活跃值: (166)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
8
非常厉害!
2017-6-30 11:35
0
雪    币: 1432
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
  花见花开
2017-7-4 06:59
0
游客
登录 | 注册 方可回帖
返回
//