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/
Author: geneblue
Blog: https://geneblue.github.io/
这里介绍使用IDA对so文件的动态调试,其他调试工具的使用,以后再做补充。
IDA从6.1版本开始支持Android原生程序的动态调试。
将ida目录下的android_server拷贝到android的目录中
adb push android_server /data/local/tmp/
adb shell 进入模拟器
cd /data/local/tmp/
Author: geneblue
Blog: https://geneblue.github.io/
官方英文介绍:这里
创建一个XposedModule一般按照以下流程:
应该在要编写的程序的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" />
Author: geneblue
Blog: https://geneblue.github.io/
英文原版地址:这里
注:文档去掉了Xposed Module建立的过程,上述地址介绍的比较详细且容易看懂。有些地方翻译的比较生硬,还是查看对应的英文文档比较好。
在Android运行时空间里(Android runtime)有一个非常重要的进程是“Zygote”。每个Android应用程序的启动都是由Zygote进程fork而出的。当手机启动的时候,Zygote进程就会由/init.rc脚本启动。最终由/system/bin/app_process进程完成Zygote进程的启动,app_process进程会加载一些必要的类库并初始化一些方法。
Author: geneblue
Blog: https://geneblue.github.io/
代码下载地址:这里
下面从主函数MainActivity开始入手分析:
MainActivity主要是处理页面上的一些控件。modifyMac()方法是关键,主要是通过调用PrivacyManager类中的setValue()方法,设置mac值。
PrivacyManager类没有做任何实际处理,只是调用了PrivacyService中的getSetting()和setValue()方法。
Author: geneblue
Blog: https://geneblue.github.io/
这并不是一份正式的项目总结,只是我们在做完自行车备件管理系统后我的一些心得。觉得有必要写一下记录自己在这个项目中犯过的错误。
这个项目是从大三上学期刚开学的时候接手的。这个备件管理系统相对研究生学长做的道路滑坡预测比较简单,老师就将这个项目交给我们四个啥都不太懂的本科生做。说实话,大家都挺积极的,至少可以明白最简单的商业项目是怎么一回事。
要做的东西不是很难,这个备件管理系统主要就是完成移动端(Android)应用和后台管理系统的开发。移动端主要是完成备件从采购、入库、使用、维护、维修和报废一系列操作,需要按照操作人员的角色设定操作权限,然后将数据传输到数据库中;后台管理系统主要是使用java和jsp开发网页版程序对数据库中的数据进行管理,差不多也就是数据库的那几种基本操作。