看雪CTF.TSRC 2018 团队赛 第九题『谍战』 解题思路
第九题《谍战》在月日中午:结束,仅有五支团队生存。GPUber团队在防守方排名第二。
最新战况如下:
- 放题搬砖狗哭哭稳居第一,代理商管理源码无人能撼动。
- Acehub从第6升至第4,雨落星辰上升1名至第5。
- n0body前名冲入。
剧情或有意外,第三支团队可能逆袭?
### 《谍战》解答思路
解题需排除干扰算法,从GUI分析,算法位于Shader中。涉及汇编语言、三元一次方程组。
### 出题团队介绍
出题团队:GPUber
### 设计思路
由看雪论坛supercolin原创。
### 解题关键点
1. **输入预处理**:利用正则表达式处理输入,确保位十进制数,每位为变量。
2. **字符串隐藏**:通过实时计算序列号,vt调试驱动源码GUI给出“Wrong/Correct”提示,实际显示信息由Dx完成。
3. **陷阱算法**:照搬去年爱琴海的海伦公式,输入调整以满足算法要求。
4. **DxRender**:使用预先构建的顶点和索引数据,根据输入渲染正确的或错误的文本。
5. **Shader算法**:汇编代码为HLSL字节码,需要通过D3DDisassemble()反编译获取真实算法。
### 解题步骤
1. 分析GUI找到Shader。
2. 理解输入预处理。
3. 反编译Shader获取算法。
4. 计算三元一次方程组。
5. 判断序列号正确性。
### 总结
正确的解题顺序是:分析GUI、确认算法位置、执行计算验证。是否解对了?答案待揭晓。
### 附件与链接
- nana C++库:nanapro.org
- CrackMe源代码:链接
- HLSL字节码反编译工具:链接
- Windows7 位兼容测试报告:链接
- 原文链接:bbs.pediy.com链接
### 合作伙伴
腾讯安全应急响应中心(TSRC)负责腾讯安全漏洞处理,携手安全行业精英共建互联网生态安全。
### 更多阅读
- [原创]hctf 部分pwn writeup
- [原创]看雪CTF.TSRC 团队赛 第九题 谍战
- [原创](Android Root)CVE-- 漏洞分析和复现
- [原创]关于CVE--的剑灵革命 源码一点细节
《挑战不用macOS逆向iOS APP》之ObjC语法、iOS应用开发、及Objection自动化hook入门
本篇文章针对iOS APP逆向基础知识进行讲解,旨在帮助学员了解在iOS APP逆向过程中的一些常见知识。课程内容包括Objective-C语法、iOS应用开发入门、以及Objection自动化hook的初步理解。
首先,我们从Objective-C基础语法和消息传递入手,通过一个“Hello World!”源码,了解ObjC的基础知识。Objective-C中类的声明与实现、类方法和实例方法的声明与实现,以及变量与属性的使用,都以清晰的逻辑呈现。属性默认是private权限,无法直接访问,但可通过@property声明,选择是否自动生成getter()和setter()方法。消息传递机制则显示了与C++的源码行业新闻差异,强调了在运行时动态决定处理消息的灵活性。
接着,简述iOS开发的基本架构和系统层次结构,强调Interface Builder作为界面设计工具的重要性。通过新建Xcode项目,设置项目信息,设计界面,实现界面与代码的绑定,构建一个简单的MVC程序。界面设计过程中,利用Interface Builder直接拉取控件,通过IBAction与IBOutlet连接界面元素,实现用户交互逻辑。在ViewController类中声明和连接组件,完成界面与功能的整合。
在介绍iOS打包与签名流程时,我们详细阐述了开发者账号的申请过程,包括注册Apple ID、填写信息、申请开发者账号等步骤。高速 jlink ob 源码强调了开发者账号的权限和不同账号的用途,以及使用AltStore进行个人签名的方法,以延长签名有效期。
最后,我们介绍了Objection自动化逆向与hook的基本概念,包括查看包路径、内存模块、导出表、获取应用信息、查看二进制文件加密情况等操作。通过实例分析,展示了如何利用Objection进行CrackMe的破解,包括分析点击事件响应方法、发现本地字符串、查找隐藏控件等步骤。这一部分强调了逆向分析的技巧和方法。
本文旨在为iOS APP逆向学习者提供基础的理论知识和实践操作指南。课程内容将根据需求不断更新,欢迎联系r0ysue师傅,加入学习交流群,共同探索iOS APP逆向的世界。
英文crack是什么意思呢?
vt. & vi.
1. (使…)开裂, 破裂2. (使)身体上或精神上垮掉3. 打开, 砸开4. (使)发出爆裂声5. 开瓶;(尤指)开瓶饮酒 6. 说(笑话);开(玩笑)7. 砸碎;打碎8. 重击;猛击9. (突然)变嘶哑,变沙哑. (因压力而)吃不消,崩溃,瓦解. 找到解决(难题等的)方法. 阻止,打击,击败,战胜(罪犯或敌人)n.
1. 裂缝, 缝隙2. 劈叭声, 爆裂声3. 意外的一下重击4. 试图, 尝试5. 俏皮话6. (可听到响声的)重击,猛击7. 缝隙;狭缝;窄缝8. 好时光;友好愉快的交谈adj.
1. 训练有素的;技艺高超的;优秀的;一流的vt.
1. 稍微打开2. 化学裂化(石油等),使裂解3. 吹捧(某人或物)4. 使发狂,使精神失常5. 计算机非法侵入adv.
1. 发出噼啪声地
crack,最直接的意为钥匙、破解意,cracker,破解者 CRACK 这个名词很容易和HACK混淆,但是许多人不理解CRACK这个东西,但是接触过软件破解的人一定了解这个词 CRACKER分析下就是软件破解者的意思(注意这里有多了个ER),许多共享软件就是我们的CRACKER来完成破解的,就是现在俗称的 XX软件破解版 许多程序员写的作品 都会被Cracker破解 程序员也会写一些CrackMe 来练习破解 (CreackMe 就是破解我的意思) ReverseMe 逆向我 比CreackMe 难度更大 在没有源码的情况下 做二次开发
BLOWFISHBlowFish's 分析
该CrackMe测试密码学知识,使用了upx加壳并方便脱壳。 通过常规分析,找到关键比较处,涉及BlowFish算法加密。 BlowFish解密输出Bit信息,需要进行两次比较。 确定程序对sn进行变换的函数为BF_De,需寻找初始化key_pbox和key_sbox的代码。 通过跟踪Call E0,找到初始化Boxes的关键代码段。 识别BF_De(sn)的key为"CrackingForFun",问题一半解决。 进一步分析,确定比较的另一个Bit数由BF_En(ComputerID, key="ChinaCrackingGroup")生成。 总结算法,写出注册机代码,要求具备编程能力和密码学基础。 ComputerID的生成通过BF_En(f6ch, h, key=PW_1),其中PW_1为Windows版本号。 注册机源码中有未用语句,可自行修改并编译以生成序列号。扩展资料
BlowFish是一个容易使用的文件和文件夹加密软件,只要用鼠标把把文件或文件夹拖到加密的文档地方。CrackMe全解析—上篇 | 很多人这个过不了
前言
CrackMe,被公认为具有高度挑战性的程序,很多人声称轻松通过,但作者决定深入解析其难点,本篇将阐述实际操作流程,下篇将详述逆向分析的策略与方法。
准备
环境与工具
学习层次
详解视频
上篇将采用动图演示流程,下篇则通过视频展现逆向过程。
实战图文
一.最终效果动图展示
二.查壳、脱壳
1.使用peid进行查壳操作,发现为upx壳,具体步骤如下图所示。
2.完成脱壳操作,脱壳后程序如下图所示。
二.整个破解流程
建议使用修改后的原版,其中仅对X盘符进行了修改,改为C盘符。如果不使用修改版,可能需额外增加X分区或手动修改盘符。
1.将目录下ok.txt复制至C:\ajj..c0m\j\o\j\o\ok.txt,完成对盘符的更改。
2.此时应能显示Edit2文本框,但处于禁用状态。
3.通过右键点击注册按钮五次,解除Edit2文本框的禁用状态。
4.双击图框区空白处,Edit2文本框禁用状态解除。
5.输入用户名ajj。
6.在Edit2文本框内输入1_,,随后双击该输入框中的任意位置。
7.当显示“性相近”时,将鼠标从软件框右下脚移至软件框内。
8.当显示“性本善”时,将鼠标从软件框左下角移至软件框内。
9.此时label3应显示数字0、1、2、3之一。
.将数字输入注册机中,点击生成并执行最终方案。
.根据方案点击相应,实现注册成功。
三、注册机源码
源码关注的是点击次数总和最小化的目标,考虑到多种组合,旨在寻找效率最高的方法。源码结构较为复杂,以方便新手理解。
版权保护,全文请访问全文链接阅读,感谢支持。
全文链接
2024-11-20 11:34
2024-11-20 11:31
2024-11-20 11:22
2024-11-20 10:38
2024-11-20 09:57