type
status
date
slug
summary
tags
category
icon
password
这次WMCTF简直就是Android逆向大聚会啊,四道re三道Android逆向
📝 Reverse
Rustdroid
附件
考点:安卓逆向+native层加密算法
将apk拖入jadx里面,发现主要加密应该在native层
直接
apktool -d
解包.由于本人的设备是Pixel1,我们需要找到arm64-v8a.我们可以直接找到密文
第一个加密应该是密钥的生成,但是如果直接动态调试然后dump处理完的密文是有点问题的是有点问题的
下面的加密如果直接抄下来的话也是有一些类型的问题,所以当时我直接手撸arm64了
我们需要配合动态来进行手撸,下面进行断点和dump
开始准备动态调试
现在它卡在这里进入准备调试阶段
之后我们打开IDA,准备远程调试,由于我们是真机所以选择
Remote ARM Linux/Android debugger
然后我们需要改一下调试的配置,要选择localhost即127.0.0.1
然后我们选择附加的形式打开
之后我们就会停在这里,点继续运行就可以
这个时候我们就可以输入字符串了
在进行手撸的时候我们可以学习一下这个指令
UBFX ————→> W2=(unsigned __int8)W1>>2
手撸后的代码我用python写的
然后进行爆破就行
EXP
ez_learn
附件
考点:Tls反调试+SM4魔改
32位无壳
进入IDA之后发现有花指令
从所有函数里面都看了一下,在.hello节区中只有一种花指令
我们可以写一个idapython脚本去一下花指令
去花之后要先按U,然后再按C+P恢复函数
main函数
从这个16字节可以看出应该是AES或者是SM4,sub_411253就是我们的加密函数
可以根据一些特征确定是SM4
sub_41103C(a1)是生成密钥流,我们这个函数结束之后可以直接dump下来
SM4魔改的点是异或
然后tls里面有个反调试,直接改判断条件就可以
比较迷惑的一点是CRC32
但是这里一直没被使用到,接下来直接从网上扒了一个sm4加解密的源码直接进行解密
EXP
tables.h
sm4_tool.c
🤗 总结归纳
还是要避免一些小失误的发生,比如某些魔改算法要看的快一些,检查的仔细一些
安卓逆向还是要好好搞😁😁😁😁😁😁
有关复现或者学习上的问题,欢迎您在底部评论区留言,一起交流~
- Author:5m10v3
- URL:https://5m10v3.top/article/81937a70-4cce-4fbf-a418-ebbb1ae96165
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts