java'
文章平均质量分 50
小道安全
这个作者很懒,什么都没留下…
展开
-
android多开原理和检测。
多开检测理论基础多开实现原理解析代码实现:多开包名代码实现:多用户理论基础app多开常用于做一些不合法的事情,如高羊毛,黑灰产,甚至会对app的功能做破坏修改。因此多开在实际app应用中是有一定危害性的,因此对多开环境的识别是很重要的,通过识别多开环境有利于让app更加安全。多开实现原理解析app多开实现原理很多种类,如采用多用户方式(mumu模拟器的多开器实现)、通过创建不同进程名称(多开分身、双开助手)进行运行。我们知道在每一个的app都有属于自己的私有目录,一般是“/data/data/包名原创 2021-08-25 16:48:37 · 6127 阅读 · 3 评论 -
android反编译工具jadx卡死解决方案。
jadx卡死解决概述问题点解决方案概述在android的app中,由于dex部分是由java代码实现的,dex可以直接被apktool,androidkiller,jeb等工具进行反编译分析,那么jadx工具主要是用于将dex文件的代码还原为java代码。jadx支持直接将dex文件和jar文件拖拽到工具进行做解析。在使用jadx工具的时候会有卡死的情况出现,下面就针对这个问题进行分析和解决。问题点在使用jadx工具进行解析app中的dex文件或者jar包的时候,当dex或jar文件超过50M的原创 2021-08-24 10:53:57 · 5983 阅读 · 4 评论 -
初探android系统的input在java层实现
input实现理论背景关键代码实现解析:java层代码Input类定义sendKeyEvent 函数定义sendSwipe 函数定义injectKeyEvent 函数定义injectMotionEvent 函数定义sendMove 函数定义理论背景当我们在分析android的键盘记录的时候就不得不和input进行打交道,那么input在系统中是怎么进行实现的?Android手机中默认携带input子系统,并且开在机就会产生默认的mouse和keyboard事件,这样使得用户开机就可以触屏点击和使用按键原创 2021-08-21 11:40:27 · 397 阅读 · 2 评论 -
android匿名共享内存原理浅读
理论基础android系统在应用程序框架层中提供了两个C++类MemoryHeapBase和MemoryBase来创建和管理匿名共享内存。如果一个进程需要与其他进程共享一块完整的匿名共享内存,那么就可以通过使用MemoryHeapBase类类创建这块匿名共享内存。如果一个进程创建一块匿名共享内存后,只希望与其他进程共享其中的一部分,那么就可以通过MemoryBase类来创建这块匿名共享内存。IMemory.h:定义内存相关类的接口,表示堆内存的类IMemoryHeap和BnMemoryHeap,表示一原创 2021-08-18 22:23:10 · 1174 阅读 · 1 评论 -
深入对android的smali的指令解析
1.普通字段读写操作iget-object vAA,vBB,filed_id: 表示读取vAA寄存器中的对象中的filed_id对象的引用值给VBB寄存器。iget_boolean vAA,vBB,filed_id: 表示读取vAA寄存器中的对象中的filed_id的值给vBB寄存器。iget_wide vAA,vBB,filed_id :表示读取vAA寄存器中对象中的filed_id的值给vBB寄存器。 iget vAA,vBB,filed_id:表示vAA寄存器中对象的filed_id值给vBB寄原创 2021-08-08 11:09:42 · 2913 阅读 · 4 评论 -
对apk反编译的smali应用梳理总结
1.反编译apk高频出现语句const/4 v1, #int 2 表示存入int型常量2到v1,目的寄存器在第二个自己的低4位,常量2在更高的4位。const/16 v0, #int 10 表示存入int型常量10到v0中。move-object/from16 v1, v21 表示将v21寄存器中的对象引用到v1上。check-cast v4 Test3 检查v4寄存器中的对象引用是否可以转换为Test3的实例。Instance-of v0, v4, Test3 检查V4寄存器中的对象引用是否是T原创 2021-08-08 11:06:10 · 1906 阅读 · 2 评论 -
监控android内存被dump实现
监控原理通常加固会在程序运行前完成对text的解密,所以脱壳可以通过/proc/pid/mem或/proc/pid/pagemap或/proc/pid/maps,获取到加固后解密的代码内容。可以通过Inotify系列api来监控mem或pagemap的打开或访问事件,一旦发生触发了事件就结束进程来阻止android的内存被dump。代码实现//监控内存是否被修改事件void thread_watchIntifyDump(){char dirName[NAME_MAX]={0};//用于监原创 2021-08-06 11:03:04 · 2564 阅读 · 6 评论 -
so中函数断点的的反调试检测
反调试简介在apk应用的so文件中函数的指令都是固定,但是如果被下了软件断点,指令就会发生改变(断点地址被改写为bkpt断点指令),可以计算内存中一段指令的hash值进行校验,检测函数是否被修改或被下断点。实现原理当我们程序中的函数被下软件断点,则断点地址会被改写为bkpt指令, 可以在函数体中搜索bkpt指令来检测软件断电。代码实现/*参数1:函数首地址 参数2:函数size*/typedef uint8_t u8;typedef uint32_t u32;int checkF原创 2021-08-05 14:43:23 · 647 阅读 · 1 评论 -
linux中 “/dev/null” 命令的探索
文章目录1.概述12.概述2.3.命令详解1.概述1/dev/null 在linux系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。它等价于一个只写文件,并且所有写入它的内容都会永远丢失,而尝试从它那儿读取内容则什么也读不到。然而, /dev/null对命令行和脚本都非常的有用。2.概述2.通常情况下把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它原创 2021-06-08 07:31:08 · 1231 阅读 · 0 评论 -
android数据存储之SharedPreferences详解。
文章目录1.概念2.SharedPreferences应用2.1获取SharedPreferences对象的方法2.2存储数据实现1.概念1.它是一种轻量级的数据存储方式,采用键值对的存储方式。2.它只能存储少量数据,支持存储的数据类型有booleans, floats, ints, longs, and strings。3.存储到一个XML文件中的,路径在/data/data//shared_prefs/下。4.默认存储路径:/data/data//shared_prefs操作模式:MODE_原创 2021-05-29 16:03:47 · 2907 阅读 · 6 评论 -
多线程同步方法
文章目录1.互斥锁2.条件变量3.信号量1.互斥锁pthread_mutex_init(初始化锁)pthread_mutex_lock(阻塞加锁)pthread_mutex_trylock(非阻塞加锁)pthread_mutex_unlock(解锁)pthread_mutex_destroy(销毁锁)2.条件变量pthread_cond_init(初始化条件变量)pthread_cond_wait(无条件等待)pthread_cond_timewait(计时等待)pthread_con原创 2021-05-22 07:11:24 · 276 阅读 · 0 评论 -
检测xposed框架实现
更多安全技术文章,请关注“游戏安全攻防”公众号,一起学习,一起进步。直接上源码,直接看吧。private static int l(Context context) {int i = 0;PackageManager packageManager = context.getPackageManager();try {packageManager.getInstallerPackageName(“de.robv.android.xposed.installer”);i = 1;} catch原创 2021-01-13 17:09:36 · 2027 阅读 · 5 评论