| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> BUUCTF--[GWCTF 2019]re3学习记录 -> 正文阅读 |
|
[系统运维]BUUCTF--[GWCTF 2019]re3学习记录 |
作者:recommend-item-box type_blog clearfix |
又是一道很操(没做出来)的题目,学习其他师傅的思路。 第一步: 常规操作,无壳64位,放入IDApro中。 搜索找到main函数,出现红色提示 ?查看main函数,读取,mproct函数,一种保护函数,不是很重要。 ?SMC自修改代码 在真正执行某一段代码时,程序会对自身的该段代码进行自修改,只有在修改后的代码才是可执行的。在程序未对该段代码进行修改之前,在静态分析状态下,均是不可读的字节码,IDA之类的反汇编器无法识别程序的正常逻辑。 第一次看,一脸懵逼,到这里就卡住了,把函数+i??? wtf???点进去查看 ?大概意思是将sub_402219函数的汇编代码修改了,最后再次执行,我们静态分析看不出来。而且这里无法动态调试。 查看汇编代码 ?发现这里出现了一大堆数据,应该就是我们需要处理的数据。 选中402219数据段 D键转换为数据段。 ?这时我们就需要使用IDC脚本进行数据修改(一种类c语言)shift+F2
然后将修改后的数据选中,右键分析,选择force强制执行,然后把代码按P键形成函数。 ?我们分析一下函数,点进去都是好长一段,试试findcrypt插件,可能是某种加密,发现是AES ?byte_6030A0就是最后加密后的内容
现在我们需要来求密钥unk_603170.linux远程动态调试(输入一个长为32位的字符串)
最后学习别的师傅的脚本
得到最后的flag为
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 22:43:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |