首页
社区
课程
招聘
[原创]KCTF2021秋季赛题目提交
2021-11-14 11:15 5782

[原创]KCTF2021秋季赛题目提交

2021-11-14 11:15
5782

题目名称

Pythonscation(混淆叫obfuscation, 此题是基于python的混淆)

战队名称

Archaia(武汉科锐学员队)

附件文件

CrackMe.zip:比赛期间公开给攻击方的题目,包含题目可执行文件和公开的一组序列号
source.py:算法源码,包含注册机部分代码

公开的用户名及序列号

用户名 : 05C1930A146B0FC3
序列号 : 8E6E67F357338CC7912F3161CBAC4273

题目答案

用户名 : KCTF
序列号 : AD0A1F8179ABE48ED3B073F840DA52A7

题目设计及解题思路

本题目验证算法使用python2.7编写, 编译的pyc文件和python27.exe打包成一个自解压文件exe.
自解压文件exe使用易语言编写, 完成了写出文件到临时目录/带命令行调用python/删除临时文件的操作. 运行的命令行:python27.exe check.py
图片描述
自解压的压缩包内容:
图片描述
本题目设计重点在python的pyc文件二进制混淆:

1
2
★ 对pyc的字符串/变量名/控制流进行了二进制的混淆
★ 自己编译python可执行文件, 修改了原版的opcode

这俩混淆操作, 使得全部公开的python反编译工具无法使用, 需要攻击方阅读python源码, 根据python字节码恢复程序混淆.
看懂了此题的设计, 此题两种做法就比较清晰了:

1
2
★ 大佬直接硬撸python opcode写你算法, 就像看好几M的x86代码混淆一样
★ 网上找一份开源的python反编译工具(也可以自己写), 修改代码适配好此题的混淆和opcode

本题目算法部分使用了上届KCTF题目中的老算法+RC4, RC4跑两轮, 在标准RC4算法上每轮运算多加了个异或常量, 算法部分难度不高是为突出题目重心--pyc二进制混淆. 只要攻击方能击破代码混淆, 就是看"源码"写逆算法的活了.


[培训]科锐逆向工程师培训 48期预科班将于 2023年10月13日 正式开班

最后于 2021-12-6 10:16 被kanxue编辑 ,原因:
上传的附件:
收藏
点赞2
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回