第四届“长城杯”信息安全铁人三项赛决赛RE-obfuscating

本文主要是介绍第四届“长城杯”信息安全铁人三项赛决赛RE-obfuscating,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

这里主要是加了混淆
这里要用到IDA的一个插件D810和去混淆脚本deflat.py。值得注意的是deflat.py无法在主逻辑去混淆,这里可以参考这篇文章的脚本利用angr符号执行去除控制流平坦化 - 0x401RevTrain-Tools (bluesadi.github.io)。在使用deflat.py和这文章中的脚本轮流使用后,再使用D810查看

刚刚使用文章中脚本去混淆后

 这里还有一些永真永假分支
可以先用D810化简一下

 这样逻辑还是感觉有点乱
在27行看

dov13 = i < 5;while ( dword_603280 >= 10 && dword_603280 < 10 );if ( !v13 )break;

dword_603280是全局变量,一般固定为0

dword_603280 >= 10 && dword_603280 < 10 

语句必为0,这里是do while句式,到看汇编

 这里改jmp

 

 这里就恢复了一部分。
后面恢复同理

 这里发现有4位不知道

 这里是利用正确的4位为RC4的key,检查最后异或的流秘钥是不是对应的位数
这里采用爆破的思路

xorkey=[0xC7, 0x3C, 0x12, 0x09, 0x07, 0x8E, 0x88, 0xB9, 0x18, 0x94, 0x4B, 0x6D, 0x13, 0x15, 0x81, 0x5C, 0xA5, 0xC7, 0x0D, 0x23, 0xEF, 0x45, 0xEC, 0xC9, 0xB1, 0x05, 0xB6, 0x84, 0x37, 0x63, 0xDE, 0xA5,]
enc=[0x53, 0xB9, 0x93, 0x80, 0x49, 0xD7, 0x6F, 0xAB, 0xAA, 0x9E, 0xED, 0x32, 0x18, 0x43, 0xEA, 0xF5, 0x60, 0xCB, 0xED, 0xD6, 0x3A, 0x68, 0x73, 0x07, 0xDD, 0x56, 0xF5, 0xBC, 0xE4, 0xFA, 0x14, 0xEE,]def check(s_box):v6 = 0v5 = 0for i in range(len(xorkey)):v6+=1v5 = (s_box[v6] + v5)%256s_box[v6], s_box[v5] = s_box[v5], s_box[v6]v4 = (s_box[v5] + s_box[v6])%256if xorkey[i]^s_box[v4] !=enc[i]:return Falsereturn  Trueimport string
table=string.digits
table+=string.ascii_lettersfor s1 in table:for s2 in table:for s3 in table:for s4 in table:x=s1+s2+s3+s4key=[ord(i) for i in x]s_box=[0]*256for i in range(256):s_box[i]=ia3=0for i in range(256):a3=(key[i % 4] + a3 + s_box[i])%256s_box[a3],s_box[i]=s_box[i],s_box[a3]if check(s_box):print(key)#[54, 69, 66, 51]
enc=[0x1D, 0x1D, 0x1D, 0x6E, 0x6D, 0x6A, 0x1C, 0x1C, 0x6A, 0x6B, 0x68, 0x1C, 0x61, 0x61, 0x61, 0x1D, 0x69, 0x6A, 0x6A, 0x69, 0x6B, 0x6D, 0x69, 0x1C, 0x61, 0x6F, 0x1C, 0x61,0x66, 0x6C, 0x61, 0x67
,0x7B, 0x7D
]
enc1=[0x53, 0xB9, 0x93, 0x80, 0x49, 0xD7, 0x6F, 0xAB, 0xAA, 0x9E, 0xED, 0x32, 0x18, 0x43, 0xEA, 0xF5, 0x60, 0xCB, 0xED, 0xD6, 0x3A, 0x68, 0x73, 0x07, 0xDD, 0x56, 0xF5, 0xBC, 0xE4, 0xFA, 0x14, 0xEE,]
xorkey=[0xC7, 0x3C, 0x12, 0x09, 0x07, 0x8E, 0x88, 0xB9, 0x18, 0x94, 0x4B, 0x6D, 0x13, 0x15, 0x81, 0x5C, 0xA5, 0xC7, 0x0D, 0x23, 0xEF, 0x45, 0xEC, 0xC9, 0xB1, 0x05, 0xB6, 0x84, 0x37, 0x63, 0xDE, 0xA5,]
for i in range(len(xorkey)):enc1[i]^=xorkey[i]flag='flag{6EB3'for i in range(28):enc[i]^=0x58flag+=chr(enc[i])
flag+='}'
print(flag)#flag{6EB3EEE652DD230D999E1221351D97D9}

 

