首页
社区
课程
招聘
[原创]浅谈android逆向攻与防
2022-1-27 14:28 6732

[原创]浅谈android逆向攻与防

2022-1-27 14:28
6732

android逆向攻与防


常规App逆向反编与二次打包过程

###反编译工具:

  • apkTool
  • dex2Jar,jd-gui
  • jadx、Jeb、AndroidKiller
  • 其他三方反编译工具
 

###逆向分析修改工具:

  • Xposed
  • Frida
  • FakeAndroid
  • 反射大师、FDex
  • VMOS、IDA Pro
  • Fiddler、Http Canary、Charels
 

逆向的最终目的是拿到dex修改并进行二次打包
举例(单机游戏或工具类应用 对比支付类应用)

1
2
apktool d [apk路径] #反编译apk
apktool b [apk文件夹] [新的apk存储位置] #编译apk

对抗反编译

通过三方厂商加固(腾讯御安全、腾讯乐固、奇虎360、爱加密、梆梆加固)
给App包一层壳,将业务代码打包进so文件
腾讯御安全


手动或借助三方工具砸壳,Dump出原本dex,在App启动进程加载hook.so,装载修改dex覆盖原dex,从而达到修改目的

对抗修改

增加代码签名校验,判断二次打包签名是否与原签名md5一致,不一致禁止使用

开启混淆,添加自定义混淆字典,添加合并包名


直接删除签名校验代码

对抗抓包

使用https进行SSL证书校验
代码开启代理检测,检测使用代理禁止请求
自定义DNS解析
DNS

接口安全处理(某电商)

最根本还是得从根源来提升逆向门槛,也就是接口安全
即核心业务一定要进行服务器校验甚至二次校验,同时接口设计要尽可能防止用户篡改参数,以及限制单用户短时请求频率
sign
旧版本——>so
老版本签名
st=1641978118469&sign=9a67f8649bdd22cb8ec7828cf9fb73b5&sv=111
根据funcationId和body计算出字符串st=1641978118469&sign=9a67f8649bdd22cb8ec7828cf9fb73b5&sv=111
然后拼接到参数中
绑定时间戳防篡改
sandHook\virturlHook
新版本
新版本签名
大部分核心参数会先进行一次加密,然后所有参数排序遍历拼接value通过Sha256加密为64位字符串
新版本签名

总结

没有最安全的程序,也没有最强大的逆向
尽量少写本地全局重要变量,如IsVip等
尽量数据从服务器获取
尽量客户端、服务器双向验证数据可靠性


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞2
打赏
分享
最新回复 (2)
雪    币: 214
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
uestccokey 2022-1-27 17:12
2
0
到位
雪    币: 3850
活跃值: (5660)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
huangjw 2022-1-28 12:53
3
0
看到专业工具,应该是学习文章
游客
登录 | 注册 方可回帖
返回