首页
社区
课程
招聘
[原创]KCTF2022春季赛逆向第七题 一触即发WP
2022-6-9 13:30 7567

[原创]KCTF2022春季赛逆向第七题 一触即发WP

2022-6-9 13:30
7567

运行程序,初步分析可确定输入是7位数字。目标程序即没有静态混淆也没有动态反调试。
虽然是源程序是go语言编写的,但和最终的答案没有什么必然的联系。
静态分析发现,对输入数字的判断在fmt_Fprintln_0中0x4a32ff开始,可以在ida中ctrl+f5还原算法。
图片描述
看出判断条件是一系列的相加等式,得到的结果需要等于10。动态调试获得这些加数,在运行时,对应的具体数值。
还原出最终的判断逻辑:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# input[1-7]对应输入的7位数字
  v10 = input[2] + 1 + 3 + input[1] == 10;
  if ( 3 + input[4] + input[3] + 1 != 10 )
    v10 = 0LL;
  if ( 4 + 3 + input[5] + 2 != 10 )
    v10 = 0LL;
  v11 = 4;
  if ( input[7] + 2 + 4 + input[6] != 10 )
    v10 = 0LL;
  if ( input[6] + 2 + 1 + input[1] != 10 )
    v10 = 0LL;
  if ( 4 + input[5] + input[3] + 3 != 10 )
    v10 = 0LL;
  if ( 2 + 3 + input[4] + 1 != 10 )
    v10 = 0LL;
  if ( input[7] + 4 + 3 + input[2] != 10 )
    v10 = 0LL;
  if ( input[3] + input[1] + 3 + 1 != 10 )
    v10 = 0LL;
  if ( 3 + input[4] + 1 + input[2] != 10 )
    v10 = 0LL;
  if ( 4 + input[6] + input[5] + 2 != 10 )
    v10 = 0LL;
  result = input[7] + 2 + 4 + 3;
  if ( result != 10 )
    v10 = 0LL;
  if ( v10 )

得到最终flag:
4224131


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2022-6-9 16:01 被kanxue编辑 ,原因:
收藏
点赞2
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回