很多人都知道Android数据需要加密,毕竟反编译、抓包,你懂的,可是有时候不知道从何入手,比如菜鸟的我,经过这几天的折腾之后,我整理了一些思路,有不对的地方,还请多多指点。2、加固:APP上线之前最好做一下加固,常用的有:360加固宝,爱加密等3、HTTPS:现在很多APP都用HTTPS作为网络传输的保证,防止中间人攻击,提高数据传输的安全性(用Retrofit的网络请求框架的,要加上HTTPS
转载
2023-11-01 19:08:43
12阅读
#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
转载
2023-08-17 10:32:38
73阅读
一、前言经过上次写完在ELF文件中根据函数名找函数,就准备开始编写so文件函数加密,这里这是对代码进行加密,还没有对函数名做混淆,会放到下次写。还有本次的测试机是nexus4,操作系统为android 4.4。二、函数加密一般在android中,各种核心的东西都会放在so文件中,因为native层的代码分析难度大,执行效率高。本文选择对so文件的核心函数进行加密,用来对抗静态分析。在加密之前,需要
转载
2023-09-11 16:05:15
50阅读
加密SO文件中自定义的section
作者: 0n1y3nd丶
前言 加密已知so文件中的某一section,在运行时解密。执行里面的代码!0×1 libsyc.so里有一个.textsection,里面有一个方法返回一个字符串! 生成未加密的libsyc.so的代码: JNIEXPORT jstring returnString
转载
2024-05-23 09:18:13
466阅读
已经很长一段时间没更新了,一方面本人技术一般,不知道能给技术网友分享点什么有价值的东西,一方面,有时候实验室事比较多,时间长了就分享的意识就单薄了,今天接着前面那个so文件重要函数段加密,接着更,接下来开始书写。一、原理篇 在很多时候我们对一个.so文件中重要的函数段加密时,是无法拿到源码的,当然并不排除可能在以后随着Android开发与安全结合,出现逆向开
转载
2023-06-25 15:14:37
335阅读
提高反编译难度的几种方式:对于软件安全来说,有攻就要有防才对。不然,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文件的核心函数保护后,没看的网友可以点击:点击打开链接;这篇是针对我们在JNI开发过程中利用javah生成本地层对应的函数名类似于java_com_XX这种形式,很容易被逆向者在逆向so的时候在IDA的Exports列表中找到这样一个问题,我们的目的就是让IDA在反汇编过程显示不出来,以及就算找到函数实现也
转载
2023-12-09 21:42:12
16阅读
# Android Studio 加密so库
在Android开发中,我们常常需要使用JNI来调用C/C++编写的代码,但是为了保护我们的代码不被轻易破解,我们需要对so库进行加密。本文将介绍如何在Android Studio中对so库进行加密,并提供代码示例。
## 加密so库
为了加密so库,我们可以使用加密算法对so库进行加密,然后在运行时解密再加载到内存中。这样可以使得so库在磁盘中
原创
2024-03-21 05:44:37
150阅读
# Android SO实现接口加密的完整指南
随着移动应用安全问题的日益严峻,进行接口加密成为了开发者的必修课。本文将帮助刚入行的小白了解如何在 Android 中实现 SO(Shared Object)文件来进行接口加密。我们将通过以下步骤来完成这一过程。
## 1. 最终流程概览
下面是整个实现流程的概览,可以帮助你更好地理解每一步的顺序:
| 步骤 | 描述 |
|----|---
这是13年12月份做的一个项目,难度相对较大,花了一个月的时间,不断试错,最后终于在元旦前晚完成,整理一下写出来,部分细节出于公司技术保护所以没有细说。 目前市面上针对Apk的保护主要是基于Dex,公开的有DexGuard、梆梆、爱加密、ApkProtect等,私底下相信很多涉及到技术保密的App开发商都在做自己的保护策略。 而针对so的保护就相对滞后了一些,这里有so在app中扮演的角色的原因,
转载
2024-08-14 11:26:34
17阅读
有时候我们需要在客户端 存放一些 保密的数据,比如 服务端的IP 端口,接口的地址,授权的key 等等,如果我们直接写在java中,别人反编译就能看到,那么我们可以把这些数据 存在 so文件中,这样别人就不可能会看到了,顺便 so里面验证 app的签名 来防止别人盗用so文件,下面的例子是 在so里面获取我的客户
转载
2023-07-30 01:53:57
134阅读
1.为什么做加固
因为不想辛辛苦苦做的东西,被别人拿去改成各种版,半路摘我的桃子。
2.怎么加固
2.1 简单的加固
三方加固,有些三方会有免费版本的加固服务
比如 腾讯加固
2.2 深度复杂加固,
为啥要深度复杂加固呢,因为三方的免费版的简单加固只会对代码进行加固,资源和so库还是一目了然的放在那里。
如果想将资源和so库加固,可以使用三方付费版,
当然也可以自己做
为啥要自己做呢?
因为贵啊
转载
2023-06-21 23:51:27
135阅读
0x00 前言之前的两篇文章从链接视图和执行视图分析了elf文件的大致结构,这篇文章主要内容是对于so文件进行简单的加密工作,针对Ida等静态分析工具的分析,一旦开始动态调试就应该很容易就可以dump出内存,直接修复了。0x01 思路主要是两种思路,对文件中指定的section加密,然后在运行时由.initarray进行解密;对指定的函数进行加密,在运行时由.initarr
转载
2023-06-21 23:27:25
162阅读
一、前言 最近在学习安卓加固方面的知识,看到了jiangwei212的博客,其中有对so文件加固的两篇文章通过节加密函数和通过hash段找到函数地址直接加密函数,感觉写的特别好,然后自己动手实践探索so加密,这里记录一下学习遇到的困难和所得吧,收获还是非常大的。 二、通过加密节的方式加密函数 1、加解密思路 加密:我们自己写一个Demo根据ELF文件格式,找到我们要加密的节,加密保存
转载
2023-10-06 19:31:45
195阅读
我们辛辛苦苦开发一款app,如果被心怀叵测的人恶意反编译,会让人感到恶心至极!所以考虑到安全性和应用的私密性,在打包的时候,都会进行一些代码混淆处理,Android Studio(以下简称AS)中的其实已经为我们处理到了极致,我们只需要简单的配置就可以,下面就为大家在AS开发中如何完成代码的混淆进行详细介绍:1.在 buildType中打开混淆的开关和指定混淆文件的路径:buildTypes {
转载
2023-10-25 15:50:07
90阅读
开发过程中常常涉及加密,一般直接在java层对参数进行加密,当app被反编译时,对方可以拿到我们的代码,可以看到我们加密的方式从而让对方找到破解密文的方法,很不安全; 那么是否可以防止这种反编译的破解呢,所以便有了在c层处理加密的方法,通过jni将加密方法打包到so库中,可以防止对方反编译看到我们的加密条件,但是这样也不安全,对方只需要反编译apk后得到 应用的包名 你的so库 你的nati
转载
2023-12-17 18:22:36
291阅读
RSA优缺点: RSA的安全性依赖于大数分解,小于1024位的N已经被证明是不安全的,而且由于RSA算法进行的都是大数计算,使得RSA最快的情况也比DES慢上倍,这是RSA最大的缺陷,因此通常只能用于加密少量数据或者加密密钥,但RSA仍然不失为一种高强度的算法。 加密方法: 
转载
2024-04-02 15:27:14
108阅读
程序员希望通过加密来提升程序的安全性性,但却缺乏专业的密码学背景知识,使得应用对数据的保护非常薄弱。本文将介绍可能出现在Android应用中的一些脆弱的加密方式,以及对应的攻击方法。造成脆弱加密的主要原因 Android应用中造成弱加密的原因多种多样,OWASP Mobile Top 10 给出了几个原因:使用了脆弱的加密算法
使用了强健的加密算法,但加密的实现存在漏洞。使用弱密码算法实现加解
转载
2023-09-10 21:01:12
102阅读
优雅的处理API 接口敏感数据加密解密前言最近遇到了很多网站爬取和反爬取的问题,所以在此分享一种简单的 api 接口加密策略。我们与客户端的接口交互过程中,为了更高的安全性,防止数据被其他人抓取,可能需要对部分接口进行加密(请求参数加密,服务端解密)、返回信息加密(服务端加密,客户端解密),但也不是所有的接口都这样,有些接口可能不需要,所以我们可以使用注解的方式来轻松达到此要求。完成代码已发布至
转载
2023-09-28 14:21:04
124阅读