首页
社区
课程
招聘
[原创]ctf2017第六题设计思路与解题思路
发表于: 2017-5-26 17:23 6161

[原创]ctf2017第六题设计思路与解题思路

2017-5-26 17:23
6161

这道题主要需要花时间搞清楚套路,就迎刃而解了。^_^ 

1.java层稍作字符串加密和类名方法名混淆处理(本来是打算java层也做点文章的@_@)



解题:通过阅读代码,可以知道check函数为关键函数,当返回为真的时候,注册成功。


2.so层用花指令对程序指令进行混淆,在一定程度上防止分析。



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

上传的附件:
收藏
免费 1
支持
分享
最新回复 (30)
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
2

看别人写的设计思路都挺详细的,我也重新写了个解题的脚本,这里附上。

@kanxue


2017-6-10 18:53
0
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
3
附件不显示

上传的附件:
2017-6-10 18:54
0
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
4
好了  IDC脚本和IDB  都在里面
2017-6-10 18:55
0
雪    币: 234
活跃值: (927)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
java层还好,通过调用当前线程的StackTrace信息来反射调用方法去解密字符串,我是直接写java代码反射调用提取的class文件,发现当前线程不同,取的StackTrace信息里的方法也取不到,另so里的花太多了,也不会写脚本
2017-6-13 14:19
0
雪    币: 53
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Bet
6
Ericky 好了 IDC脚本和IDB 都在里面
SO里面的字符串加密实现,一个字符串一个函数。请教这个是如何做到的呢,一般都是用宏实现的一个固定的解密函数。
2017-6-13 17:58
0
雪    币: 8209
活跃值: (4559)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
7
我想说这个题有个意外解:madebyericky94528T
就是原解末尾可以多加个T
2017-6-13 18:13
0
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
8
追风燕子 java层还好,通过调用当前线程的StackTrace信息来反射调用方法去解密字符串,我是直接写java代码反射调用提取的class文件,发现当前线程不同,取的StackTrace信息里的方法也取不到 ...
脚本在附件里
2017-6-13 19:48
0
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
9
Bet SO里面的字符串加密实现,一个字符串一个函数。请教这个是如何做到的呢,一般都是用宏实现的一个固定的解密函数。
没有考到这个字符串解密哦
2017-6-13 19:48
0
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
10
ccfer 我想说这个题有个意外解:madebyericky94528T 就是原解末尾可以多加个T
尴尬。。。被发现了。    是的  哭了。。再也不用这个编码了  太坑了
2017-6-13 19:49
0
雪    币: 1711
活跃值: (516)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
11
当我发现so里花太多的时候就放弃了F5,直接动态跟踪读汇编了。
另,还有个重试次数不能超6的检查~
2017-6-13 21:39
0
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
12
supercolin 当我发现so里花太多的时候就放弃了F5,直接动态跟踪读汇编了。 另,还有个重试次数不能超6的检查~
恩  是的,这种做法跟我的想法不一样。可能算法太简单啦,以后我要汲取教训。嘿嘿  辛苦
2017-6-13 21:44
0
雪    币: 5640
活跃值: (8043)
能力值: ( LV15,RANK:531 )
在线值:
发帖
回帖
粉丝
13

楼主,我用了你的脚本还是有跳转没有识别?


2017-6-13 22:16
0
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
14




houjingyi

楼主,我用了你的脚本还是有跳转没有识别?

把不能识别的函数要删掉  要不IDA识别不了

2017-6-13 22:38
0
雪    币: 53
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Bet
15
Ericky 没有考到这个字符串解密哦
恩恩,想学习下这块字符串加密的处理.
2017-6-14 01:41
0
雪    币: 17
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16

楼主,我照着你的idc的脚本运行了,发现ida view和hex文件确实去花了,但是点F5的时候还是没变,这是怎么回事?


这是显示已经去花的view

然后这是F5之后的,和以前一样,没有去花。

2017-6-14 16:38
0
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
17
小熊ppt 楼主,我照着你的idc的脚本运行了,发现ida view和hex文件确实去花了,但是点F5的时候还是没变,这是怎么回事?这是显示已经去花的view然后这是F5之后的,和以前一样,没有去花。
把中间被识别成"函数"的块都要删掉  就可以了
2017-6-14 17:45
0
雪    币: 17
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
Ericky 把中间被识别成"函数"的块都要删掉 就可以了
是在脚本里改吗,没看到啊,原谅我比较小白T^T
2017-6-14 18:03
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19

好的

2017-6-14 18:07
0
雪    币: 17
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
wingsbupt 在IDA内怎么删除函数?
edit->function->delete  function
2017-6-14 18:13
0
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
21
小熊ppt edit->function->delete function
嗯  对的
2017-6-14 20:11
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
小熊ppt edit->function->delete function
你有修改成功吗?
2017-6-15 11:11
0
雪    币: 17
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
wingsbupt 你有修改成功吗?
没,还是没用T^T
2017-6-15 11:23
0
雪    币: 17
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
Ericky 把中间被识别成"函数"的块都要删掉 就可以了
能说的再详细点吗
2017-6-15 11:24
0
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
25
小熊ppt 能说的再详细点吗
把check函数之间被IDA误识别成函数的"函数"全部delete掉,再F5
2017-6-15 11:57
0
游客
登录 | 注册 方可回帖
返回