安卓逆向基础(002)-android虚拟机】的更多相关文章

一, android分两种 1.Android 5.0以下(不含5.0) dalvik字节码 为dalvik虚拟机(jit机制) 基于寄存器架构 .dex=>dexopt=>.odex dalvik加载执行的odex文件 2.Android 5.0及以上(含5.0) art虚拟机(aot机制) .dex=>dex2oat=>.oat art加载执行的是oat文件 二,如何为区分是哪中虚拟机 libdvm.so dalvik虚拟机 或者/system/bin/dexopt libar…
1.在/data/app下以报名为文件夹名新建文件夹 APK包存放在这里 以及lib文件 存放so 2./data/dalvik-cache 存放dex dex是dalvik虚拟机可执行文件 3./data/data/ 存放应用数据 刚开始没什么数据 打开apk后资源释放 数据变多 4./data/system/packages.xml 系统把 apk版本 签名 内容提供者 入口点 入口界面等 放在这里 可以用来确认apk是否安装 安装流程: 复制APK安装包到data/app目录下,解压并扫描…
安卓逆向(一)--Smali基础 标签(空格分隔): 安卓逆向 APK的组成 文件夹 作用 asset文件夹 资源目录1:asset和res都是资源目录但有所区别,见下面说明 lib文件夹 so库存放位置,一般由NDK编译得到,常见于使用游戏引擎或JNI native调用的工程中 META-INF文件夹 存放工程一些属性文件,例如Manifest.MF res文件夹 资源目录2:asset和res都是资源目录但有所区别,见下面说明 AndroidManifest.xml Android工程的基础…
转载自吾爱破解安卓逆向入门教程 APK的组成 文件夹 作用 asset文件夹 资源目录1:asset和res都是资源目录但有所区别,见下面说明 lib文件夹 so库存放位置,一般由NDK编译得到,常见于使用游戏引擎或JNI native调用的工程中 META-INF文件夹 存放工程一些属性文件,例如Manifest.MF res文件夹 资源目录2:asset和res都是资源目录但有所区别,见下面说明 AndroidManifest.xml Android工程的基础配置属性文件 classes.d…
什么是Smali: 我们用工具反编译一些APP的时候,会看到一个smali文件夹,里面其实就是每个Java类所对应的smali文件.Android虚拟机Dalvik并不是执行java虚拟机JVM编译后生成的class文件,而是执行再重新整合打包后生成的dex文件,dex文件反编译之后就是smali代码,可以说,smali语言是Dalvik的反汇编语言 JAVA和Smali数据类型对比: JAVA Smali V void Z boolean B byte S short C char I int…
GenyMotion:需要VirtualBox,安装后可以选择机型,这个应该是Android for x86的一个改进版虚拟机,在原版的基础上针对不同机型用了和原机型同样的GUI,但是发现缺少了Google的框架(play store,google+,gmail, etc).很巧的是,我正好搜到一篇帖子,了解到安卓程序不能正常运行,是因为x86安卓缺少了ARM-->x86映射,并提供了解决问题的补和Google框架.Google框架的作用是读取Google Play的游戏进度,关联本地游戏.虽然…
20145307陈俊达_安卓逆向分析_APKtools分析smail 引言 真刺激呢!到了第二篇博客了,难度开始加大,之前是简单的dex2jar和有图形界面的jd-gui,现在来隆重介绍强大的反汇编工具apktool,这次开始将使用汇编的知识了 直接开始 创建一个安卓程序,emptyactivity就行,主java代码和xml布局代码如下: public class MainActivity extends Activity { private final String ACCOUNT="jcl…
Android虚拟机Dalvik Dalvik冲击 随着Google 的AndroidSDK 的发布,关于它的API 以及在移动电话领域所带来的预期影响这些方面的讨论不胜枚举.不过,其中的一个话题在Java 社区是一石激起千层浪,这就是Android 平台的基础——Dalvik 虚拟机. Dalvik和标准Java虚拟机(JVM)首要差别 Dalvik 基于寄存器,而JVM 基于栈.,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短. Dalvik和Java运行环境的区别…
一.须知 本帖适合对安卓一点基础都没有,有一定Unity基础.刚刚接完一个某文档很简单的渠道SDk,也当是自己总结一下. 二.Unity中的目录创建与理解. Plugins:插件目录,该目录再编译项目的时候会优先编译,方便项目中代码调用. Android:规定必须这样写,规范跟Eclipse中安卓保持一致.只有这样写才会被调用到. bin:存放自己编写的Jar包,注意,是自己编写的Jar包.(其实也可以放到libs中目录,我测过了,不是很重要吧) libs:第三方编译的包放在这里,一般, Ecl…
一.发现问题: 今天打开电脑发现C盘缩了不少,这才意识到:eclipse里配置的安卓虚拟机默认放在了C盘里. 当然,在不同的电脑上可能路径有所不同,我的默认路径是:C:\Users\lenovo\.android\avd\test.avd,在users下的个人用户文件夹下的.android文件夹下. 二.问题解决: 1.配置环境变量: 变量名:ANDROID_SDK_HOME 值:D:\BaiduNetdiskDownload\adt-bundle-windows-x86_64-20140702…
前言        古人常说,“熟读唐诗三百首,不会作诗也会吟”,说明了大量阅读诗歌名篇对学习作诗有非常大的帮助.做开发也一样,Android源码是全世界最优秀的Android工程师编写的代码,也是Android开发中绝对的权威所在.Android系统开源,且占据了当今手机系统世界的绝大部分江山,各大手机厂商要做手机系统定制,就必须对Android系统源码非常熟悉,这就要求他们的工程师们去熟读源码.即使是纯第三方App的开发者,要想成为Android开发真正的行家里手,也必须对系统源码有一定的研…
前言 Android虚拟机的使用,使得android应用和Linux内核分离,这样做使得android系统更稳定可靠,比如程序中即使包含恶意代码,也不会直接影响系统文件:也提高了跨平台兼容性.在Android4.4以前的系统中,Android系统均采用Dalvik作为运行andorid程序的虚拟机,在android发展中具有举足轻重的地位,而Android 5.0及以后的系统使用ART虚拟机取代Dalvik,在性能上做了很大的优化.本文将对这两款虚拟机做一些介绍,主要内容如下: 阅读本文,建议结…
参考链接:https://www.52pojie.cn/thread-395689-1-1.html res目录下资源文件在编译时会自动生成索引文件(R.java ), asset目录下的资源文件无需生成索引. 一般来说:使用C++游戏引擎的资源文件放在asset下 java开发中除音频和视频资源(放在raw或asset下),均放在res下. Dalvik字节码是什么? Dalvik是Google专门为Android设计的一个虚拟机. Dalvik VM是基于寄存器的,而JVM是基于栈的,Dal…
20145307陈俊达_安卓逆向分析_Xposed的hook技术研究 引言 其实这份我早就想写了,xposed这个东西我在安卓SDK 4.4.4的时候就在玩了,root后安装架构,起初是为了实现一些屌丝功能,比如自动抢红包,微信阻止撤回,语音可转发等效果,现在步入了SDK 6.0时代,安上了黑域还有绿色守护真的省电,尤其你在装谷歌全家桶的时候,那个是真的费电啊!这篇文章,我想写一点xposed的工作原理.在不修改APK的情况下,影响其运行过程的服务框架.可以根据自己的需求编写模块,让模块控制目标…
20145307陈俊达_安卓逆向分析_dex2jar&jd-gui的使用 引言 这次免考选择了四个项目,难度也是从简到难,最开始先写一个工具的使用 想要开发安卓首先要会编写代码,但是想要逆向分析安卓的话就要对它的输出文件结构有所了解.首先我们要先了解安卓的输出文件结构. start! 开发工具一般就是eclipse和官方的安卓studio,两者文件结构略有不同,这里用官方的安卓studio也就是IDEA IDE+SDK来进行讲解 app文件夹就是src文件夹用来存放java相关代码,就是源文件.…
之前的安卓逆向都是在Java层上面的,但是当前大多数App,为了安全或者效率问题,会把一些重要功能放到native层,所以这里通过例子记录一下使用IDA对so文件进行调试的过程并对要点进行总结. 一.IDA常用快捷键总结 Shift+F12:快速查看so文件中的字符串信息,分析过程中通过一些关键字符串能够迅速定位到关键函数: F5: 可以将ARM指令转化为可读的C代码,同时可以使用Y键,对JNIEnv指 针做一个类型转换,从而对JNI里经常使用的JNIEnv方法能够识别: Ctrl + S: 有…
因为公司推广的原因,没有合适的将苹果和安卓(ios和android)合成一个二维码的工具. 因为这个不难,主要是根据浏览器的UA进行判断,所以就自己开发了一个网站 网站名称叫:好推二维码  https://hotapp.cn,可以苹果和安卓(ios和android)合成一个二维码,方便在外面推广. 以前叫二逼二维码,考虑到二逼二维码名字不太好听,就修改为二百二维码了. 同时,因为微信不能直接下载应用,所以如果是微信扫描二维码,需要有个中间页面,提醒用户在浏览器中打开就可以下载了.…
Android虚拟机中的sqlite数据库文件 ①…
基础4 Android基础 1. Activity与Fragment的生命周期. Activity生命周期 打开应用 onCreate()->onStart()->onResume 按BACK键 onPause()->onStop()->onDestory() 按HOME键 onPause()->onStop() 再次启动 onRestart()->onStart()->onResume() Fragment的生命周期 切换到该Fragment onAttach(…
零基础学Android开发:蓝牙聊天室APP第四讲 4.1 ListView控件的使用 4.2 BaseAdapter具体解释 4.3 ListView分布与滚动事件 4.4 ListView事件监听器:OnItemClickedListener 在线收看:http://www.3g-edu.org/news/video026.htm 视频下载:http://pan.baidu.com/s/1jGkjDGE…
零基础学Android开发:蓝牙聊天室APP第二讲 2.1 课程内容应用场景 2.2 Android UI设计 2.3 组件布局:LinearLayout和RelativeLayout 2.4 TextView.EditText.Button控件 2.5 文本信息的隐藏和显示 2.6 输入和显示表情图像 在线收看:http://www.3g-edu.org/news/video022.htm 视频下载:http://pan.baidu.com/s/1mgHoObu…
Android虚拟机在支持Intel VT技术的CPU上,可以使用HAXM(Hardware Accelerated Execution Manager)得到硬件加速支持,使得虚拟机运行速度得到极大提升,速度提升5-10倍.   注意,你必须拥有一颗支持VT的CPU,这个技术是Intel的,所以AMD的CPU估计用不上了.支持VT的CPU具体可以查询http://ark.intel.com/Products/VirtualizationTechnology,一般i5以上的CPU都是没问题的.  …
百度网盘地址:https://pan.baidu.com/s/1jI4xZgE 我给起的书名叫做<深入理解Android虚拟机内存管理>.本书分为两个部分,前半部分主要是我对Linux0.11版内核的内存管理模块的深入分析:后半部分主要是对Android虚拟机Dalvik的垃圾回收机制的分析和内存管理的分析. 从2016年初开始研究Linux内核时的一脸懵逼,到现在的0.11版内核的内存管理机制应该算是非常熟悉了:2.4及以上版本的内存管理不敢说精通,但肯定是入门了.感谢自己的坚持,感谢自己对…
前几天打CTF时遇到的一道安卓逆向,这里简单的写一下思路 首先用jadx打开apk文件,找到simplecheck处(文件名是simplecheck),可以看到基本逻辑就是通过函数a对输入的内容进行判断,如果正确就弹出You get it. 我们去类a里看一下可以发现这个就是一道简单的算法 判断的条件就是在这一个循环里,可以看到成功的条件是,而iArr[]为flag : a[i2]== b[i2] * iArr[i2]* iArr[i2] + c[i2] * iArr[i2] + d[i2] a…
安卓工作室 文件浏览器 android studio  File browser 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com 点击上方菜单栏中的工具-->安卓-->安卓设备监视器 ,然后出现 安卓设备监视器 这一界面, click the Tools in the top menu bar -->Android-->Android Device Monitor , and…
本节使用的Android Studio版本是3.0.1 首先,我们先编写一个apk,后面用这个apk来进行逆向.用Android Studio创建一个新的Android项目,命名为Jhm,一路Next直到Finish. 一  修改UI界面 打开app\src\main\res\layout 目录下的activity_main.xml, ①拖动一个TextView到界面,修改ID属性为textView_JHM,text属性为“激活码”. ②拖动一个Plain Text接受输入的激活码,修改ID属性…
逆向基础(一) | WooYun知识库               逆向基础(一) | WooYun知识库 逆向基础(一)   View on drops.wooyun... Preview by Yahoo       逆向基础(二) | WooYun知识库               逆向基础(二) | WooYun知识库 逆向基础(二)   View on drops.wooyun...…
http://bbs.pediy.com/thread-218798.htm     前言 之前介绍了普通常见的反编译模式 但对于使用了 360加固 棒棒 爱加密 等等的加固应用就没办法了. 你会发现反编译出来的dex 只有几个类 逻辑都是调用so   真正的dex会被加载到内存中隐藏起来 加固应用都是多dex这种形式 要想拿到他真正的dex 需要进行脱壳处理  基本原理都是从内存中dump 我一般会先用工具来尝试 不行的话就得上 IDA(反汇编神器)超级强的一个工 具 杀手级别 贯穿移动端 P…
20145335郝昊<网络攻防>Bof逆向基础--ShellCode注入与执行 实验原理 关于ShellCode:ShellCode是一段代码,作为数据发送给受攻击服务器,是溢出程序和蠕虫病毒的核心,一般可以获取权限.我们将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出漏洞,覆盖成为指向ShellCode的地址. Linux中两种基本构造攻击buf:retaddr+nop+shellcode,nop+shellcode+retaddr,缓冲区小就把shellcode放后面,若缓冲区较…