• CTF逆向基础


    更多资源请进入:https://github.com/SycloverTeam/SycRevLearn 查看。

    1 IDA定位main函数

    运行T1.exe。
    在这里插入图片描述
    将可执行程序放入IDA中,并查找字符。
    在这里插入图片描述
    在这里插入图片描述
    双击。
    在这里插入图片描述
    在这里插入图片描述
    按F5,进入代码。
    在这里插入图片描述
    可以对函数进行重新命名,此时也已经得到了flag。

    2 简单的加密算法

    将T2.exe拖入IDA中,定位到main函数,代码如下:
    在这里插入图片描述

    可见3,flag经过了加密变换,所以我们可以将它进行逆运算得到flag。
    写一个C语言脚本。

    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
        char str[] = "gmbh|ZPV`GJOE`JU`IBIB~";
        for (int i = 0; i < strlen(str); i ++)
            --str[i];
        printf("%s\n", str);
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    得到flag。
    在这里插入图片描述
    接下来看另一种简单的加密。首先我们需要知道异或的概念。
    在这里插入图片描述
    将T3.exe放入IDA中分析得到:
    在这里插入图片描述
    编写脚本:

    data = [0x66,0x6D,0x63,0x64,0x7F,0x5C,0x49,0x52,0x57,0x4F,0x43,0x45,0x48,0x52,0x47,0x5B,0x4F,0x59,0x53,0x5B,0x55,0x68]
    for i in range(len(data)):
        data[i] ^= i
        print (chr(data[i]),end ="")
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    3 Base64编码

    将T4.exe丢入IDA中,查看源码;
    在这里插入图片描述
    在这里插入图片描述

    先处理编码再进行异或解密就可以得到Flag。

    4 Base64 变表逆向

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    5 IDA动态调试

    设置断点。
    2
    调试。
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    得到Flag。

    5 IDA动态调试解RC4

    F8单步步过。
    以附加的形式调试绕过反调试。
    在这里插入图片描述
    输入的数据。
    在这里插入图片描述
    v7的数据。
    在这里插入图片描述
    转换。
    在这里插入图片描述
    得到Flag。

    6 IDA代码修复 和 数组识别

    函数返回值没有有意义可以去掉函数类型。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    代码量就减少了很多,也可以使用快捷键v键。
    还有些变量的类型错误,也可以通过这种方式修改。
    在这里插入图片描述
    在这里插入图片描述

    7 UPX脱壳

    在这里插入图片描述
    远程执行IDA。
    在这里插入图片描述在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    远程调试器。
    在这里插入图片描述
    在这里插入图片描述
    设置IP地址。
    在这里插入图片描述
    F4程序执行到当前选中代码段。
    单步走。call步过。

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    创建函数。
    在这里插入图片描述
    F5反编译。
    在这里插入图片描述
    加粗样式
    得到Flag。

  • 相关阅读:
    c++ 学习 之 运算符重载 之 前置++和后置++
    研究 | CT图像迭代重建算法研究进展
    让ChatGPT等模型学会自主思考!开创性技术“自主认知”框架
    Android Compose Bloom 项目实战 (一) : 项目说明与配置
    92倒计时自律习惯养成计划打卡-day8
    MySql常用指令总结
    Redis数据持久化
    元宇宙照进现实 金蝶联手科大讯飞发布“数字员工”
    Node.js搭建WEB服务器
    Java之set集合的详细解析
  • 原文地址:https://blog.csdn.net/weixin_61823031/article/details/125617709