ART的函数运行机制

类的加载

dalvik 的类加载的主要过程如下:

  1. app_process 作为 zygote server 通过 local socket 处理进程创建请求,zygote server 是在 ZygoteInit.main 函数里调用 ZygoteInit.runSelectLoop 监听。

  2. 接收到 zygote clientfork 请求之后,调用 ZygoteConnection.runOnce ,调用 Zygote.forkAndSpecialize 创建新进程

  3. 进程创建之后,由 ZygoteConnection.handleParentProc 来初始化进程,最终会调用 ActivityThread.main 函数

  4. ActivityThread.main -> ActivityThread.attach ->  ActivityThread.bindApplication -> Activity.handleBindApplication,handleBindApplication 会初始化 BaseDexClassLoader

  5. 类的加载经过了 ClassLoader.loadClass->BaseDexClassLoader.findClass->DexPathList.findClass->DexFile.loadClassBinaryName->DexFile.defineClassNative->DexFile_defineClassNative (runtime/native/dalvik_system_DexFile.cc) 。

这个初始化过程, artdalvik 都是一样的。 artDexFile_defineClassNativeClassLinkerDefineClass 来加载类。

阅读全文 »

转载: https://deepzz.com/post/gdb-debug.html

软件开发,或多或少会走上调试这条路。调试工具可以帮你更加深入了解整个程序的运行状态,对程序运行有更多的主动权。你可以随心所欲的改变程序运行流程,如:有变量a,你需要不断改变该a的值,让程序运行出理想的结果,那么你可以在调试工具中轻易的实现。

  • 运行你的程序,设置所有的能影响程序运行的东西。
  • 保证你的程序在指定的条件下停止。
  • 当你程序停止时,让你检查发生了什么。
  • 改变你的程序。那样你可以试着修正某个bug引起的问题,然后继续查找另一 个bug

今天给大家带来的gdb调试工具。GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。GDB可以调试C、C++、D、Go、python、pascal、assemble(ANSI 汇编标准)等等语言。

阅读全文 »

https://github.com/shenzhengfang/kkndme_tianya/blob/master/README.md

kkndme_tianya(持续更新中…)

天涯神贴「2010年的房地产调控,我们收获了什么?写在房价暴涨前」脱水版,内容时间顺序和原贴保持一致,原贴中的优质非楼主写的内容,添加了引用格式便于区分。

「2010年的房地产调控,我们收获了什么?写在房价暴涨前」里面写的内容,相信每一个站在 2019 年的我们看过后都会觉得怎么没有早点看到这个帖子。

欢迎关注微信公众号:沈正方,我会在我的个人微信公众号「沈正方」 里写一些我对这篇帖子内容的思考,欢迎一起讨论。

房地产调控表面上看起来的理由有三条:

阅读全文 »

快速开始

介绍:

安装需要Git,触发git clone,默认将每一个指定特定格式插件的仓库复制到~/.vim/bundle/. 搜索需要Curl支持。

Windows用户请直接访问Windows setup. 如果有任何问题, 请参考 FAQ. 查看 Tips 获取相关高级配置。

使用 non-POSIX shells, 比如比较流行对 Fish shell, 需要额外对步骤。 请查看 FAQ.

阅读全文 »

github 搜索技巧

参考自 B站 up 主 CodeSheep 的视频【如何高效地在网上找开源项目做!在职程序员实际演示一波视频教程操作】,然后写着写着一好奇就去看文档了

现在这篇博客相当于官方文档的翻译版😂

当然,你也可以去看【官方文档】体验原汁原味的教程

阅读全文 »

Xposed源码剖析——概述

XPosed 是与 Cydia 其名的工具,它能够让 Android 设备在没有修改源码的情况下修改系统中的 API 运行结果。我们通常称之为:God Mode(上帝模式)。

之前享大家分享了 Xposed 的基础,Xposed 的作用和最简单的用法。那么,它的原理和它的内部构造是如何构成的?下面,我们从 Github 上看看,rovo89 大神是如何制作的。

rovo89的github地址:https://github.com/rovo89

阅读全文 »

Anroid 逆向工具

静态分析

JEB - The Interactive Android Decompiler.

GDA - GGJoy Dex Analysizer(GDA),国内第一款也是唯一一款全交互式反编译器,同时也是世界上最早实现的 dalvik 字节码反编译器。

IDA - The IDA Disassembler and Debugger is an interactive, programmable, extensible, multi-processor disassembler hosted on Windows, Linux, or Mac OS X. IDA has become the de-facto standard for the analysis of hostile code, vulnerability research and commercial-off-the-shelf validation.

阅读全文 »
0%