这篇关于第四届“长城杯”信息安全铁人三项赛决赛RE-obfuscating的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/796056

相关文章

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

013.Python爬虫系列_re正则解析

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈 优

信息安全工程师模拟测试题

信息安全工程师:信息安全工程师证书属于软考中级资格证书之一,为了适应“十三五”期间计算机软件行业发展需要,满足社会多方对信息安全技术人员的迫切需求,信息安全工程师在2016年下半年首次开考,目前一年仅考一次。 信息安全工程师模拟测试题 一、基础知识二、软件应用 信息安全工程师 属于《国家职业资格目录(2021年版)》目录中的证书,通过考试将颁发由人社局和工信部盖章

Enlight官方第四届“金融帝国杯”玩家游戏视频邀请赛〔参赛玩家作品展播〕(一)(持续更新中)

Enlight官方第四届“金融帝国杯”玩家游戏视频邀请赛 〔参赛玩家作品展播〕(一)(持续更新中) ————————————— Ⅰ〖比赛时间〗 ◇ 报名参赛(视频发布)时间:2024年06月10日~12月09日 ◇ 比赛颁奖时间:2024年12月底前(届时将在官方①、②、③群同步举行) ◇ 获奖名单刊登:3DM论坛(金融帝国2专区)、百度贴吧(金融帝国2吧) —————————————

Login failed:make sure your username and password are correct and that you’re an admin or moderator

Login failed:make sure your username and password are correct and that you’re an admin or moderator   1.使用MySql查看工具进入数据库,进入表“ofuser”,把字段 plainPassword 改成 123,然后在你的控制台上输入该表的   username跟plainPa

信息安全威胁

关注这个证书的其他相关笔记:NISP 一级 —— 考证笔记合集-CSDN博客 0x01:我国面临的信息安全威胁 从受威胁的对象来看,可以将我国面临的信息安全威胁分为三类:国家威胁、组织威胁和个人威胁。 来自国家的威胁: 恐怖组织通过网络大肆发布恐怖信息,渲染暴力活动。 邪教组织通过网络极力宣扬种族歧视,煽动民族仇恨,破坏民族团结,宣扬邪教理念,破坏国家宗教政策,煽动社会不满情绪,

信息安全发展阶段与形式

关注这个证书的其他相关笔记:NISP 一级 —— 考证笔记合集-CSDN博客 0x01:信息安全的发展阶段 信息安全的发展阶段可以参照下面的思维导图: 0x02:我国的信息安全形式 2013 年,“棱镜门” 事件在全球持续发酵,隐藏在互联网背后的国家力量和无所不在的 “监控” 之手,引起舆论哗然和网络空间的连锁反应。全球范围内陡然上升的网络攻击威胁,导致各国对信息安全的重视程度急

信息与信息安全

关注这个证书的其他相关笔记:NISP 一级 —— 考证笔记合集-CSDN博客 0x01:信息与信息技术 0x0101:如何理解 “信息” 的含义 信息是有意义的数据,它具有一定价值,是一种需要适当保护的资产。数据是反映客观事物属性的记录,是信息的具体表现形式。数据经过加工处理之 后,就成为信息;而信息需要经过数字化处理转变成数据才能存储和传输。 0x0102:“信息” 的功能有哪些

解决Re-download dependencies and sync project

解决Re-download dependencies and sync project 问题描述 新建一个工程,报错 Error:Failed to open zip file.Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)<a hr

P7492 [传智杯 #3 决赛] 序列

*原题链接* 一道类似势能线段树的题,区间按位或上k,不满足区间可合并的性质,只能暴力的单点修改。 但是考虑按位或的性质,一个数或上另一个数,只会变大或不变,如果我们能找到一个方法,能够判定区间里的数,或上k后是否有改变,就可以避免的暴力了。我一开始想的是线段树里维护一个的数组,表示区间内所有数的二进制表示下某一位是否为1,但这太难写,最后无奈去看官方题解,发现只要维护区间所有数的按位与和An