2023山东省职业技能大赛WriteUp
前言啦啦啦啦啦啦啦~ 打完脑子宕机了
打穿逆向跟杂项 =。=
(杂项差个IC卡破解,真没时间看了)
Revbabyrebase64解密
flag{12246231b2e4b2544ff2f4ec36f343e9}
TEA
EasyRejadx打开,看到密文AES-ECB解密即可注意有个\n,把他去掉
GORC密文提取+key
RC4解密
XXTEA - rustrust逆向
居然输入flag,输出flag
替换密文为加密之后的密文不就可以解密了?
找到解密函数开搞
Hardre - 反调试/xtea/Base64反调试、Xtea、Base64、异或
写出解密脚本,看了半天了
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 ...
2023强网拟态初赛WriteUp
前言尽力了,呼呼呼
fisher - sha1/反调试
sha1
反调试
下载附件运行无果
OK,没思路就动调,找输入的地方下断点
有几个反调试
遇到jz/jnz的指令,改标志位直接过
(通常过反调试的方法,那就是运行,退出程序的前几条指令修改即可)
然后会到输入的地方
N17EHf1DWHD40DWH/f79E05EfIH1E179E1
2e95a5c5f9643df668d3965a6cdf19541bc0496b
发现了主要将函数call
好熟悉的函数,
查MSCN
ALG_ID (Wincrypt.h) - Win32 apps | Microsoft Learn
结合上面的字符串
2e95a5c5f9643df668d3965a6cdf19541bc0496b
解密,得到
6c324d2c86a72b864a22f30e46d20220
提交,正确
flag{6c324d2c86a72b864a22f30e46d20220}
find me and crack me - md5/DES
md5
DES/ECB key=PKcs7
右键 ...
2023香山杯WriteUp
前言
不多说,就一句话,无pwn雪崩
URL从哪里来题目描述说明 程序会生成什么文件
将程序拖入ida分析
从伪代码中发现重要字符 ou标识符
动调 发现程序生成了好多文件,
ida中可找到有关ou的文件
路径 C:\Users\86189\AppData\Local\Temp\ou.3BDB.tmp
该文件拖入010发现其实是PE文件
将此程序拖入ida分析,动调一会得解
1flag{6469616e-6369-626f-7169-746170617761}
hello_py - xxtea此题目在2023CISCN华中赛区就用过 — 不过没让我去,太可恶了!
(ichunqiu重复利用 白嫖 Mz1 题目,哈哈哈哈哈)
jadx分析,Java层
发现关键标识符 - hello
题目思路:apk文件解压,翻目录找到了源代码
hello.py —— 题目源代码
审计代码,发现是xxtea
编写exp,得解
exp
12345678910111213141516171819202122232425262728293031323334353637383940 ...
2023羊城杯WriteUp
前言不得不说,本科组真是太卷了,,,,哇哇哇哇哇哇
最近打的比赛 这下真成取证手了,hhhh
前蓝帽,陇剑负责取证,这块misc也是做出来了取证,哈哈哈哈
比赛总共输出2道逆向,2道杂项,题目做着很有手感,(
但是嘞,das的题目不想多说了
看题都能看出来是谁出的 (虽然也做不出来
CSGO - GO/base64/反调试base64,动调出来table表即可得解
有个反调试,过掉即可
提取密文
1
动调
12345table: LMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKcipher: cPQebAcRp+n+ZeP+YePEWfP7bej4YefCYd/7cuP7WfcPb/URYeMRbesObi/=flag:DASCTF{73913519-A0A6-5575-0F10-DDCBF50FA8CA}
vm_wo - mac/vm拿到附件 发现是macos系统文件
拖入ida64 函数很好看
main函数,很明了
1234567891011121314151617181 ...
2023通配符CTF-*CTF-WriteUp
goGpt分析:使用 go_parser恢复go符号表
使用方法:
12在ida64中按下按键 `alt + P` 选择`go_parser.py`运行等待即可
插件项目地址:GitHub - 0xjiayu/go_parser:IDAPro 的又一个 Golang 二进制解析器
恢复后
mian函数
往下
解密:接着呢
动调找到key
然后编写脚本解密即可
exp
123456x="fiAGBkgXN3McFy9hAHRfCwYaIjQCRDFsXC8ZYBFmEDU="key="TcR@3t_3hp_5_G1H"import base64y=list(base64.b64decode(x))for i in range(32): print(chr(y[i]^ord(key[i%16])),end="")
ez_code法一:终端运行题目描述 –>powershell脚本语言
将整个powershell代码在powershell中运行,得到
将 最后面的| .${-``} 去掉,得到这一段
这一段(上图)是假的
程序的结构大概是这样 xxx1 ...
2023巅峰极客WriteUp
rev - g0Re - elfUPX/AES/base64查壳,发现是upx打包的elf文件
upx -d 脱壳脱不掉,010中发现魔改的特征码
将OKXX –> UPX! 即可
脱壳后拖入ida64分析
main函数审计代码
动调提取密文
1E6CE89C8CFC5F5C9D2D9C091CE7FACCCE9CFB7C096D4EA92E2D7DF84CBA5AE93A6CABE97DFCEF0C9B7E1AE6BC4B165DBCEED9293D68CEDC3A3DA94A5AAB2B5A755
然后提取aes的密钥 - 按a键转化为字符串 – > wvgitbygwbk2b46d
发现base64换表了,提取表
1456789}#IJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123ABCDEFGH
最后动调sub,找出sub的key –> key还是这个
cyberchef—-!!!
flag{g0_1s_th3_b3st_1anguage_1n_the_wOrld!_xxx}
exp ...
2023HWS-WriteUp
前言因为国护, 去不了,只打了逆向区就溜了。
另外的题目是后来复现的
Android - sm4打开,apk名字app-release_10_jiagu_sign , 以为是要去加固,然后也确实有加固,刚开始没敢写。
写题的话,应该先看程序是干嘛的,就是说,运行看题,然后的话,发现有两个字符串
进入 – 159762dr7vh438sa
点击按钮 – 1313131313131313
可以使用,frida-dex脱掉加固的dex壳,好像是整壳
法一:静态分析主要逻辑在so层中,ida分析
123456789101112131415161718192021222324252627282930313233343536373839404142int __fastcall Java_com_ctf_jniex_MainActivity2_decrypt(int a1, int a2, int a3, int a4){ char *v7; // r0 char *v8; // r0 _BYTE *v9; // r1 int v10; // r4 char v12[8]; // ...
2023SCTF-Syclang-中间指令IR分析
分析题目给出了2个文件 – 程序AND中间指令
运行程序
出题人写了一个简单的汇编器,查看另一个附件,其中有着800行的中间代码
不是特别多,可以手动翻译一下,主要就是赋值和循环
123456//声明一个结构体STRUCT exp : ARRAY .key(int)[24]<+0>//int类型,这里占8个字节,8*24=192 ARRAY .L(int)[8]<+192> ARRAY .R(int)[8]<+256> ARRAY .X(int)[8]<+320>
main函数
12345678910FUNCTION main - 1640 : ARRAY var11(char)[24]<+0>//char类型占一个字节 STRUCT var22(exp)<+488> STRUCT var23(exp)<+872> STRUCT var24(exp)<+1256> STRUCT var25(exp)<+1640> ARG var11<+24> ...
2023数字中国数据安全决赛WP复现
数据安全 - 逆向区Encryptedfile给了个加密程序以及一个加密的图片flag.png.enc
试一下就是这款软件对他进行加密、
那么只需要了解加密原理就能够逆出原程文件了
因为打过另一个数字人才挑战赛, 感觉就是和那道题差不多
详情请看我另一篇数据中国的题目解析
拖入ida64分析
FindCrypt 发现是 salsa20加密
salsa20加密原理如下:
12345678910111213141516171819202122232425262728# 导入相关库和常量from Crypto.Cipher import Salsa20from Crypto.Random import get_random_bytesKEY_SIZE = 32 # 密钥长度IV_SIZE = 8 # 初始化向量长度# 加密函数def salsa20_encrypt(key, data): # 生成随机的初始化向量 iv = get_random_bytes(IV_SIZE) # 使用Salsa20算法进行加密 cipher = Salsa20. ...
PlaidCTF2023WriteUp复现-js逆向
Treasure Map前言也不是第一次接触js逆向了
但这一道 明显 比之前接触的都好
确实学到辣很多东西
不得不说 国际赛确实比国内的比赛有东西(每次玩 都能学到很多新东西)
当然, 每次也都被虐爆 不过 很开心 痛并快乐着
不扯了 看题
先贴一篇博文 – 笔者也是引用的这个
https://rinnnt.github.io/ctf/2023/04/16/plaidctf-2023-writeup.html
解决
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677const b64 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`;export const go = async () => { const bti = b64.t ...