adbi学习一:安装和使用

adbi 是一个android平台(arm 32 )的so注入+挂钩框架,源码开放在github上 :  ADBI 项目 。从github上下载来目录如下:

  执行主目录下build.sh编译后目录如下,前提是你有在环境变量下设置ndk-build路径,不知道ndk-build是啥的说明还没下载过NDK哦。

  对比编译前的目录很容易看出多了obj目录、so库、静态库和可执行文件,具体为何如此请学习各自目录下的Android.mk

  hijack下的Android.mk——生成可执行文件hijack

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := hijack
LOCAL_SRC_FILES := ../hijack.c
LOCAL_ARM_MODE := arm
LOCAL_CFLAGS := -g

include $(BUILD_EXECUTABLE)

  base下的Android.mk——生成静态库libbase.a

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := base
LOCAL_SRC_FILES := ../util.c ../hook.c ../base.c
LOCAL_ARM_MODE := arm

include $(BUILD_STATIC_LIBRARY)

  example下的Android.mk——生成共享库libexample.so;注意这里是PREBUILD_STATIC_LIBRARY而不是BUILD_STATIC_LIBRARY,因为是包含所以是预编译

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := base
LOCAL_SRC_FILES := ../../base/obj/local/armeabi/libbase.a
LOCAL_EXPORT_C_INCLUDES := ../../base
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE    := libexample
LOCAL_SRC_FILES := ../epoll.c  ../epoll_arm.c.arm
LOCAL_CFLAGS := -g
LOCAL_SHARED_LIBRARIES := dl
LOCAL_STATIC_LIBRARIES := base
include $(BUILD_SHARED_LIBRARY) 

  以上就是下载来的adbi项目中的Android.mk啦,如果你看不懂可以看我之前的一篇关于makefile的文章里面有简单的介绍。

  

  ok,编译好了我们执行来看看效果吧

参考资料:

  1 android hook 框架 ADBI 简介、编译、运行

时间: 2024-11-23 15:40:55

adbi学习一:安装和使用的相关文章

HSQLDB源码学习——数据库安装启动及JDBC连接

HSQLDB 是一个轻量级的纯Java开发的开放源代码的关系数据库系统.因为HSQLDB的轻量(占用空间小),使用简单,支持内存运行方式等特点,HSQLDB被广泛用于开发环境和某些中小型系统中. 在http://sourceforge.net/projects/hsqldb/files/下载了HSQLDB 1.8.0版本.把下载的zip文件解压缩至任意目录例如c:\hsqldb1.8便完成安装. hsqldb有四种运行模式: 一.内存(Memory-Only)模式:所有数据都在内存里操作.应用程

从零开始学习CocoaPods安装和使用

从零开始学习CocoaPods安装和使用 转载: Code4App原创:http://code4app.com/article/cocoapods-install-usage http://m.ithao123.cn/content-9745764.html CocoaPods是什么? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽

hadoop学习;安装jdk,workstation虚拟机v2v迁移;虚拟机之间和跨物理机之间ping网络通信

JDK 在Ubuntu下的安装 与 环境变量的配置 前期准备工作: 找到  JDK 和 配置TXT文件  并复制到桌面下  不是文件夹 而是文件复制到桌面下 下面的命令部分就直接复制粘贴就可以了 1.配置root用户 使用快捷键 Ctrl + Alt + T  打开终端 输入命令:sudo passwd root 在需要输入密码的地方 输入 123456  (注意 需要输入3次 每次输入的时候在屏幕上是不显示出来的) 2.启用root用户 在终端输入命令:su root 输入密码:123456

MySQL学习笔记-安装和基本操作

MySQL学习笔记-安装和基本操作   1.安装MySQL 1 # yum -y install mysql mysql-server mysql-devel 添加/etc/my.conf配置: 1 vi /etc/my.conf2 [mysqld]3 default-character-set=utf84 character_set_server=utf85 [client]6 default-character-set=utf8 2.启动和停止MySQL服务: # service mysql

SystemTap 学习笔记 - 安装篇

https://segmentfault.com/a/1190000000671438 在安装前,需要知道下自己的系统环境,我的环境如下: uname -r 2.6.18-308.el5 Linux 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012 x86_64 x86_64 x86_64 GNU/Linux 安装 为了部署 SystemTap,需要安装以下两个 RPM 包: systemtap systemtap-runtime 以 root

EasyARM i.mx28学习笔记——安装和使用tftp

0 前言 前段时间购买了周立功的EasyARM i.mx287开发板,加之前3个月工作内容也和linux有关,就借助周立功的EasyARM总结Linux开发过程中的若干注意点. 本文说明在ubuntu中安装tftp服务器的详细步骤,在ubuntu中编写一个让LED闪烁的脚本,使用串口登录EasyARM,在EasyARM中通过busybox的tftp指令获得主机中的脚本文件,增加可执行权之后运行,最终LED灯间隔闪烁. 1 安装tftp [1]新建目录,并修改权限 在用户目录中新建一个名为tftp

ORCHARD学习教程-安装

安装说明:测试对象为正式版1.8 安装方法: 使用Microsoft Web Platform Installer 利用Microsoft WebMatrix 来安装 Working with Orchard in WebMatrix. 下载编译文件手动安装Manually Installing Orchard Using a zip File. 直接在源码中生成用命令行安装或直接在VS运行 前提条件: The minimum requirements for running Orchard a

DayDayUP_Linux运维学习_oracle11g安装教程

1. 安装环境介绍 系统环境 虚拟机测试机 系统版本 linux redhat 6.5 x64 软件版本 linux.x64_oracle_11gR2 系统内存 2G 系统存储 40G 主机名 vmdbs ip地址 192.168.1.189 192.168.128.189 笔者当时安装操作系统时所选的安装包 1.1 Base System Base System 安装 8 个套件 Base System > Base Base System > Client management tools

CorePlot学习零---安装

刚開始接触CorePlot时,网上搜到非常多相关文章,解说怎样安装这个第三方库,到眼下阶段该库的版本号已经到了1.5了,可是在github上你能够看到他的安装方法,只是为啥就没有codpod来安装呢?于是我就先搜索:pod search coreplot 结果例如以下:令人惊喜啊 说明我们是能够用pod来安装的,省去了非常多麻烦的设置,直接拿来就能用 多好啊 所以我们在Podfile文件里:这样写 pod 'CorePlot' ~>1.5.1 然后 pod update就可以,或者pod ins

TinyOS学习:安装流程

还是记一下TinyOS的安装 第一步:安装java jdk,请移步:http://www.oracle.com/technetwork/java/javase/downloads/index.html下载 尽量下载1.6版本吧..别太新就行.我用的1.7 台式机用的1.6都是可以用的 配置jdk很简单了,解压到/usr/lib/jvm文件夹下,(没有就新建).然后配置环境变量 配置到.bashrc或者/etc/profile下 最后添加: #====================jdk pro