新建工程选择Android project 将会出现如下信息Priject name:工程名字Contents:单选框一个工程还是导入现有工程Build Target:选择使用那一个JDKApplication name:应用程序名字Package name: 创建包Create Activity:创建一个Activity 如果你是J2EE程序员这个就相当于struts的Action类Min SD
转载
2023-08-17 13:34:41
65阅读
本文是在这篇博客的基础上开发的so。另外,也可以自己从头开发Native C++应该更简单一些,不会有这
原创
2022-07-09 00:29:18
167阅读
只要你是安卓的机子,写C无需root,写C++还是要滴。那么你就可以在自己的手机上编写C/C++程序,并且可以本地编译运行,堪称完美。你只需要下载C4droid和一个插件 c4droid-gcc4droid,前一个1.4M后面插件18M。C4droid是收费的,不过这才十块钱,晚上有破解的,不过还是尊重下作者吧。注意安装步骤,否则你就等着系统的“应用程序未安装”的错误提示吧。第一步,下载两个安装文
转载
2023-10-13 13:00:05
0阅读
文章目录1 CMake语法1.1 指定cmake的最小版本1.2 定义工程名称1.3 显示定义变量1.4 设置编译类型1.5 设置编译模式(Debug或者Release)1.6 指定静态库或者动态库编译输出目录1.7 指定可执行程序编译输出目录1.8 设置链接库搜索目录1.9 设置包含目录1.10 设置宏定义1.11 链接静态库1.12 链接动态库1.13 link_libraries 和 ta
转载
2023-12-21 10:57:24
613阅读
一、编写CMakeLists.txt1、同目录下单文件 ①在.c文件的同级目录下创建CMakeLists.txt文件 ②编写CMakeLists.txt #后为注释 多行注释#[[ ]] ③一个基本的CMakeLists.txt编写例子# CMake 最低版本号要求 防止新语法规则和避免兼容性问题--一般都要加上
cmake_minimum_required (VERSION 2.8)
# 当
转载
2023-10-09 10:33:26
626阅读
需求:给一个目标apk,要求hook它的native层代码,但是不能修改它原本的so文件。实现方法:通过/proc/pid/maps查看目标so文件加载到内存的基址,然后利用ida查看目标函数在so文件的内存偏移,两个数字相加得到目标函数的内存地址,然后利用Android-Inline-Hook框架编写c文件,编译生成so文件,再修改apk中的smali文件,加载我们的so文件,从而达到hook的
转载
2023-11-05 20:42:15
220阅读
# 在Android中编写调用SO文件的JNI函数方案
## 背景
在Android应用程序开发中,有时需要使用C/C++编写高性能的代码,这可以通过JNI(Java Native Interface)与Java代码进行互操作,从而调用编译为SO(共享对象)文件的本地方法。本文将介绍如何在Android中编写、调用和使用JNI函数,并附带具体的代码示例,帮助开发者解决实际问题。
## 方案步
原创
2024-08-18 06:46:57
138阅读
# 使用 C 语言编写 SO 文件供 Java 使用
在软件开发中,我们经常需要将不同语言的代码结合使用。Java 是一种广泛使用的高级编程语言,而 C 语言则以其高效和灵活性而闻名。通过编写共享库(SO 文件),我们可以在 Java 中调用 C 语言编写的函数。本文将介绍如何创建一个简单的 SO 文件,并在 Java 中调用它。
## 创建 C 语言的共享库
首先,我们需要编写一个 C 语
第一、前言从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域。作为一名Android开发者,每个人都想去探索这个领域,因为一旦你破解了别人的内容,成就感肯定爆棚,不过相反的是,我们不仅要研究破解之道,也要研究加密之道,因为加密和破解是相生相克的。但是我们在破解的过程中可能最头疼的是native层,也就是so文件的破解。所以我们
第一、前言从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域。作为一名Android开发者,每个人都想去探索这个领域,因为一旦你破解了别人的内容,成就感肯定爆棚,不过相反的是,我们不仅要研究破解之道,也要研究加密之道,因为加密和破解是相生相克的。但是我们在破解的过程中可能最头疼的是native层,也就是so文件的破解。所以我们
转载
2024-01-17 19:51:29
72阅读
随着Android设备上的隐私安全问题越来越被公众重视,恶意软件对用户隐私,尤其是对电话、短信等私密信息的威胁日益突出,各大主流安全软件均推出了自己的隐私行为监控功能,在root情况下能有效防止恶意软件对用户隐私的窃取,那么这背后的技术原理是什么?我带着疑问开始一步步探索,如果要拦截恶意软件对电话、短信等API的调用,在Java或者Dalvik层面是不好进行的,因为这些层面都没有提供Hook的
转载
2024-01-28 00:38:58
74阅读
全局符号表(GOT表)hook实际是通过解析SO文件,将待hook函数在got表的地址替换为自己函数的入口地址,这样目标进程每次调用待hook函数时,实际上是执行了我们自己的函数。 GOT表其实包含了导入表和导出表,导出表指将当前动态库的一些函数符号保留,供外部调用,导入表中的函数实际是在该动态库中调用外部的导出函数。 这里有几个关键点要说明一下: (1) so文件的绝对路径和加载到内存
转载
2023-08-30 20:08:09
316阅读
来来了解一下JNI吧,也许工作中并不一定用得着,但是也得知道一下大概内容呀。总结安卓中关于JNI的基础知识,有以下三个部分。(第一部分)A) 创建一个类(HelloWorld.java)或者在原来的类com.example.hellojni.HelloJNI中声明本地方法。(1)使用关键字native声明本地方法,表明这两个函数需要通过本地代码C/C++实现。public native
转载
2024-10-08 17:33:48
42阅读
文章目录前言Hook So有导出so层hook无导出so层hookSo层实战hook脚本的编写hook脚本的效果总结 前言我在前面的一篇博客 CTF逆向-EasySo世界SO层反汇编 中记录了对一道 CTF 逆向题目的 Android APP 的 So 层函数进行基础的逆向分析的过程,通过 IDA 反汇编查看 So 层代码并分析获得了 Flag 值。生命在于折腾~本文将记录尝试通过 Frida
转载
2023-07-06 15:58:26
166阅读
在有些情况下,可能遇到需要改变目标进程的执行流程的问题,替换原函数转而指向我们自己的函数,而Hook就是指的改变待Hook函数的地址,替换地址而达到更换原函数的功能。本文主要介绍Android上对native层中的so库Hook的方法,核心技术其实是对GOT表的Hook,获取目标函数地址需要对so文件进行解析,而so文件实际上是ELF文件,所以在此之前需要对ELF文件格式有一个很好的了解。关键解析
转载
2023-07-24 22:28:26
118阅读
本节用的so是上节用Android Studio创建的so。想在Android Studio中调用so中的方法,需要先引用so。Android Studio中引用so的方法有二种,下面开始介绍。一 引用so 在app/src/main目录下新建Directory,命名文件夹为jniLIB(文件名不能错),把so文件放进去 ,如图: 二 编写java代码调用so中方法 ①在代码
转载
2018-11-24 11:42:00
209阅读
0X00 前言 为了增加APK文件的破解难度,很多比较重要的功能都是通过native实现,与反编译不同的是,java的伪代码可以很清楚的得到程序的逻辑关系,但是so文件反编译得到的是汇编代码,使用ida这样的神器可以得到c的伪代码。使用ida实现so的动态调试,可以在关键地方下断点,对于一些变换,比如有的时候输入的内容与经过一些列的变换后的结果比较,这个时候我们不需要关心中间的变换过程,在动态调
转载
2023-10-17 16:08:13
81阅读
继上次基于源码级别和二进制级别的SO文件的核心函数保护后,没看的网友可以点击:点击打开链接;这篇是针对我们在JNI开发过程中利用javah生成本地层对应的函数名类似于java_com_XX这种形式,很容易被逆向者在逆向so的时候在IDA的Exports列表中找到这样一个问题,我们的目的就是让IDA在反汇编过程显示不出来,以及就算找到函数实现也
转载
2023-12-09 21:42:12
16阅读
序言:该篇文章记录Android studio怎么使用NDK制作so库过程最开始用Android Studio 3点几的版本和2020年3月份最新版本的Android studio,配置的时候老是出一些无法解决的错误,搞的心态爆炸。最终选择Android 4.0版本 SDK Platforms:Android 6.0(API 23) SDK Build-Tools: 27.0.3 NDK 版本:2
转载
2023-07-03 18:10:44
329阅读
因为最近业务上涉及安全的问题然后有一些加密解密的方法和key的存储问题本来想存储到手机里面,但是网上说一般敏感信息不要存储到手机Sdcard上而且我这个如果从网络建立通信获取的话,又太耗时,所以黑客论坛上就有人建议把加密解密的关键信息写在so里,然后从so里面调用要想破解so就涉及到汇编语言的,这个没功力的话一般做不成的 O(∩_∩)O 作者:Andye大体流程
转载
2024-08-14 16:20:27
34阅读