smali语法学习 一、类型Dalvik 字节码只有两种类型,基本类型和引用类型。Dalvik 使用这两种类型来表示 Java 语言的全部类型,除了对象与数组属于引用对象外,其他的 Java 类型都是基本类型。 语法 含义 V void,只用于返回值类型 Z boolean B byte S short C char I int J long F float D doubl 2023-09-12 Android #Android #smali
nssctf-mobile专题(一) [CISCN 2022 东北]crackme_Android整个分析如下图所示: 很简单。就是将38bytes的flag去掉格式后,每4bytes一组进行md5加密,得到的结果组成一个字符串,并于已知字符串比较。所以我们只需要将已知字符串分好组拿到https://www.cmd5.org/上解密即可。分组代码如下: 12345678md5string = '8393931a16db5a 2023-09-07 Android #Android #Reverse
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
GKCTF2021-QQQQT Exeinfo PE查看exe信息,发现是Enigma Virtual Box。这是啥玩意,网上搜索到了相关信息: Enigma Virtual Box是软件虚拟化工具,它可以将多个文件封装到应用程序主文件,从而制作成为单执行文件exe 也就是说这个exe文件是通过打包得到的,那么我们应该对其进行解包,工具下载链接如下: EnigmaVBUnpacker v0.59(Enigma Virtua 2023-09-04 Reverse #Reverse