![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 73
lzj_lzj2014
这个作者很懒,什么都没留下…
展开
-
androidstudio ndk 配置
使用 Android studio,你可以将 C 和 C++ 代码编译成 native library,然后打包到你的 APK 中。你的 Java 代码可以通过 Java Native Interface(JNI)调用 native library 库中的方法。如果你想了解更多关于如何使用 JNI,请参阅 JNI tips for Android。Android Studio 默认使用 C转载 2017-06-29 10:21:09 · 248 阅读 · 0 评论 -
android ndk error :undefined reference to.
在用AS的NDK编译c时,添加了一个C的头文件和.c文件,在调用的时候,一直出现undefined reference to 。。。。查看代码之后,发现一点问题都没有,就是一直编译不过。也在C的头文件加入了:#ifdef __cplusplusextern "C" {#endif// my code#ifdef __cplusplus}#endif原创 2017-07-27 11:07:06 · 3931 阅读 · 1 评论 -
android解析XML文件
一、基本介绍对XML解析有SAX和DOM等多种方式,Android中极力推荐xmlpull方式解析xml。xmlpull不仅可用在android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpull_1_1_3_4c.jar。 jar包下载网址http://www.xmlpull.org转载 2017-07-25 19:26:50 · 341 阅读 · 1 评论 -
android studio 导入共享库,本地外部库
在setting.gradle include 'securitylib'project(':securitylib').projectDir = new File(settingsDir,'../A/securitylib')include 'te'project(':te').projectDir = new File(settingsDir,'../A/app')原创 2017-07-19 20:44:44 · 1019 阅读 · 0 评论 -
Android CMake轻松实现基于OpenSSL的HmacSHA1签名
最近有这么一个需求,要对接口进行签名验证以防止被刷。开始想到了在Java中实现HmacSHA1签名,但由于Java代码较容易反编译直接获取秘钥,而否定了这个方案。为了解决这个问题,把实现签名的逻辑代码用C/C++来编写,编译成xxx.so库,大大提高了反编译的门槛,从而降低了被反编译的风险。在C/C++中要实现HmacSHA1签名,只有依赖一个很出名的C语言中常用的加解密库OpenSSL。什么转载 2017-07-31 15:16:48 · 663 阅读 · 0 评论 -
android library 编译ndk文件 编译器的问题
最近在Android studio中进行开发。创建了一个APP 和一个lib。其中lib进行了ndk开发。要问为什么,就希望把lib做成share库。但是遇到了问题,在进行sm3算法实现的时候(c代码)发现lib库中的位移操作有问题。百度里面是这么说的:C语言里的左移和右移运算符先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用int原创 2017-07-21 15:50:54 · 509 阅读 · 2 评论 -
记录Android dnk 文档
https://developer.android.com/studio/projects/add-native-code.html#create-cmake-scriptndk 基础教程https://developer.android.com/ndk/guides/cmake.html#variablescmake 参数配置文档ht转载 2017-07-21 15:26:11 · 269 阅读 · 0 评论 -
Android APK加固完善篇
作者:http://blog.csdn.net/jiangwei0910410003/article/details/51557135一、前言时隔半年,困扰的问题始终是需要解决的,之前也算是没时间弄,今天因为有人在此提起这个问题,那么就不能不解决了,这里写一篇文章记录一下吧。那么是什么问题呢?就是关于之前的一个话题:Android中apk加固技术实现关于转载 2017-07-05 11:27:33 · 4302 阅读 · 3 评论 -
android studio 引入so使用
第一步:把so库放到主module的libs/下的对应CPU架构目录中,比如libs/armeabi中。主module的build.gradle文件里面,android标签里添加:sourceSets { main { jniLibs.srcDirs = ['libs'] }}编译之后就会包含相应的lib第二步:创建相应的包名原创 2017-07-03 15:41:10 · 302 阅读 · 0 评论 -
JNI 字符串处理
访问字符串 jstring 2 char *jstring类型是指向JVM内部的一个字符串,和C风格的字符串类型char*不同,所以在JNI中不能通把jstring当作普通C字符串一样来使用,必须使用合适的JNI函数来访问JVM内部的字符串数据结构。GetStringUTFChars(env, j_str, &isCopy) 参数说明:env:JNIEnv函数表指针原创 2017-07-12 11:07:03 · 360 阅读 · 0 评论 -
动态加载so文件
我想对于静态加载 so 库文件,大家都已经很熟悉了,这里就不多说了。在 Android 开发中调用动态库文件(*.so)都是通过 jni 的方式,而静态加载往往是在 apk 或 jar 包中调用so文件时,都要将对应 so 文件打包进 apk 或 jar 包。动态加载的优点静态加载,不灵活,apk 包有可能大。所以采用动态加载 so 库文件,有以下几点好处:灵活,so原创 2017-07-02 14:53:03 · 1067 阅读 · 0 评论 -
常见的Android SO加壳(加密)思路
常见的Android SO加壳(加密)思路 1.1 破坏Elf Header 将Elf32_Ehdr 中的e_shoff, e_shnum, e_shstrndx, e_shentsize字段处理,变为无效值。由于在链接过程中,这些字段是无用的,所以可以随意修改,这会导致ida打不开这个so文件。 1.2 删除Section Header转载 2017-07-02 09:44:57 · 1631 阅读 · 1 评论 -
Android so文件的简单加密
这篇文章主要内容是对于so文件进行简单的加密工作,针对Ida等静态分析工具的分析,一旦开始动态调试就应该很容易就可以dump出内存,直接修复了。主要是两种思路,对文件中指定的section加密,然后在运行时由.initarray进行解密;对指定的函数进行加密,在运行时由.initarray进行解密。两种不同的方法说到底也就是不同的View而已。①基于链接转载 2017-06-29 20:46:31 · 2084 阅读 · 0 评论 -
Android APK加壳技术方案【1】
本文章由Jack_Jia编写,转载请注明出处。 文章链接:http://blog.csdn.net/jiazhijun/article/details/8678399作者:Jack_Jia 邮箱: 309zhijun@163.com一、什么是加壳? 加壳是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数转载 2017-06-29 11:08:49 · 447 阅读 · 0 评论 -
Dex文件结构
文件头(File Header)Dex文件头主要包括校验和以及其他结构的偏移地址和长度信息。字段名称偏移值长度描述magic0x08'Magic'值,即魔数字段,格式如”dex/n035/0”,其中的035表示结构的版本。checksum0x84校验码。转载 2017-06-29 11:05:25 · 246 阅读 · 0 评论 -
jni 验证apk签名
char* RELEASE_SIGN = "your release sign";JNIEXPORT jboolean JNICALL Java_edu_scnu_jsj_androidsecurity_jnis_JUtil_verifySign (JNIEnv *env, jobject, jobject contextObject, jint signHashCod原创 2017-06-29 10:35:03 · 513 阅读 · 0 评论 -
jni 函数签名规则
类描述符 类描述符是类的完整名称(包名+类名),将原来的 . 分隔符换成 / 分隔符。 例如:在java代码中的java.lang.String类的类描述符就是java/lang/String 其实,在实践中,我发现可以直接用该类型的域描述符取代,也是可以成功的。 例如:原创 2017-06-29 10:30:10 · 408 阅读 · 0 评论 -
jni 调用java代码
1.创建java对象首先在java端自定义一个Person类如下Java代码 package com.example; public class Person { public String name; public int age; public Pers原创 2017-06-29 10:26:53 · 271 阅读 · 0 评论 -
android studio 导入本地外部项目或库
应用程序 / App1 / build.gradle settings.gradle 图书馆 / library1 / build.grade settings.gradle library2 / build.grade settings.gradle library3 / build.grade ...原创 2018-09-18 13:52:06 · 2560 阅读 · 0 评论