-
-
[原创]2024网鼎-Reveres-WP
-
发表于: 1天前 1326
-
2024网鼎Reveres-Android-WP
知识点
Java代码审计
Native层加密
分析流程
jeb反编译apk找到MainActivity类
创建了一个按钮,判断按钮,获取到输入框的数据存储到editText0,editText0不为空的话创建了一个按钮类b
跟进去分析
逻辑很清晰,就是从输入框中读取字符串后保存到s,判断s是否为空,传入Check类中的validate方法并把s传入进去,跟进这个validate方法分析
发现是在Native层进行的加密,那就在lib中找到这个so文件
动态注册的函数在JNI_OnLoad中看到这些数据,点进off_11D88分析
方法名称,方法参数类型,调用方法为sub_75C,跟进这个方法分析
先看这个函数干了些啥
感觉像是某种加密啊,又看到byte_CC4和unk_C44数组长度是256,不是RC4就是SM4加密了,
感觉是key,对key进行一下变换给下面的循环用了,aA1122357753221就是key了,在这一串十六进制字符上点一下按R
对aA1122357753221第8位开始重新赋值,双击看一下aA1122357753221的值A11223577532211A,后8位是Z0099864,不过这里要反过来,因为在IDA是小端存储。所以key就是A11223574689900Z
byte_C14就是密文了,
提取出来直接在线解密一把梭哈
// wdflag{7314c25f-7097-483e-b745-fe96bb6a0b24}
总结
Native层就是一个SM4加密,而且还是默认加密模式,无填充。
2024网鼎-Reveres-ELF-WP
知识点
ELF文件分析
C代码审计
基础加解密
分析流程
DIE分析程序发现是ELF64位的无壳程序。
IDApro打开分析
输入flag,判断输入长度是否为40,前7位是wdflag{最后一位是}
v20保存了{}中的数据,长度为32个,把v20的数据复制到dest中。
第一个加密,对dest的前8位进行乘法加密后存储到s1,再使用s1与s2作比较,如果一样则继续往下走,那么这里的s2就是密文了,在伪代码视图下s2显示的不完整,切换到汇编视图下
会发现密文就是这8个字节,提取出来每个字节在除以2就是明文了。
第二个加密,对从第8位开始到16位进行异或加密,异或key是XorrLord,密文是v11,同样是在汇编视图下看v11密文
提取出来在对key进行异或就是明文。
第三块加密,是一个base64编码,跟进这个函数查看一下码表发现是:
CDEFGHIJKLMNOPQRSTUVWXYZABabcdefghijklmnopqrstuvwxyz0123456789+/
那密文就是PVLlQVPhPFW了,赛博厨子在线解码一下就好了
最后一个加密是AES加密,key是AesMasterAesMast,把v18的值复制给v8,在走一个for循环对v8从第8位开始赋值为8,赋值8个,这里的v8是int64类型的。
这里的v8是AES的IV,其实这里的AES是ECB模式,不需要的IV的。密文很明显就是v4了,提取出来直接在线网站解密
拿到最后一个明文。
把这四个明文合在一起就是flag了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <iostream> #include <vector> int main() { / / 异或的密文 unsigned char enc_xor_value[] = { 0x39 , 0x5B , 0x17 , 0x10 , 0x7F , 0x0D , 0x47 , 0x6 , }; char xor_key[] = "XorrLord" ; / / 乘法的密文 unsigned char start_8[] = { 0x70 , 0xc2 , 0x6c , 0xca , 0x6e , 0x70 , 0x70 , 0x6c }; for (size_t i = 0 ; i < 8 ; i + + ) { start_8[i] / = 2 ; printf( "%c" , (unsigned char)start_8[i]); } for ( int i = 0 ; i < 8 ; i + + ) { enc_xor_value[i] ^ = xor_key[i]; printf( "%c" , enc_xor_value[i]); } / * 编码base64 PVLlQVPhPFW CDEFGHIJKLMNOPQRSTUVWXYZABabcdefghijklmnopqrstuvwxyz0123456789 + / AES AesMasterAesMast * / return 0 ; } / / wdflag{ 8a6e7886a4eb3b5b52e93a4506d28a04 } |
赞赏
- [原创]2024网鼎-Reveres-WP 1327
- [原创]DASCTF2024-金秋十月-REEZ-WP-特详细 2376
- [原创]嘟嘟牛在线分析-RPC调用 1916
- [原创]DASCTF-2024暑期赛-Reverse-wp 5871
- [原创]某某小说去壳+VIP分析 25871