The quiter you become,the more you are able to hear!

Author: geneblue

Blog: https://geneblue.github.io/

0X01 基本步骤

这里介绍使用IDA对so文件的动态调试,其他调试工具的使用,以后再做补充。

IDA从6.1版本开始支持Android原生程序的动态调试。

  • 将ida目录下的android_server拷贝到android的目录中

    adb push android_server /data/local/tmp/  

    adb shell 进入模拟器    

    cd /data/local/tmp/

    Read more »

Author: geneblue

Blog: https://geneblue.github.io/

官方英文介绍:这里

创建一个XposedModule一般按照以下流程:

添加meta-data元素

应该在要编写的程序的Manifest文件的application元素下添加三个 meta-data元素,如下所示:

    <meta-data              //指定这是Xposed Module程序
        android:name="xposedmodule"
        android:value="true" />
    <meta-data             //此Module的描述性信息
        android:name="xposeddescription"
        android:value="makes the status bar clock red and adds a smiley" />
    <meta-data            //此Module的最低的Xposed api的版本
        android:name="xposedminversion"
        android:value="30" />
Read more »

Author: geneblue

Blog: https://geneblue.github.io/

英文原版地址:这里

注:文档去掉了Xposed Module建立的过程,上述地址介绍的比较详细且容易看懂。有些地方翻译的比较生硬,还是查看对应的英文文档比较好。


Development tutorial

Xposed原理

在Android运行时空间里(Android runtime)有一个非常重要的进程是“Zygote”。每个Android应用程序的启动都是由Zygote进程fork而出的。当手机启动的时候,Zygote进程就会由/init.rc脚本启动。最终由/system/bin/app_process进程完成Zygote进程的启动,app_process进程会加载一些必要的类库并初始化一些方法。

Read more »

Author: geneblue

Blog: https://geneblue.github.io/

代码下载地址:这里


MainActivity类

下面从主函数MainActivity开始入手分析:

MainActivity

MainActivity主要是处理页面上的一些控件。modifyMac()方法是关键,主要是通过调用PrivacyManager类中的setValue()方法,设置mac值。

PrivacyManager类没有做任何实际处理,只是调用了PrivacyService中的getSetting()和setValue()方法。

Read more »

Author: geneblue

Blog: https://geneblue.github.io/

这并不是一份正式的项目总结,只是我们在做完自行车备件管理系统后我的一些心得。觉得有必要写一下记录自己在这个项目中犯过的错误。

这个项目是从大三上学期刚开学的时候接手的。这个备件管理系统相对研究生学长做的道路滑坡预测比较简单,老师就将这个项目交给我们四个啥都不太懂的本科生做。说实话,大家都挺积极的,至少可以明白最简单的商业项目是怎么一回事。

要做的东西不是很难,这个备件管理系统主要就是完成移动端(Android)应用和后台管理系统的开发。移动端主要是完成备件从采购、入库、使用、维护、维修和报废一系列操作,需要按照操作人员的角色设定操作权限,然后将数据传输到数据库中;后台管理系统主要是使用java和jsp开发网页版程序对数据库中的数据进行管理,差不多也就是数据库的那几种基本操作。

Read more »