研究背景
在之前OLLVM项目的研究过程中,我们发现反调试技术对反混淆脚本有一定的干扰作用,如果可以在OLLVM的中间代码中自动化插入反调试代码,那么就可以给OLLVM的代码混淆增加一层保障。
方案分析
探讨多种方案以后,我认为最适合在汇编代码中进行代码嵌入,原因如下:
1.首先,在C语言或者LL层的高级语言中,存在比较复杂的括号和分支语句,代码有可能错误的嵌入。
2.其次,反调试代码主要是以汇编语言为主,所以选择越底层的语言嵌入越好。
但是在汇编代码中的嵌入依然存在很大的问题:
1.我们要确定汇编程序的代码段,而且要把函数进行划分,甚至要划分出,在一个基本块或函数之内进行代码嵌入。
2.汇编代码中存在比较多的分支和跳转,混淆代码的插入可能会破坏原程序流程。
3.有些混淆代码并不是连续的,而且包含跳转语句,因此嵌入时需要对上下文的语义进行分析。
初步脚本
选择一种最简单的嵌入形式,即假设已经确定需要嵌入的代码段,处理完分支和跳转,而且嵌入的代码是连续的,那么只需要直接完成嵌入工作即可。于是用python写出一个样例脚本模拟OLLVM的工作:
1 | #conding=utf-8 |
运行效果
假设有下面这样的汇编文件Code.asm:
1 | start: |
运行后得到的output.asm如下:
1 | start: |
初步实现了嵌入功能。
2020520 愿所有关心我的人都能被温柔相待,愿世间所有人都能乐观阳光积极向上。特别感谢我的父母一直含辛茹苦地哺育着我,我爱你们。
- 文章链接: https://life-extension.github.io/2020/05/20/通过python脚本自动插入混淆代码的一种基本示例/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!
-
ACTF2020密码学部分writeup
六月 5日, 2020
编写的项目文件请参考项目链接。同时欢迎大家访问ACTF2020的所有赛题。喜欢的话请多多资瓷一下,给我们实验室的项目加个Star或者Fork,谢谢。 为了保护服务器的同时不给选手带来更多困难,密码学部分的交互题开了pow算力检测,我也...
-
基于门限方案的条形码保密及容错技术
四月 30日, 2020
关键词:门限方案,条形码保密,条形码容错,条形码认证与防伪造。 经历过初期两个小项目的探索,我们项目团队积累了一定的项目研究经验,在老师和16级学长的帮助下,我们把研究方向转到了门限方案的实际应用上。结合市面上用9张合并的条形码提高条...
-
2020新年原创脚本-其中的小把戏你清楚吗
四月 26日, 2020
关键词:随机数素数生成,新年祝福小程序。 脚本创作这是我在大年三十写的一个程序,当时我正准备去伯克利交流,但由于疫情的缘故,出国变数增大,所以我就打算通过随机数“未卜先知”。以下就是我的脚本: 12345678910111213141...
-
基于CRT的物流信息安全处理方案
四月 15日, 2020
关键词:中国剩余定理,密钥分发技术,隐私保护。 引言在2018年11月份的时候,段老师在密码学课上讲到了密钥分发协议,我当时就觉得这个协议很有意思也很有应用前景。后来老师还很主动地分享了一下它的idea,其中一部分就是有关物流单上的信...
-
基于CRT的新型群文件共享系统
四月 13日, 2020
关键词:隐私保护,权限管理,身份认证,中国剩余定理,密钥分发,密钥更新。 这个项目的是在2019年寒假期间进行的,4月份在中南大学信息安全作品赛答辩,但是由于功能只实现了主体部分,加之我在台上比较胆怯紧张,所以只获得团队三等奖,但是当...
-
安卓反混淆软件探索-deobf
三月 19日, 2020
关键词:代码混淆,代码反混淆及其原理,代码反混淆软件测试与性能对比。 前言我们的大创项目其实是分两方面进行的,一方面,我们从代码混淆的角度比较各种软件对安卓程序的加固能力;另一方面,我们着重针对OLLVM进行反混淆测试。OLLVM集成...
-
记一次安卓代码加固软件的测试过程
三月 13日, 2020
关键词:代码加固,软件测试,原理分析,过程分析。 在大创项目的实践中,我们对市面上的一些安卓代码加固软件进行了采集,经过搜集,发现了几类代码加固方法并分组进行研究。我发现很多代码加固软件都是对java字节码进行混淆与加固,另外一些则选...
-
OLLVM代码加固机制分析
二月 24日, 2020
我们通过自己编写测试代码,再用OLLVM的不同指令进行加固,并逆向查看加固效果,加深对代码加固机理的了解。OLLVM目前提供的功能包括控制流平坦化(fla指令),指令替代(sub指令),代码虚拟化(bcf指令)以及虚假控制流(obf指...
-
对音频缓存加密的探讨
二月 17日, 2020
关键词:缓存解密,批量自动执行脚本,版权保护相关建议。 前段时间,某音乐被爆其缓存文件只使用了简单的异或加密,且容易得到加密密钥为0xa3。原文链接点击这里。以下是我的延伸探讨。 1.对音频缓存的批量解密攻击抱着好奇的心理,我把手机...