20230907日报 今天在nssctf上写了一些mobile专栏的题目。都是一些比较简单的,有点意思的还得是[羊城杯 2021]Ez_android,因为这道题需要用到jadx动调,修改smali语言,这些知识虽然之前学过,但都差不多忘光了,因为那时连笔记都没有做(这个是需要反思的)。更有意思的是[SWPU 2019]easyapp这道题,native层实现加密函数, JNI动态注册该函数,无法动调(可能是手机版本问 2023-09-07 日报 > 2023年09月 #日报
nssctf-mobile专题(一) [CISCN 2022 东北]crackme_Android整个分析如下图所示: 很简单。就是将38bytes的flag去掉格式后,每4bytes一组进行md5加密,得到的结果组成一个字符串,并于已知字符串比较。所以我们只需要将已知字符串分好组拿到https://www.cmd5.org/上解密即可。分组代码如下: 12345678md5string = '8393931a16db5a 2023-09-07 Android #Android #Reverse
20230906日报 刚到一部nexus6p手机,下了同样的版本刷机包,没刷机直接root,发现这手机有avb验证,在开机的时候会验证boot.img是否被修改,于是乎卡在启动界面进不去,fastboot半天,结果发现根本没进bootloader模式(本以为会向之前的手机一样直接在bootloader界面),还是靠汪佬发现的。后面尝试解avb锁,可惜连对应的文件都没有!索性放弃了。 之后就是将昨天晚上问汪佬的问题重新复 2023-09-06 日报 > 2023年09月 #日报
IDA动调SO文件 步骤一:将 android_server 文件 push 到手机中并执行复制IDA目录下的\dbgsrv目录下的android_server和android_server64到真机中并执行: 12345678//复制到真机中adb push android_server /data/local/tmpadb push android_server64 /data/local/tmp//修改应用权限 2023-09-06 Reverse #Reverse
WMCTF2020-easy_re 运行程序有”please input the flag:”提示,但是使用IDA静态分析并没有发现该字符串,说明该字符串是动态生成的。那么就使用x64dbg动调一下。虽然找到了字符串,但是该字符串所在的汇编代码完全看不懂,就比如打印字符串的函数都没见着。很明显,我不会! 看看别人的wp吧。原来这个名字是一种语言。这个题目利用perlapp将perl程序压缩放在资源里面了,执行的时候才会解压出来。 也 2023-09-04 Reverse #Reverse
UTCTF2020-babymips 整个程序是用C++编写的,但不难看出代码的意思,且逻辑简单,整个分析都在图中。 对应解题代码如下: 12345678910111213141516171819202122232425#include <stdio.h>int main(){ //len = 78 unsigned char a1[] ={ 0x62, 0x6C, 0x7F, 0x76, 0x 2023-09-04 Reverse #Reverse
GUET-CTF2019-encrypt 比对RC4加密算法(CRYPTO-RC4加密 - 知乎 (zhihu.com)),可以确认是RC4加密。然后还有一个魔改base64,就是编码的时候给每位数 +61。 题目难就难在初始识别RC4加密,解密过程是很简单,脚本如下: 123456789101112131415161718192021222324252627282930313233from Crypto.Cipher import A 2023-09-04 Reverse #Reverse
WUSTCTF2020-funnyre 分析elf文件,__libc_start_main函数启动 main 函数,init 函数中执行了三个函数,但对我们要求解的flag无影响,影响的是byte_603049,对应main函数中最后的 puts(s) 中的 s 变量。(废话咯) 直接来看 main 函数,发现存在花指令,如下图所示: 第一处很明显,两个跳转都几乎是零距离跳转且第二个指令永假(根本不会执行),nop掉这两个指令。然后是 2023-09-04 Reverse #Reverse
安洵杯2019-crackMe 一、题解主函数的伪代码如下: 可以看出整个流程是:先输入flag,然后弹出一个警告弹窗,之后有sub_41100F和sub_411136两个函数。第一个函数比较复杂,可能是一堆加密操作,在最后面会进行分析。第二个函数是最终是将两个字符串相比较,如下图所示: Str2已知,而Str1未知,但是可以发现它在另一处被引用了,如下图所示: 问题就来了,这个函数是怎么被调用的呢,目前来看是不可能执行这 2023-09-04 Reverse #Reverse
NPUCTF2020-你好sao啊 代码意思很明确,让我们输入一个33bytes的字符串,进行加密后,跟已知字符串相比较,如果相等就成功,否则失败。 因为windows上数据存储是小端存储,所以已知字符串的顺序需要手动调整,当然也可以动态调试之后直接从内存中复制过来。 1234567unsigned char ida_chars[] ={ 0x9E, 0x9B, 0x9C, 0xB5, 0xFE, 0x70, 0xD3 2023-09-04 Reverse #Reverse