继上次基于源码级别和二进制级别的SO文件的核心函数保护后,没看的网友可以点击:点击打开链接;这篇是针对我们在JNI开发过程中利用javah生成本地层对应的函数名类似于java_com_XX这种形式,很容易被逆向者在逆向so的时候在IDA的Exports列表中找到这样一个问题,我们的目的就是让IDA在反汇编过程显示不出来,以及就算找到函数实现也
之前在做卫士项目的时候,做程序锁的时候,遇到一个问题。以往做程序锁的时候,我们都会选择开启一个后台服务,然后在服务中不断获取当前运行的栈信息,提取栈顶的packageName来判定当时运行的程序是否为锁程序。但这种方式在API21之后不能用了,因为getRunningTasks这个方法在API21已经被弃用了。在Android 5.1的系统也不支持此种方式。但别着急,在5.1版本后我们还有另一种方
转载 2023-08-17 13:40:24
271阅读
  开发过程中常常涉及加密,一般直接在java层对参数进行加密,当app被反编译时,对方可以拿到我们的代码,可以看到我们加密的方式从而让对方找到破解密文的方法,很不安全;  那么是否可以防止这种反编译的破解呢,所以便有了在c层处理加密的方法,通过jni将加密方法打包到so中,可以防止对方反编译看到我们的加密条件,但是这样也不安全,对方只需要反编译apk后得到 应用的包名 你的so 你的nati
加密SO文件中自定义的section 作者: 0n1y3nd丶  前言 加密已知so文件中的某一section,在运行时解密。执行里面的代码!0×1 libsyc.so里有一个.textsection,里面有一个方法返回一个字符串! 生成未加密的libsyc.so的代码: JNIEXPORT jstring returnString
转载 2024-05-23 09:18:13
469阅读
# Android Studio 加密soAndroid开发中,我们常常需要使用JNI来调用C/C++编写的代码,但是为了保护我们的代码不被轻易破解,我们需要对so进行加密。本文将介绍如何在Android Studio中对so进行加密,并提供代码示例。 ## 加密so 为了加密so,我们可以使用加密算法对so进行加密,然后在运行时解密再加载到内存中。这样可以使得so在磁盘中
原创 2024-03-21 05:44:37
150阅读
1.为什么做加固 因为不想辛辛苦苦做的东西,被别人拿去改成各种版,半路摘我的桃子。 2.怎么加固 2.1 简单的加固 三方加固,有些三方会有免费版本的加固服务 比如 腾讯加固 2.2 深度复杂加固, 为啥要深度复杂加固呢,因为三方的免费版的简单加固只会对代码进行加固,资源和so还是一目了然的放在那里。 如果想将资源和so加固,可以使用三方付费版, 当然也可以自己做 为啥要自己做呢? 因为贵啊
转载 2023-06-21 23:51:27
135阅读
序言:该篇文章记录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
332阅读
很多人都知道Android数据需要加密,毕竟反编译、抓包,你懂的,可是有时候不知道从何入手,比如菜鸟的我,经过这几天的折腾之后,我整理了一些思路,有不对的地方,还请多多指点。2、加固:APP上线之前最好做一下加固,常用的有:360加固宝,爱加密等3、HTTPS:现在很多APP都用HTTPS作为网络传输的保证,防止中间人攻击,提高数据传输的安全性(用Retrofit的网络请求框架的,要加上HTTPS
程序员希望通过加密来提升程序的安全性性,但却缺乏专业的密码学背景知识,使得应用对数据的保护非常薄弱。本文将介绍可能出现在Android应用中的一些脆弱的加密方式,以及对应的攻击方法。造成脆弱加密的主要原因  Android应用中造成弱加密的原因多种多样,OWASP Mobile Top 10 给出了几个原因:使用了脆弱的加密算法 使用了强健的加密算法,但加密的实现存在漏洞。使用弱密码算法实现加解
转载 2023-09-10 21:01:12
102阅读
#include "com_example_jni02_CallSo.h" #include <jni.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #includ
一、前言经过上次写完在ELF文件中根据函数名找函数,就准备开始编写so文件函数加密,这里这是对代码进行加密,还没有对函数名做混淆,会放到下次写。还有本次的测试机是nexus4,操作系统为android 4.4。二、函数加密一般在android中,各种核心的东西都会放在so文件中,因为native层的代码分析难度大,执行效率高。本文选择对so文件的核心函数进行加密,用来对抗静态分析。在加密之前,需要
已经很长一段时间没更新了,一方面本人技术一般,不知道能给技术网友分享点什么有价值的东西,一方面,有时候实验室事比较多,时间长了就分享的意识就单薄了,今天接着前面那个so文件重要函数段加密,接着更,接下来开始书写。一、原理篇      在很多时候我们对一个.so文件中重要的函数段加密时,是无法拿到源码的,当然并不排除可能在以后随着Android开发与安全结合,出现逆向开
转载 2023-06-25 15:14:37
335阅读
文章目录1、简介2、先编译出一个第三方非标准so1)android studio 新创建一个项目2) main 新创建 jni 文件夹3) 新建 .cpp 文件和 .h 实现 求和功能4)、编写 CMakeLists.txt 用来编译 cpp 文件so5)配置编译环境6)、编译第三方 非标准 3、新项目 引用第三方 so 1)新建 android studio 项目2)新建 java 类
转载 2023-07-31 17:16:52
2200阅读
提高反编译难度的几种方式:对于软件安全来说,有攻就要有防才对。不然,Android整个产业链就会被这样的Crack给毁掉。第一种办法:将核心代码用JNI写进so中。由于so的反编译和破解的难度加大,所以这种方式防止反编译效果不错。关键代码使用jni调用本地代码,用c或c++编写,相对于class文件so相对比较难于反编译。缺点是,对于Java层的代码没有保护作用,同样可以被篡改。很多搞jav
转载 2023-12-05 19:53:00
17阅读
# 如何在 Android Studio 中加密 .so 文件Android 开发中,.so 文件(共享)通常是用 C/C++ 编写的本地。为了保护你的代码和数据安全,实现 .so 文件加密是一个必要的步骤。本文将详细介绍如何在 Android Studio 中实现 .so 文件加密,并包含步骤流程和代码示例。 ## 流程概述 下面是加密 .so 文件的基本流程: ```me
原创 2024-10-23 06:18:30
138阅读
SO文件中函数的加密和解密简介原理上来说,找到so文件函数的位置,对其二进制进行一定加密操作后即加密了,解密也是一样,找到函数的位置,对其二进制进行一定的解密操作即可,只不过前者是通过so文件格式,按照一定的索引一步一步找到函数位置;后者是在其运 行时,通过/proc/pid号/maps文件,找到so文件映射的内存虚拟地址,在根据so文件格式的索引一步一步找到函数位置,再进行解密工作;首先,从se
# 如何将Python文件加密so文件 ## 1. 概述 在本文中,我们将讨论如何将Python文件加密为.so文件加密Python文件可以保护源代码,使其不被他人轻易查看和修改,增强代码的安全性。 在加密过程中,我们将使用Cython来将Python代码转换为C代码,然后使用gcc编译器将C代码编译为.so文件。下面是整个流程的概览。 | 步骤 | 描述 | | --- | ---
原创 2023-11-05 05:32:47
430阅读
上一篇我们分析了Hello World是如何编译的,即使一个非常简单的程序,也需要依赖C标准和系统,链接其实就是把其他第三方和自己源代码生成的二进制目标文件融合在一起的过程。经过链接之后,那些第三方中定义的函数就能被调用执行了。早期的一些操作系统一般使用静态链接的方式,现在基本上都在使用动态链接的方式。静态链接和动态链接虽然静态链接和动态链接都能生成可执行文件,但两者的代价差异很大。下面这
# Android文件SO的介绍 Android是建立在Linux内核之上的一个操作系统,广泛应用于移动设备。在Android应用开发中,我们常常需要使用C/C++编写一些高效的代码,这些代码通常被封装成共享SO)。这些中的功能和数据可以被多个程序共享,从而提高了内存使用效率。本文将讨论Android中的头文件(header files)和SO,并通过代码示例进行说明。 ##
原创 8月前
57阅读
# Android so层如何打开其他so文件Androidso层,我们可能会需要加载和调用其他so文件中的方法。这里我们以一个具体的场景来说明如何在Androidso层中打开其他so文件。 ## 场景描述 假设我们有一个名为`libmath.so`的文件,其中包含了一些数学运算的方法。我们希望在我们的项目中调用这些数学运算方法,来实现一些功能。 ## 解决方案 ###
原创 2024-03-07 04:43:37
231阅读
  • 1
  • 2
  • 3
  • 4
  • 5