安卓逆向十二

admin 2024年9月28日11:08:44评论15 views字数 1154阅读3分50秒阅读模式

在上次我们基本了解JNI以后,对基本的工具也有了使用。这次从代码底层追踪下是如何实现的

system.loadlibary后,我们应该要找到一个相似的地方,应该是知道加载过程。下面这位大佬转载了两篇文章,两位大佬都写的非常全面。一个是从底层详细分析loadLibrary的加载过程,一个是从实践做一个简单的demo去使用动态加载链中的函数。虽然AOSP源码版本可能不同,但是大概是相同的

System.loadLibrary()  Runtime.loadLibrary()    Runtime.doLoad()      Runtime_nativeLoad()        LoadNativeLibrary()          dlopen()          dlsym()          JNI_OnLoad()

这两篇文章仔细研读并且跟踪代码还是相当费时间的。但是跟踪过以后,慢慢能力就培养出来了,以后也容易跟踪其他链过程,比如跟踪JAVA那几个链。

https://blog.csdn.net/oncealong/article/details/103764745

文章中我们简单了解到了静态注册。没错,简单理解就是不重写jni_onload的都是静态注册,重写jni_onload的都是动态注册。

之前对JNI不熟悉或者有什么遗漏的地方可以详细的看看这份文章系列,总共5份。虽然比较难懂,但是多看几遍,认真学习,还是能有非常大的收获。

这几个写着是看似简单,实际我也被这个折磨了不少时间。

安装idea,这个只需要是安装idea的社区版就行了,不需要安装商业版

idea版本如下

安卓逆向十二

unidbg下载地址:https://github.com/zhkl0228/unidbg

这个直接运行会提示JDK的问题,在Oracle官方里面可以下载JDK17,在idea里面直接配置就好了,这样就不用在kali里面配置了。

直接运行以后,结果如下所示。

安卓逆向十二

又找到一个新的资源:

https://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mid=2247493514&idx=1&sn=0d30eaa4732a338eb19cf93a9d2db42c&chksm=ec1dd7a2db6a5eb41deb4abb44b8c2d2f4d73abafcea5efbd5d32d40029d77b691b949f16ffa&scene=21#wechat_redirect

ps:如果想一块讨论渗透&代码审计&APP逆向可以添加下面的微信号相互交流

安卓逆向十二

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者及本公众号不为此承担任何责任

欢迎关注公众号“呼啦啦安全”,原创技术文章第一时间推送

原文始发于微信公众号(呼啦啦安全):安卓逆向十二

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月28日11:08:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安卓逆向十二http://cn-sec.com/archives/3102777.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息