首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )

Makefile 构建脚本编译 C 程序 ( 下载并安装 TDM-GCC 编译器 | 配置环境变量 | 编译 Makefile 程序 ) 博客 , 安装 make 工具 ; 刚创建完项目后 , 项目是空的...\mingw32-make.exe 文件 , 重命名为 make.exe , 或者复制一份重名为 make.exe , 就可以直接在命令行中使用 make 命令 ; 这是编译 NDK 项目的通用 Makefile...配置 : 使用前只需要修改 NDK 和 NDK_ROOT 中的自己的 NDK 即可 ; NDK = D:/001_Develop/001_SDK/Sdk/ndk/android-ndk-r14b/ndk-build.cmd.../Android.mk NDK_APPLICATION_MK=....Android 平台 , 一般是 Android 兼容的最低版本 APP_PLATFORM := android-19 五、主函数源码 ---- main.c 源码 : #include <stdio.h

62030
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用NDK下的GCC工具编译c代码至android设备中运行

    之前我们学过使用GCC子集之一arm-none-linux-gnueabi进行C代码编译,这次我们学习GCC另外一个子集arm-linux-androideabi,这是专门为android平台打造的一个...GCC编译环境,该工具被包含在Android NDK库当中 实验环境 windows宿主机 安卓模拟器(ARM架构+linux系统 已Root) android-ndk-r9b 实验开始 第一步 编写测试代码...,在我们使用arm-none-linux-gnueabi时直接在命令行后面添加-static即可,但是使用arm-linux-androideabi则不行 这里需要通过--sysroot指定依赖的库,指令改成如下...: arm-none-linux-androideabi-gcc.exe --sysroot=E:\android-ndk-r9b\platforms\android-19\arch-arm test.c...\platforms\android-19\arch-arm test.c -o main 此时程序可正常执行 使用arm-linux-androideabi生成的可执行文件大小为6kB 使用arm-none-linux-gnueabi

    2.6K40

    【Android NDK 开发】Kotlin 语言中使用 NDK ( 创建支持 Kotlin 的 NDK 项目 | Kotlin 语言中使用 NDK 要点 | 代码示例 )

    文章目录 一、创建支持 Kotlin 的 NDK 项目 二、Kotlin 语言中使用 NDK 要点 1、加载动态库 2、声明 ndk 方法 3、Project 下的 build.gradle 配置 4..., 弹出以下对话框 , 选择 Native C++ 项目 , 点击 Next 按钮 ; 在后续对话框中 , 使用默认的 Kotlin 语言 , 即可生成 Kotlin 中使用 NDK 的代码 ;...默认 C++ 标准即可 ; 二、Kotlin 语言中使用 NDK 要点 ---- 1、加载动态库 ---- Kotlin 中在类的 companion object 伴生对象 中加载动态库 , 类似于...build.gradle 配置 ---- 在 Module 下的 build.gradle 中 , kotlin-android 是必须配置的 , kotlin-android-extensions 是扩展..., 选择性配置 , 配置了之后 , 可以很方便地使用视图绑定 ; kotlin-kapt 也是选择性配置 , 配置使用注解 ; plugins { id 'com.android.application

    1.1K00

    Android NDK编程(五)--- CC++调用Java不同类中的静态方法

    前言 上一篇我们介绍了《Android NDK编程(四)--- C/C++调用Java中的方法》,主要是C/C++中调用Java的方法,这一篇我们针对上一篇的内容再延伸说一下,关于调不同类中的静态方法。...通过ALT+ENTER在native-lib.cpp中增加了对应的方法函数,然后写实现方法。 ? 最后再我们的按钮事件里调用VaccaeJNI类中的静态方法 ? 运行结果 ?...上面来说我们从java调C/C++的方法其实基本都差不多,下面我们重点要说一下C/C++调用java的方法。 我们在VaccaeJNI中加入一个native的静态方法和一个本地的静态方法。 ?...---- 调用不同类中的方法 最后我们要说一下重点,因为我们在写方法的时候可能会调用的是不同类里面的方法,导航native的方法和要调用的java方法不在同一个类里,遇到这样的方法我们来看一看怎么实现...我们还是在VaccaeJNI的类中写一个非静态的方法,两个数相乘 ? 然后调用的native的函数,我们直接写在Mainactivity.java中 ?

    1.7K20

    Android NDK开发扫盲及最新CMake的编译使用

    本篇文章旨在简介 Android 中 NDK 是什么以及重点讲解最新 Android Studio 编译工具 CMake 的使用 1 NDK 简介 -------- 在介绍 NDK 之前还是首推 Android...官方文档分别从以下几个方面介绍了 NDK NDK 的基础概念 如何编译 NDK 项目 ABI 是什么以及不同 CPU 指令集支持哪些 ABI 如何使用您自己及其他预建的库 本节将会对文档进行总结和补充。...ndk-build 文件是 Android NDK r4 中引入的一个 shell 脚本。其用途是调用正确的 NDK 构建脚本。其实最终还是会去调用 NDK 自己的编译工具。...脱离 Android 开发来看,c/c++ 的编译文件在不同平台是不一样的。Unix 下会使用 makefile 文件编译,Windows 下会使用 project 文件编译。...Android NDK 官网的使用现有库的文档中还是使用 ndk-build + Android.mk + Application.mk 组合的说明文档。

    2.4K30

    【Android 逆向】Android 进程注入工具开发 ( 系统调用 | Android NDK 中的系统调用示例 )

    文章目录 一、系统调用 二、Android NDK 中的系统调用示例 一、系统调用 ---- 在 " 用户层 " , 运行的都是用户应用程序 ; 用户层 下面 是 驱动层 , 驱动层 下面是 系统层 ,..., 强行访问会导致崩溃 ; 应用的功能 需要借助 驱动实现 , 如文件读写 , 肯定要借助 硬盘驱动 实现 文件 在硬盘上的读写操作 ; 使用 " 软中断 " 实现跨层访问 , 软中断是由软件发起的...; 整个应用进程的控制权此时就交给了 驱动层 / 系统层 , 在这些底层具体执行了哪些操作 , 应用层是不知道的 ; arm 架构的 CPU 中软中断指令是 SVC ; x86 架构的 CPU 中软中断指令是...int ; 与 软中断 相对应的是 硬中断 ; 硬中断 是由 硬件产生 ; 二、Android NDK 中的系统调用示例 ---- 系统调用相关的头文件定义在 D:\Microsoft\AndroidNDK64...\android-ndk-r16b\sysroot\usr\include\asm-generic\unistd.h 文件中 ; 在该文件中定义了所有的系统调用 ; #include <asm/bitsperlong.h

    1.6K10

    基于DevOps的Android交付工具链建设

    事实胜于雄辩,我们来看看DevOps是如何改变Android操作系统的交付模式的。...二、Android 研发工具链建设 接下来进入正题,Android研发工具链的建设。我会基于Android的一些产品特性,阐述我们对问题的一些实践解决方法。...最后是自动合并,对于Android来说,虽然是开源系统,但是还是有很多强制性的规则,比如Google会要求我们定期合并这些安全的补丁,如何高效合并这些安全补丁,最好是自动去做,所以我们做了很多的自动工具去做这些事情...这样通过编译分级,在持续交付的流水线上根据不同的情况来用使用不同的方法,加快反馈周期。 ?...每一个Android的产品所依赖的工具环境都是不一样的,如果在同一台主机上同时做不同产品的编译时,往往会导致环境的冲突和潜在的问题。

    1.7K70

    【Android 逆向】代码调试器开发 ( 使用 NDK 中的 ndk-build + Android.mk 编译 Android 平台的代码调试器可执行应用 )

    更详细的配置方法 , 参考 https://developer.android.google.cn/ndk/guides/android_mk#tiv 文档 ; 完整的 Android.mk 构建脚本...兼容的最低版本 APP_PLATFORM := android-19 四、正式编译 ---- ndk-build 脚本的用法参考 https://developer.android.google.cn.../Application.mk 命令 , 编译 Android 平台的代码调试器 ; 其中 Y:/001_DevelopTools/002_Android_SDK/ndk/android-ndk-r14b-windows-x86..._64/android-ndk-r14b/ndk-build.cmd 是 android-ndk-r14b 版本 ndk 的 ndk-build.cmd 编译工具 , 注意不要用错版本 ; NDK_PROJECT_PATH...工程目录下生成了 libs 和 obj 目录 ; libs 目录下是编译结果 , 分别表示不同 cpu 架构的编译结果 ; Y:\002_WorkSpace\001_AS\HackTool\libs

    37920

    Android Hook告诉你 如何启动未注册的Activity

    前言 Android Hook 插件化其实已经不是什么新鲜的技术了,不知你有没有想过,支付宝中那么多小软件:淘票票 ,火车票等软件,难道是支付宝这个软件自己编写的吗?...那不得写个十年,软件达到几十G,但是并没有,玩游戏时那么多的皮肤包肯定时用户使用哪个就下载哪个皮肤包。 一 未在配置文件中注册的Activity可以启动吗?        ...从0学的时候就知道Activity必须在配置文件中注册,否则无法启动且报错。但是Hook告诉你的是,未在配置文件中注册Activity是可以启动的,惊不惊喜?意不意外?...1.1 通过对Instrumentation进行Hook     1.2 通过对AMN进行Hook 2.如何启动一个未在配置文件中注册的Activity实现插件化 本片文章基础建立在 Java反射机制和...startActivity(whoThread, intent,...处理,所以如果我们想对startActivity方法进行Hook,可以从这两个地方入手(其实不止这两个地方,我们只讲解着两个地方,下面使用的反射封装类也在上篇文章中给出

    1.1K40

    Android Hook告诉你 如何启动未注册的Activity

    那不得写个十年,软件达到几十G,但是并没有,玩游戏时那么多的皮肤包肯定时用户使用哪个就下载哪个皮肤包。 一 未在配置文件中注册的Activity可以启动吗?...从0学的时候就知道Activity必须在配置文件中注册,否则无法启动且报错。但是Hook告诉你的是,未在配置文件中注册Activity是可以启动的,惊不惊喜?意不意外?...1.1 通过对Instrumentation进行Hook 1.2 通过对AMN进行Hook 2.如何启动一个未在配置文件中注册的Activity实现插件化 本片文章基础建立在 Java反射机制和...2.3 如何启动一个未注册的Activity 如何启动一个未注册的Activity,首先我们了解Activity的启动流程,App的启动流程已经在上篇文章中讲解了,APP启动流程解析,还不了解的小伙伴...首先我们按照上面逻辑先对startActivity方法进行Hook,这里采用对AMN Hook的方式。和上述代码一样,不一样的地方在于mInstance的代理类不同。

    1.1K20

    【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | VS 自带的 Android 平台应用创建与配置 )

    文章目录 一、Visual Studio 安装 " 使用 C++ 的移动开发 " 二、Visual Studio 中创建 " 动态共享库(Android) " 类型应用 三、设置编译选项 四、生成 ARM...架构 SO 动态库 五、生成 x86 架构 SO 动态库 一、Visual Studio 安装 " 使用 C++ 的移动开发 " ---- 使用 Visual Studio 2019 开发环境 , 参考...选择 " 创建新项目 " , 在 创建新项目 对话框中 , 选择 " 动态共享库(Android) " 类型的项目 ; 设置项目的存放路径 ; 下面是创建项目时 , 自动生成的代码 ; 所有代码都在...((void)__android_log_print(ANDROID_LOG_INFO, "VS_NDK_Demo", __VA_ARGS__)) #define LOGW(...)...((void)__android_log_print(ANDROID_LOG_WARN, "VS_NDK_Demo", __VA_ARGS__)) extern "C" { /*此简单函数返回平台

    1.1K10

    如何使用Zuthaka管理不同APT和其他后渗透工具

    关于Zuthaka  Zuthaka是一款开源的应用程序,旨在帮助红队研究人员完成安全分析与管理任务。Zuthaka可以简化很多操作任务,比如说针对不同APT和其他后渗透工具的管理等等。...这也给安全专业人员带来了很大的额外工作量以及开销。创建C2系统已经是一项艰巨的任务了,而且大多数可用的C2系统系统都缺乏直观且易于使用的Web界面。 因此,Zuthaka便应运而生。...PostgreSQL 目前支持的C2 Covenant Empire 开始使用  Zuthaka由一个前端和一个后端组成。...工具安装  如需构建完整的Zuthaka项目,首先我们需要下载并安装项目依赖组件: git clone https://github.com/pucara/zuthaka 如需使用特定的服务开启项目,...则需要利用到Docker-Compose文件: docker-compose up 工具使用演示 https://image.3001.net/images/20210917/1631841959_6143eea747fccdf9b3cbe.gif

    30220

    (NDK编译)详解使用Android.mk编译的CC++程序过程

    想要在Android设备上运行C/C++程序可执行文件,可采用一个方法就是使用NDK编译,很多时候要比gcc编译更适合,这里我采用的是imx6q开发板上面装载了自己编写的Android6.0.1镜像,在...'include $(CLEAR_VARS)'以来,定义在LOCAL_XXX变量中的所有信息,并且决定编译什么,如何正确地去做 注意 可以看到我的Android.mk文件当中还有两行 LOCAL_CFLAGS...+= -pie -fPIE LOCAL_LDFLAGS += -pie -fPIE 在起初我没有添加这两行代码时,也可使用NDK成功编译出可执行文件,但放在Android系统的开发板上时无法运行并报错...引入了PIE这个安全机制,解决办法就是加入上述的两条语句在Android.mk文件中即可 完整Android.mk代码 给出完整的Android.mk代码,由于我的C文件叫做test_app.c,所以想要直接使用需要把下面代码中.../home/yinlong/Music/sdkapp/android-ndk-r14b-linux-x86_64/android-ndk-r14b/ndk-build NDK_PROJECT_PATH

    3.4K20

    【FFmpeg】编译不同平台的 FFmpeg 源码 ( 本地编译 与 交叉编译 | FFmpeg 指定目标平台的编译配置参数 | 配置目标 CPU 架构 | 配置目标操作系统 )

    和 A 系统 编译 C 系统的函数库 , 三者所用的 编译器 是不同的 ; 头文件 : 特定交叉编译工具链 自带的 目标系统的 头文件 ; 依赖库 : 特定交叉编译工具链 自带的 目标系统的 依赖库文件..., 需要与头文件匹配 ; 在交叉编译中 , 需要使用交叉编译工具链 , 并手动配置编译选项以适应目标系统的要求 , 同时还要提供 符合交叉编译要求的 头文件 和 对应的函数库 ; 3、Android...交叉编译需要的工具 在 Ubuntu 中进行 Android 平台的 C/C++ 函数库的交叉编译时 , 使用的工具如下 : 交叉编译工具链 : android-ndk-r17c/toolchains/...版本有不同的依赖库目录 , 这里使用 android-21 版本的依赖库 ; 交叉编译时 , 为 gcc 或 g++ 编译器设置 如下参数 , 指定 头文件 和 库文件 的 搜索路径 : --sysroot...- 配置 交叉编译工具链的前缀 ; --sysroot 配置 交叉编译工具链 的 头文件 和 函数库 搜索路径 ; --extra-cflags="$FLAGS" 配置 gcc / g++ 编译器的 额外选项

    1.4K00

    LinuxMac 交叉编译 Android 程序

    交叉编译工具链 1. 什么是交叉编译工具链 交叉工具链是指可以生成目标环境可运行代码的工具集。...我们知道,在Linux系统中的编译工具链包括以下一些工具, 编译器gcc, 链接器ld, 归档工具ar等等,如果在 Linux 环境中交叉编译 Android 系统环境可运行的代码,是不能直接使用Linux...下的编译工具的,而应该使用 Android NDK 里的工具链,它们对应的名子为 arm-linux-android-gcc, arm-linux-android-ld等等。...PLATFROM: 指明交叉编译时使用的是哪个版本的的头文件和库文件。它是 SYSROOT的一部分。 ANDROID_NDK: 指明 Android NDK 所在目录。...如何进行交叉编译 通过设置configure 参数来生成交叉编译的 Makefile 文件 ** —arch 指定架构 ** ** —cross-prefix 交叉编译工具链前辍 ** **

    2.3K20

    基于Android平台的ffmpeg编译

    前面介绍了Android jni 相关知识,但jni最终还是要调用的第三方的C/C++库,这里我们以ffmpeg为例,介绍第三方C/C++如何编译成android 版本。...对应第三方代码,直接拷贝到 android studio 开发不太现实,因为这些第三方代码可能非常庞大,而且依赖很多其他库,其他库又依赖其他库,最通用的解决的方案是利用Android NDK的工具链进行交叉编译...所以我们在Linux PC机上利用Android NDK的工具链编译C/C++代码生成一个so供jni调用就显得更通用更自然的做法。...二、认识Android的交叉工具链                                                                      交叉工具链  这个是一个经典的交叉工具链...工具链中的头文件与库文件 由此可见,ndk编译Android的 so库本质就是使用交叉工具链交叉编译,与常规的嵌入系统开发流程没有啥区别。

    70840

    conan入门(十七):支持android NDK (armv7,armv8,x86,x86_64)交叉编译的统一profile jinja2模板

    功能实现不同平台下profile的统一》以Android NDK交叉编译为例介绍了jinja模板在conan profile中的应用。.../conan/cmake/conan_ndk_toolchain.cmake 为cmake 工具链文件 # # ANDROID NDK默认提供的android.toolchain.cmake...armv7,对于Android API Level也是同样的处理,通过上级模板文件传入的api_level定义来确定目标平台,未定义则根据不同的平台有不同的默认值. android.toolchain.cmake...ANDROID NDK默认提供的工具链文件$ANDROID_NDK/build/cmake/android.toolchain.cmake, 如果不指定ANDROID_ABI和 ANDROID_NATIVE_API_LEVEL...所以如下需要创建一个自定义的工具链文件,预先设置ANDROID_ABI和ANDROID_NATIVE_API_LEVEL变量 $HOME/.conan/cmake/conan_ndk_toolchain.cmake

    1.5K40

    conan入门(九):NDK交叉编译自己的conan包项目塈profile的定义

    本文还以 jsonlib 为例,说明如何将自己的封装成conan的模块使用Android NDK实现交叉编译。...NDK交叉编译需要提供的参数更多,要是都通过命令行参数传递,更加麻烦,所以这次Android NDK交叉编译,我们使用Conan官方推荐的profile文件定义方式来为conan install 提供编译参数...Conan官方文档:《Using Profile》 使用conan profile文件,我们不仅可以声明settings将识别我们的二进制文件(host设置),还可以声明使用工具链或交叉编译器所需的所有环境变量...带有指向已安装工具链的 PATH 变量的**[env]部分。**还有工具链期望的任何其他变量(阅读编译器的文档)。一些构建系统需要一个变量SYSROOT来定位主机系统库和工具的位置。...os.api_level=21 [tool_requires] [options] [env] # 定义交叉编译工具链文件 CONAN_CMAKE_TOOLCHAIN_FILE=$android_ndk

    1.4K30
    领券