第14届(2021)CISCN初赛WP(2)——Glass

该博客介绍了如何通过apktool、dex2jar和jd-gui等工具对安卓应用进行逆向工程,以揭示其内部RC4加密机制。作者详细解释了检查函数checkFlag()在libnative-lib.so中的实现,通过IDA分析,确定了加密密钥并解密得到了FLAG。整个过程涉及安卓逆向、动态链接库分析以及RC4加密算法的应用。

Glass Writeup

首先使用apktool将“glass.apk”文件反编译
在这里插入图片描述

结果如下,提取其中Classes.dex文件
在这里插入图片描述

利用dex2jar工具进行反编译得到jar文件
在这里插入图片描述

生成jar包
在这里插入图片描述

使用jd-gui打开jar包,看到源码
在这里插入图片描述

核心判断函数如图所示
在这里插入图片描述

可以发现判断是利用checkFlag()函数
checkFlag为native外部函数
使用ida打开提取出的libnative-lib.so动态链接库
分析结束后可以在函数列表中很容易找到checkFlag()函数

### 关于2024 CISCN 初赛逆向工程题目解析 #### 逆向工程题目的背景介绍 在2024年的全国大学生信息安全竞赛(CISCN)初赛中,逆向工程作为一项重要的考察技能,在多个题目中有所体现。这类题目通常涉及对二进制文件、脚本或加密算法的理解与分析,旨在测试参赛者对于程序内部逻辑的掌握程度。 #### 解题思路概述 针对逆向工程类题目,一般采用如下方法论来解决问题: - **工具准备**:选择合适的反编译器和调试环境是成功的关键之一。常用的工具有IDA Pro、Ghidra等高级静态分析平台;以及OllyDbg这样的动态跟踪软件[^1]。 - **初步探索**:通过观察给定样本的行为模式(如启动参数、网络请求),可以获取一些线索帮助定位核心功能模块的位置[^2]。 - **深入挖掘**:利用上述提到的各种工具和技术手段逐步揭开目标应用程序的真实面目。此过程可能涉及到字符串查找、函数调用图绘制等工作[^3]。 - **验证假设**:当形成了一套完整的理论框架之后,则需设计实验加以检验其正确与否。比如尝试修改某些特定条件下的输入数据看是否会触发预期的结果变化[^4]。 #### 实际案例分享 以其中一个具体实例为例说明整个流程的应用情况。该挑战要求选手破解一个简单的加壳可执行文件并找出其中隐藏的信息。经过一系列操作后发现原生代码被混淆处理过,增加了阅读难度。不过借助强大的辅助工具还是能够还原出大致结构,并最终锁定了关键位置完成任务。 ```bash # 使用strings命令查看可能存在有用信息的地方 $ strings binary_file | grep "flag" ``` 这段shell指令展示了如何快速扫描二进制文件中的ASCII字符序列寻找潜在标志位(flag),这是许多CTF比赛中常见的技巧之一。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值