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
1234567891011121314151617181920212223242526272829303132333435 ...
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函数,很明了
123 ...
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中运行,得到
将 最后面的| .${- ...
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 ...
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 = ...
2023数字人才挑战赛-永信赛道WP
前言本次比赛, 打的挺舒服的
作为一个逆向手, 数据分析感觉做的很顺, 很爽
确实学到了很多东西, 也意识到了很多的不足
然后的话, 因为和队友没有提前沟通好的原因, 丢了100分就特别难受
我靠 数据安全题(CTF题型)累死累活才做出来 分数时动态的
而数据分析 思维活跃 随便解 分数却是死的 好烦
(就是说 比赛时 内部一定要交流好哇~~)
**一起共勉 加油 ^_^ **
数据分析题解区块链威胁分析.1请提交App的Team Identifier。(答案严格区分大小写)
题目010打开 发现是PK
改.zip打开是个 DAFOM.app
(就是这个app的名字)
Google搜索相关team ID信息
这是一篇很好的博客,讲的很到位(https://blog.csdn.net/liuxiaoxiaobo/article/details/122047015)
然后随便翻翻文件有个叫DAFOM的
在010 打开
W58CYKFH67
这个 就是 flag
区块链威胁分析.2这个app 就是一个黑客组织Lazarus 向区块链行业 弄得恶意应用程序
所以答案 ...
NKCTF2023逆向区WriteUp
try_decrypt_meapk文件 - Android逆向 挺好 正好我也正在转型移动安全
我习惯上是用jadx来反编译(界面美观, 一目了然呀)
但是这题 实话说 jeb比较友好
我用jadx卡半天 没找到密文
jeb直接跟踪, 并且该做的某些操作都自动化完成了(比如 替换操作等等)
笔者建议的话 先用jedx看逻辑
然后jeb 而且 jeb还可以跟踪 (动调)
对比一下
主要就是 AES加密
然后注意 CBC模式 这儿有个base64
如果工具解 先base64解密一下
贴exp
1234567891011121314151617181920212223242526272829303132from base64 import b64decode, b64encodefrom Crypto.Cipher import AESencData = "BxLHc1KruiH31I94W171oal+9olDzgBIjnK/J1Db0IUyi+MbI38+nw62ejCPShRB"key1 = "r3v3rs3car3fully" ...