-
-
[原创]KCTF2022春季赛逆向第七题 一触即发WP
-
发表于: 2022-6-9 13:30 8134
-
运行程序,初步分析可确定输入是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
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2022-6-9 16:01
被kanxue编辑
,原因:
赞赏
他的文章
- [原创]KCTF2022春季赛逆向第2题 末日邀请WP 8777
- [原创]KCTF2022春季赛逆向第七题 一触即发WP 8135
- [原创]KCTF2022春季赛Crypto虫洞末世WP 12228
- [原创]第四题飞蛾扑火WP 6235
看原图
赞赏
雪币:
留言: