
android逆向
文章平均质量分 80
lwanttowin
这个作者很懒,什么都没留下…
展开
-
IBinder获取手机服务信息异常
小米8 利用IBinder transact获取服务的接口名字,结果出现以下异常:W/System.err: java.lang.SecurityExceptionW/System.err: at android.os.BinderProxy.transactNative(Native Method)W/System.err: at android.os.Binde...原创 2019-12-13 18:32:53 · 2081 阅读 · 0 评论 -
lua安全之关于lua扩展第三方库
android lua require第三方扩展库有三种方式:1. 用c实现独立的lua模块作为android的第三方动态库来引入,优点是lua扩展库独立方便更新替换,缺点是需要修改虚拟机,开启宏支持dlopen调用的方式,并且还需要设置lua寻找so路径才能正确加载。具体操作流程看这里。2. 用c实现lua模块作为lua虚拟机动态库的一部分,优点代码实现简单方便,缺点是需要修改虚拟...原创 2019-11-27 20:58:57 · 1605 阅读 · 0 评论 -
Android的ELF文件重定位详解,包括64位
0x01 引言ELF文件格式,主要基于两种,一种是基于链接视图,链接视图即是基于节(Section)来进行解析,一种是基于执行视图,执行视图即是基于段(Segment)来进行解析。前一种是用于静态分析的时候,譬如IDA载入。后一种是在动态链接执行的时候,譬如linker载入。 所以修改节信息实际上是不影响ELF正常执行的,而且hook功能也只能在执行视图中进行符号解析。所以修改节信...原创 2018-08-27 11:44:25 · 2031 阅读 · 1 评论 -
无源码情况下动态调试混淆的java程序
逆向工程JAVA通常是非常简单的,因为优秀的JAVA二进制反编译器已经存在多年。类似于jd-gui工具和恢复java二进制文件源代码功能也做的非常出色的。在这种情况下我们需要动态调试java反编译java程序的情况下,可以从反编译导出然后导入java IDE如Eclipse作为一个新的java项目的一部分,然后通过IDE动态调试它,然而,这一切都基于没有混淆java字节码,因为大多数jav...翻译 2018-05-06 21:39:35 · 2576 阅读 · 0 评论 -
APK逆向之静态分析篇
0x00 APK包结构 0x11 apktool原创 2018-05-09 00:06:00 · 3840 阅读 · 0 评论 -
zlib数据格式及解压缩实现
0x01 zlib和其他压缩的魔术头一般来说压缩文件都有个魔术头,用于区分不同的压缩文件对应不同的解压缩算法。7z文件: 00000000 37 7A BC AF 27 1C 00 03 CD F7 CC 2E 66 6A 33 00 7z集' 枉?fj3 tar.xz文件00000000 FD 37 7A 58 5A 00 00 04原创 2017-12-15 13:37:18 · 16381 阅读 · 0 评论 -
openssl c++实现bouncycastle中AES加解密
0x01 为什么要用bouncycastle先说说JCE(Java Cryptography Extension)是一组包,它们提供用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现。它提供对对称、不对称、块和流密码的加密支持,它还支持安全流和密封的对象。它不对外出口,用它开发完成封装后将无法调用。由于美国出口控制规定,J原创 2017-12-15 11:05:41 · 1770 阅读 · 0 评论 -
arm shellcode 编写详析2
前一篇中介绍了arm shellcode基本用法,现在涉及到arm和thumb状态在前一篇中默认为arm32模式:text:00008074 ; Segment type: Pure code.text:00008074 AREA .text, CODE.text:00008074 ; ORG 0x8074.text原创 2017-11-26 22:05:49 · 787 阅读 · 0 评论 -
arm shellcode 编写详析1
在编写arm shell code 之前,先介绍下arm中r0-r15寄存器的主要用途:Register Alt. Name Usager0 a1 First function argument Integer function result Scratch registerr1 a2 S原创 2017-11-26 21:27:39 · 1304 阅读 · 0 评论 -
arm64动态链接库通过函数名获取函数偏移
基本思路是分析elf文件,首先遍历节区头部Elf32_Shdr查看sh_type属性值,得到属性值为SHT_DYNSYM的节区。其次通过名字遍历节区结点,找到类型为STT_FUNC并且名字与其相同的结点。代码如下:static void * xmalloc(size_t size){ void *p; p = malloc(size); if (!p) { LOGV(原创 2017-10-25 16:52:02 · 1067 阅读 · 0 评论 -
arm32和arm64常用指令B BL BLX机器码计算
现在大部分手机cpu架构是ARM v7-A和ARMV8-A,,在ARM-v7A中常使用32位ARM指令集并且支持thumb指令集与arm的切换,而在ARMV8中使用的是64位ARM指令集且不再有thumb指令集状态的切换了。在调用函数时,会有常用的调用方式:BL和B,且分三种情况arm, thumb, aarch64,而对于BLX在arm64指令集中不再有。下面对这三种情况进行讨论。A原创 2017-10-29 14:55:29 · 13476 阅读 · 0 评论 -
使用IDA Pro动态调试SO文件
(1)在IDA的安装路径中找到android_server文件。(2)将android_server拷贝到手机的/data/local/tmp目录下面。(3) 将手机插上电脑,打开命令提示符, 先输入”adb shell”,然后输入”su root”获取root权限。接着输入” chmod 777 /data/local/tmp/android_server” 给android_s转载 2017-03-14 14:32:29 · 5335 阅读 · 0 评论 -
AndroidStudio+ideasmali动态调试smali汇编
0x00 前言之前对于app反编译的smali汇编语言都是静态分析为主,加上一点ida6.6的动态调试,但是ida的调试smali真的像鸡肋一样,各种不爽,遇到混淆过的java代码就欲哭无泪了。后来知道IDEA用一款插件也可以实现smali的动态调试,但是只有14.1之后的版本才支持。idea是一款商业软件,懒得去找各种破解版,就想着用androidstudio来代替idea来达到动转载 2017-03-14 13:58:48 · 1643 阅读 · 0 评论 -
Intel Hex概述
什么是Intel Hex文件Intel HEX文件时遵循Intel HEX文件格式的ASCII文本文件。在Intel HEX文件的每一行都包含了 一个HEX记录。这些记录是由一些代表机器语言代码和常量的16进制数据组成的。Intel HEX文件常用来传输要存储在ROM 或者 EPROM中的程序和数据。大部分的EPROM编程器能使用Intel HEX文件。Intel转载 2017-02-23 21:55:38 · 6352 阅读 · 0 评论 -
android和linux操作系统的区别
Android是由Google为移动设备开发的开源操作系统。Android软件的原始开发商Android公司是由Google,Inc.于2005年购买的。它是基于Linux 2.6内核开发的。Linux操作系统于1991年由Linus Torvalds作为台式计算机的开源操作系统开发。Linux操作系统是作为MINIX操作系统开发的,不支持使用Intel 80386机器的32位功能。虽然Andro转载 2017-03-23 13:39:02 · 11632 阅读 · 0 评论 -
Android系统架构图
一、Aplications(应用层) 应用是用Java语言编写的云新在虚拟机上的程序。二、Application Framework(应用框架层) 这一层是编写Google发布的核心应用时所使用的API框架,开发人员可以使用这些框架来开发自己的应用。 View System:可以用来构建应用程序,它包括列表、网格、文本框、按钮以及可嵌入的Web转载 2017-03-23 14:49:25 · 731 阅读 · 0 评论 -
SQLite加解密
0x00 SQLite概述SQLite是一个轻量级、跨平台的,开源的数据库引擎,它在读写效率,消耗总量、延迟时间和整体简单性上具有的优越性,使其成为移动平台数据库的最佳解决方案。然而免费版的SQLite有一个致命缺点:不支持加密。这就导致存储在SQLite中的数据可以被任何人用任何文本编辑器查看到。0x01 SQLite加密工具SQLite Encr转载 2017-03-22 18:10:59 · 8821 阅读 · 0 评论 -
android studio环境搭建
一. Android Studio注意:以下安装环境要求win7系统和intel处理器https://developer.android.com/sdk/index.html首先在这里下载android-studio-bundle-141.2288178-windows.exe二.JDKhttp://www.oracle.com/technetwork/j原创 2016-12-09 11:34:38 · 715 阅读 · 0 评论