oflo
// TODO
easyapk
1 | import base64 |
hook脚本
1 | import frida,sys |
1 | function print_string(offset) { |
Oh my julia
对于JIT型语言的技巧,就是找到编译后的代码
当程序要求输入时断下
单步执行直到程序输出东西
在输入/常量flag部分下硬件断点
之后就可以把编译后的代码dump下来用于后续分析
// TODO 果然还是基本功,先做点简单的
BabyOS
binwalk使用指南
查看固件
1
binwalk 文件名
解压压缩包
1
2binwalk -e 文件名 # 解压压缩包
binwalk -eM -d depth 文件名 # M表示递归解压,depth为深度,不指定默认为8解压指定类型文件
1
binwalk -e -D=type 文件名 # type是要解压的类型,我已知的elf,jpeg
wp
xbook2操作系统是一个大学生写的,tqlOrzzzzzz。这个操作系统的信息可以使用strings看出来,其中有
1 | 1564: D:/Developmemts/github/xbook2/src/include/xbook/schedule.h |
从而找到这个操作系统相关的信息
运行操作系统,列出文件,发现一个n1ctf程序,可以运行。这个程序位于xbook2-file1.img,使用binwalk解出来
但是程序似乎是加密的。
使用binwalk扫第一个a.img,解出一个程序,丢进IDA,发现这是一个操作系统程序(因为看见kernel等字样了)
然后找到一个do_execute函数,这个函数里面发现了加密逻辑。
1 | v7 = sys_open(v17, 1, 0); |
使用这个解密出n1ctf程序
n1ctf程序
// TODO
BabyCompiler
// TODO
Fixed Camera
是一个il2cpp程序
il2cpp编译后的逻辑位于GameAssembly.dll中,但是不知道函数都是啥,而且函数很多。
使用il2cppdump解出Assembly-Csharp.dll,可以找到函数的函数名和VA,再回头看GameAssembly.dll,可以分析。
patch cam的Update函数,把负数的限制扩大,然后就可以获得flag了
在移动过程中可能有加密,但是到-50时出现flag
n1ctf{enbrypt_value}
rrr
// 此题看不懂
N1vault
// TODO