安卓逆向与smali

 

一段时间的研究下来,对安卓的整个逆向过程除了加固和一些独特的混淆外基本有个认识。这段时间算是真正的从认识到尝试去了解smali,包括期间有想为逆向开发一个从smali2java,java2smali的可视化实时工具,不过意识到时间问题,还是暂时先放弃。不过也出了自己的第一款个人软件,lexgetapp,算是逆向的第一个跨步,后期会继续为它增加一些功能,来帮助自身做安全,逆行的一些工作,让工作更加顺利。

我这里基本对工具进行一些收集和记录
逆向工具集合]
android killer
apktool
apkaid


smali查看与分析]
jadx
smali2java-gui

其实整个从逆向到注入自己的代码过程非常的明晰。
1,反编目标工程
2,编写自己的工程,尽量只留下一个程序入口,把任务都设置在某个intent,或是某个异步操作。
3,使用某些工具获取注入目标。
4,在注入目标插入自己工程的调起语句。

说起来很简单,可实际会遇到很多问题,做一些简单说明。
1,阅读问题
smali语句的可读性不是很好,所以需要jadx辅助查看去理解源代码的一些操作与逻辑或者进行smali的语法学习。

2,代码插入问题
其实直接复制包很容易产生很多毛病,比如65535个函数超限的问题,就需要新建smali_classes2文件夹来解决问题。

3,资源问题
我自己的工程,我会尽量使用代码来创建图形和界面,就是为了避免资源id冲突问题,每一个安卓R资源的引入和定义都会出现在string.xml以16进制留存,不可重复,不同种资源必须放在不同位置。甚至不同系统版本对于某些资源的引用都会产生问题。

最后,其实整个东西都很简单,但是为了避免记不住还是做了这个记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值