所谓技术参观,指写给技术玩家观看和互相交流的文章。本文是关于同一个apk程序实现“双开”(实际是伪双开)的一些想法和实现。 一、关于apk程序的双开 今天查邮件看到有人发邮件问我android下的阿里旺旺怎么双开。经过我的中外查证,貌视同个apk程序没有办法运行多个实例,也就是同一个程序不能实现双开;同时同个程序也不能被安装二次,更进一步扼杀了双开的可能。于是那我唯一能想到的是:改apk,让
应用程序的基本结构模块 Activity应用程序的表示层。应用程序中的每一个UI都是通过Activity类的一个或多个扩展实现的。Activity使用Fragment和视图来布局和显示信息,以及响应用户动作。Activity相当于桌面开发环境中Form。Service应用程序中不可见的工作者。Service组件在运行时没有UI,可以更新数据和Activity、触发通知和广播Intent。用来执行一
转载
2023-06-29 09:54:09
74阅读
# 如何实现Android内置应用so拷贝
## 一、流程
下面是实现Android内置应用so拷贝的步骤表格:
| 步骤 | 描述 |
| ---- | ---- |
| 1 | 检查目标so文件是否存在 |
| 2 | 创建目标文件夹 |
| 3 | 从assets目录中拷贝so文件到目标文件夹 |
## 二、代码实现
### 步骤1:检查目标so文件是否存在
```java
//
原创
2024-05-07 07:40:49
126阅读
# Android系统预置应用.so文件
在Android系统中,预置应用是指在设备出厂时预先安装在系统分区的应用程序。这些应用程序通常是由设备制造商或运营商提供的,包括但不限于浏览器、相机、音乐播放器等。这些应用程序的核心组件是.so文件,它们是预编译的共享库,包含了应用程序的核心功能。
## .so文件的作用
.so文件(也称为共享对象文件)是一种二进制文件格式,它包含编译后的代码和数据。
原创
2023-10-07 09:52:21
496阅读
网易科技讯9月4日消息,据国外媒体报道,经过几个月的测试后,谷歌今天开始在Pixel手机上正式发布最终版Android 10移动操作系统。谷歌承诺将“与多家合作伙伴进行合作,在今年将设备操作系统升级到Android 10或推出搭载Android 10的新设备。”除了引入新的手势导航系统,Android 10系统还拥有诸多新的重要功能,包括更严格的权限和隐私控制,一种可禁用分散注意力应用程序的“焦点
转载
2024-01-20 09:51:53
44阅读
# 如何解决 Android 13 应用无法打开 SO 文件的问题
在 Android 13 系统中,有些用户可能会遇到自己的应用可正常启动,但在加载 SO 文件时却失败。SO(Shared Object)文件是 Android 应用使用的本地库文件,通常用于性能优化或调用特定的底层代码。本文将带你了解如何排查和解决该问题。
## 整体流程
为了帮助新手快速理解整个流程,下面是解决 Andr
原创
2024-09-10 03:10:22
278阅读
# Android 应用仅支持 32 位 SO 的实现指南
作为一名刚入行的开发者,可能你会遇到需要确保你的 Android 应用仅依赖于 32 位的 SO(Shared Object)文件的情况。下面,我将为你详细介绍实现这一目标的流程和代码示例。
## 流程概述
在开始之前,我们先来看看实现这一目标所需经过的流程。这里我将使用表格和流程图来清晰展示步骤。
### 流程表格
| 步骤
原创
2024-10-27 03:23:32
230阅读
Android 8.0编译系统简述概述Android 7.0之前,android编译主要依赖makefile,随着android工程越来越大,makefile编译花费时间也越来越多,所以7.0开始逐步引入了kati soong(可选,用的话需要在执行编译时将USE_SOONG=true开启),soong会将Android.bp(用于替换Android.mk文件)文件转化为ninja文件,然后由ni
转载
2023-12-06 18:53:31
56阅读
前言Android作为开源项目让全球的用户和厂商共同受益,我们有幸见证了小米带给大家的各种惊喜(饥饿营销解决库存压力),同时也带坏了不少实力厂商一起雄起,这里要为华为/联发科/汇顶科技点赞(不断努力掌握核心科技),总之对我们消费者来说始终是利大于弊。Android应用大多数都是以免费+广告或内购的形式出现,虽然质量上总体不如iOS但自由度很高,而系统易用性上的差距也越来越小,大家各取所需喜欢就好。
转载
2024-05-27 21:02:16
7阅读
一,为什么要使用分包预下载小程序的分包能使小程序有更大的代码体积,承载更多的功能与服务;而对用户而言,可以更快地打开小程序,同时在不影响启动速度前提下使用更多功能。但是金无足赤,分包肯定不会只有优点没有缺点。使用分包的时候我们就会发现,虽然加载首页 的时间变短了,但是当我们打开分包的时候,会有一个明显的加载过程。而且在安卓手机里会有一个系统级别的加载loading。那么如何解决分包的这个副作用呢?
转载
2024-08-12 14:13:13
51阅读
需求:给一个目标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注入防止动态调试
在Android开发过程中,我们经常需要保护我们的应用免受恶意攻击和逆向工程的威胁。其中一种常见的攻击方式是so注入和动态调试。所注入是指攻击者将恶意的共享库文件(.so)注入到应用进程中,从而能够执行恶意代码。而动态调试是指攻击者使用调试器来对应用程序进行动态分析和修改。为了防止这些攻击,我们可以采取一些措施来保护我们的应用程序。
一、防止so注入
原创
2024-01-10 05:11:50
901阅读
第一、前言从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域。作为一名Android开发者,每个人都想去探索这个领域,因为一旦你破解了别人的内容,成就感肯定爆棚,不过相反的是,我们不仅要研究破解之道,也要研究加密之道,因为加密和破解是相生相克的。但是我们在破解的过程中可能最头疼的是native层,也就是so文件的破解。所以我们
第一、前言从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域。作为一名Android开发者,每个人都想去探索这个领域,因为一旦你破解了别人的内容,成就感肯定爆棚,不过相反的是,我们不仅要研究破解之道,也要研究加密之道,因为加密和破解是相生相克的。但是我们在破解的过程中可能最头疼的是native层,也就是so文件的破解。所以我们
转载
2024-01-17 19:51:29
72阅读
现有的CPU架构类型开发Android应用时,有时候Java层的编码不能满足实现需求,就需要到C/C++实现后生成SO文件,再用System.loadLibrary()加载进行调用,这里成为JNI层的实现。常见的场景如:加解密算法,音视频编解码等。在生成SO文件时,需要考虑适配市面上不同手机CPU架构,而生成支持不同平台的SO文件进行兼容。目前Android共支持七种不同类型的CPU架构,分别是:
转载
2024-04-19 09:17:15
167阅读
随着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阅读
本节用的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阅读