首页 > 其他分享 >2024CBCTF招新赛复盘(安卓除外,pyc还在研究)

2024CBCTF招新赛复盘(安卓除外,pyc还在研究)

时间:2025-01-18 12:45:06浏览次数:1  
标签:2024CBCTF 安卓 unsigned Len char long key pyc 256

inside

根据 hint,去https://github.com/ergrelet/unlicense下载脱壳机,直接拖拽文件脱壳.

里面一看,是个被魔改的 base64,把 key 和密文 dump 出来,扔给 gpt 一把梭写脚本,即得到 flag.

def custom_base64_decrypt(encoded_bytes):
    # 映射表
    v11 = "BACDEFGHIJKLMNOPQRSTUVWXZYabcdefghijklmnopqrstuvwxyz01234567+/89"

    # 解密的逆向 XOR 操作值
    xor_values = [21, 0x55, 69, 51]

    # 逆向映射表
    reverse_v11 = {v: i for i, v in enumerate(v11)}

    decoded_bytes = []
    for i in range(0, len(encoded_bytes), 4):
        chunk = encoded_bytes[i:i+4]

        # 解密:先 XOR,然后通过映射表逆向查找
        indices = []
        for j, c in enumerate(chunk):
            decoded_char = chr(c ^ xor_values[j])
            if decoded_char in reverse_v11:
                indices.append(reverse_v11[decoded_char])
            else:
                indices.append(0)  # 防止异常字符

        # 将索引恢复为原始的三个字节
        if len(indices) == 4:
            b1 = (indices[0] << 2) | (indices[1] >> 4)
            b2 = ((indices[1] & 0xF) << 4) | (indices[2] >> 2)
            b3 = ((indices[2] & 0x3) << 6) | indices[3]
            decoded_bytes.extend([b1, b2, b3])

    # 移除填充的多余字节
    return bytes(decoded_bytes)

# 被加密的密文
encrypted_data = [
    0x44, 0x65, 0x0F, 0x77, 0x43, 0x10, 0x1C, 0x04, 0x71, 0x11, 0x29, 0x58, 0x4D, 0x66, 0x22, 0x01,
    0x76, 0x39, 0x6A, 0x5A, 0x58, 0x38, 0x03, 0x49, 0x58, 0x39, 0x6A, 0x40, 0x5B, 0x66, 0x17, 0x55,
    0x4C, 0x3F, 0x03, 0x55, 0x4C, 0x67, 0x6A, 0x1C
]

# 解密结果
plaintext = custom_base64_decrypt(encrypted_data)
print(plaintext.decode('utf-8', errors='ignore'))

in_inside

这题与其说是我自己做的,不如说早就被学长透完了.

不会用 dbg,也看不懂壳,没有工具.学长说这是 vmp,是强壳,不能脱,直接动调.于是就用着笨办法,一步一步调,看出了逻辑,本质上就是两个字节的四位互换,然后再异或 0x11,0x22(这里我把他们当成了十进制

标签:2024CBCTF,安卓,unsigned,Len,char,long,key,pyc,256
From: https://www.cnblogs.com/T0fV404/p/18674684

相关文章

  • 运维系列&安卓系列【亲测有效】:Your build is currently configured to use incompati
    YourbuildiscurrentlyconfiguredtouseincompatibleJava21.0.3andGradle5.4.1build报错:YourbuildiscurrentlyconfiguredtouseincompatibleJava21.0.3andGradle5.4.1Cannot...报错显示报错原因成功解决方案尝试过未成功的方案buil......
  • 中国式家长手游下载免登录安卓,下载地址
    《中国式家长》是一款备受玩家喜爱的模拟养成类游戏,作为一款国产游戏,《中国式家长》以其独特的题材和玩法赢得了众多玩家的喜爱和好评。它不仅具有娱乐性,还具有一定的教育意义。它让玩家在体验游戏的同时,也能对中国式家庭教育进行反思和思考。丰富的剧情与结局:游戏中有多种剧......
  • 2025最新超详细PycharmIDE安装配置完整版教程(详细步骤)
    包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!PyCharm是目前最流行、使用最广泛的PythonIDE(IntegratedDevelopmentEnvironment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、......
  • Mac传输文件神器ToDesk,支持安卓、Windows、IOS
    家里的电脑是苹果机,公司的电脑却是戴尔Windows系统,有时候需要互传一下文件但人却不在目标设备的身边,委托他人开机通过邮件代传又不便,QQ微信又不能在两台电脑设备上同时登,这种情况怎么办?当置于公司Mac中的文件紧急需要传输到手机、平板中或者其他设备中的内容需要传输到MacBook中时......
  • Python+Django的社区爱心捐赠(Pycharm Flask Django Vue mysql)
    收藏关注不迷路,防止下次找不到!文章末尾有惊喜项目介绍Python+Django的社区爱心捐赠(PycharmFlaskDjangoVuemysql)项目展示详细视频演示请联系我获取更详细的演示视频,相识就是缘分,欢迎合作!!!所用技术栈前端vue.js框架支持:django数据库:mysql5.7数据库......
  • Python+Django的老年群体安全用药管理系统(角色:用户、医生、药师、管理员)(Pycharm Flas
    收藏关注不迷路,防止下次找不到!文章末尾有惊喜项目介绍Python+Django的老年群体安全用药管理系统(角色:用户、医生、药师、管理员)(PycharmFlaskDjangoVuemysql)项目展示详细视频演示请联系我获取更详细的演示视频,相识就是缘分,欢迎合作!!!所用技术栈前端......
  • 在kubernates中安装安卓模拟器
    1.检测环境root@xx:~#aptinstallcpu-checkerroot@xx:~#kvm-okINFO:/dev/kvmexistsKVMaccelerationcanbeusedroot@xx:~#ll/dev/kvmcrw-rw----1rootkvm10,232Jan1516:38/dev/kvm确认/dev/kvm设备存在即可。如果是ESXi虚拟机服务器,则需要在虚拟机配置......
  • 2025最新Python安装教程,PyCharm安装授权教程【附安装包】
    Python安装1、打开Python官网下载安装包:WelcometoPython.org注意:由于官网下载速度较慢,我这边将官网下载的安装包提前打包成了压缩文件,需要的同学可以直接点击这里免下载!2、下载完成后打开安装包: 3、按照下图,先勾选最下方两个配置选项,然后选择上方的自定义安装4、这里......
  • Python+Django的框架药品购买系统(Pycharm Flask Django Vue mysql)
    收藏关注不迷路,防止下次找不到!文章末尾有惊喜项目介绍Python+Django的框架药品购买系统(PycharmFlaskDjangoVuemysql)项目展示详细视频演示请联系我获取更详细的演示视频,相识就是缘分,欢迎合作!!!所用技术栈前端vue.js框架支持:django数据库:mysql......
  • Python+Django的智能宾馆预定系统(Pycharm Flask Django Vue mysql)
    收藏关注不迷路,防止下次找不到!文章末尾有惊喜项目介绍Python+Django的智能宾馆预定系统(PycharmFlaskDjangoVuemysql)项目展示详细视频演示请联系我获取更详细的演示视频,相识就是缘分,欢迎合作!!!所用技术栈前端vue.js框架支持:django数据库:mysql5.7数......