安卓逆向
文章平均质量分 62
西子云齐
自律即自由
展开
-
IDA动态调试之生成so文件
1.配置MainActivity.javapackage xiziyunqi.myapplication;import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log;public class MainActivity extends AppCompatActi原创 2017-08-18 13:14:30 · 690 阅读 · 0 评论 -
反编译利器Apktool和Jadx源码分析以及错误纠正
1、QQ报了这个错误: Exception in thread “main”brut.androidlib.AndrolibException:Multiple res specs:attr/name这个主要是因为QQ利用了apktool的一个漏洞,做了属性id的混淆2、支付宝报了这个错误 Exception in thread “main”brut.androlib.AndrolibExcep转载 2017-08-24 15:22:22 · 504 阅读 · 0 评论 -
Android逆向之旅—解析编译之后的AndroidManifest文件格式
转载自: http://www.wjdiankong.cn/android%E9%80%86%E5%90%91%E4%B9%8B%E6%97%85-%E8%A7%A3%E6%9E%90%E7%BC%96%E8%AF%91%E4%B9%8B%E5%90%8E%E7%9A%84androidmanifest%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F/格式解析第一、头部信息转载 2017-08-30 14:17:38 · 913 阅读 · 0 评论 -
Android中AndroidManifest ARSC 二进制文件修改器AXMLEditor
第一、删除属性每个标签中的属性值都是存放在标签块(StartTagChunk)末尾的。每个属性是5个字段,每个字段是4个字节。所以一个属性20个字节。 所以如果我们要删除一个属性,需要这些条件:1、属性所属的标签名称,标签唯一id也就是name值。比如我们想删除xxx.xxx.Activity标签的一个属性,那么得知道是activity标签,然后是name值找到唯一的标签2、属性的名称通过标签名和转载 2017-08-30 16:02:29 · 1840 阅读 · 0 评论 -
as2.3常见错误
参考:将Eclipse代码导入到AndroidStudio的两种方式 版权声明: 1. 新用户 如果项目中有.idea之类的IntelliJ的文件,开始选择的应该是Open an existing Android Studio project,而不是Import Non-Android Studio project。 如果你下载下来的代码里面只有gradle的文件,即使还是原创 2017-08-30 17:47:07 · 326 阅读 · 0 评论 -
Android版本的”Wannacry”文件加密病毒样本分析(附带锁机)
一、病毒样本分析 点击免费激活,出现授权界面: 需要设备管理器,是想修改锁机密码,我们就授权,然后分析程序找到重置的密码就好了;授权之后,就被锁屏了,解锁屏幕会出现: 病毒作者真够狠的,竟然自己弄了一个浮窗锁机,这时候我们不得不看代码了,找到这个密码了。其实该锁机很容易解决的,因为他主要是借助windowmanager搞的,所以这时候可以连接adb使用转载 2017-08-31 21:08:51 · 2699 阅读 · 2 评论 -
AD--vx
一、猜想数据存放路径查看微信的databases目录看看内容: cd /data/data/com.tencent.mm MicroMsg目录比较特殊: cd MicroMsg 在52fd7a8329ed15872eb4ec82b5ebc5cf目录中找到了一些db文件: EnMicroMsg.db //比较可疑 SnsMicroMsg.db 这里可以直接使用SQLiteExpert可视转载 2017-09-01 11:06:23 · 390 阅读 · 0 评论 -
apkk
一、穿靴子的猫1.反编译后在values/strings.xml文件中找到“好友代付”这个字符串内容,看到这个字符串的id是:gc_billing_net_contacts,这里可以不用在通过public.xml中的id值转化得到对应的int类型值,再去搜索了,可以直接到jadx中进行搜索“gc_billing_net_contacts”即可。2.这里看到有一个BillingView类,从命名bil转载 2017-09-02 09:47:17 · 1231 阅读 · 0 评论 -
基于对so中的section加密技术实现so加固
一、技术原理加密: 在之前的文章中我们介绍了so中的格式,那么对于找到一个section的base和size就可以对这段section进行加密了 解密: 这里的重点是什么时候去进行解密,对于一个so文件,我们load进程序之后,在运行程序之前我们可以从哪个时间点来突破?这里就需要一个知识点: attribute((constructor)); 该属性作用很简单,就是优先于main方法执行,转载 2017-09-12 09:40:33 · 547 阅读 · 0 评论 -
脱掉“爱加密”家的壳
一、案例分析第一步:反编译解压apk得到的classes.dex文件,得到java源码。 看到,这里只有Application的壳,而且这个是爱加密加固之后的特点,都是这两个Application的。第二步:使用apktool反编译apk,获取资源文件信息分析一下加密流程:爱加密把我们的源程序进行加密操作然后隐藏到了一个地方,在之前破解加固apk的那篇文章中也说过了,隐藏的地方就那么几个:as转载 2017-08-24 00:29:42 · 3624 阅读 · 0 评论 -
安卓四大组件(二)
Activity 应用程序中,一个Activity通常为一个单独的屏幕,其上可显示控件也可以监听并处理用户事件作出响应。Activity通过Intent通信。Intent有两个重要部分:动作和动作对应的数据。典型动作:MAIN、VIEW、PICK、EDIT等。动作对应的数据则以URI形式进行表示。 pl(看一个人的联系方式): 类型为VIEW的intent,以及一个表示这个人的URI。Inte转载 2017-08-23 22:51:38 · 183 阅读 · 0 评论 -
如何脱掉“梆梆加固”的保护壳
一、jadx分析 1.在source code中的包名看到是梆梆加固(得先脱壳了) (哦!receiver可以用来提示请求获取permission)2.清单文件看到利用了设备管理器权限,来强制修改了系统密码来做的,我们通过打开软件也可以确定这点: 看到了,他申请了设备管理器权限,而这个权限用过的同学都知道,当获取到这个权限之后可以控制这个设备了,包括修改系统密码。而这个软件也是利用这转载 2017-08-23 17:55:41 · 3795 阅读 · 0 评论 -
开始破解so文件
第一、利用IDA静态分析native函数1.isEquals函数分析 函数指令代码: 简单分析指令代码: 1>、PUSH {r3-r7,lr} 是保存r3,r4,r5,r6,r7,lr 的值到内存的栈中;与之对应的是POP {r3-r7,pc}pc:程序寄存器,保留下一条CPU即将执行的指令 lr: 连接返回寄存器,保留函数返回后,下一条应执行的指令2>、调用strlen,malloc,st转载 2017-08-18 14:50:44 · 30693 阅读 · 2 评论 -
IDA远程调试
转自: http://www.cnblogs.com/shaoge/p/5425220.html 1. 1.把ida 目录下android_server 传到android 目录中 如: adb push android_server /data/local/tmp/ adb shell 进入模拟器 cd /data/local/tmp/ chmod 755 android_ser转载 2017-08-18 19:24:32 · 641 阅读 · 0 评论 -
apk反编译常见工具
1. aapt l -a xx.apk > AM.txt start AM.txt 得到androidManifest.xml信息。原创 2017-08-21 11:34:20 · 210 阅读 · 0 评论 -
Android系统篇之—-Binder机制和远程服务调用机制分析
一、前言 可以不用在AndroidManifest.xml中声明这个Activity即可运行,主要是通过骗取系统,偷龙转凤的。过程中遇到了很多知识点,当然最重要的也是最根本的就是Android中的Binder机制和远程服务调用机制。二、具体需求 接下来几篇主要是介绍关于Android中的应用启动流程,通过Hook机制拦截Activity的启动流程,达到我们想要的功能,同时可以实现Activity转载 2017-08-25 10:41:01 · 232 阅读 · 0 评论 -
360packbao and analyse
一、pack分析现在部分app使用360pack都使用了解析执行,所以写一个简单的demo进行学习。 pack前demo中的onCreate函数smali显示如下图:# virtual methods.method protected onCreate(Landroid/os/Bundle;)V .registers 3 .param p1,"saveInstanceState"转载 2017-09-04 15:04:34 · 398 阅读 · 0 评论 -
动态方式破解apk前奏篇学习笔记
一、下关键断点1.使用自带的View分析工具找到BUtton的ResId 可以看到控件的属性值。2.1在smali工程中全局搜索这个值,就可以定位到这个button的定义的地方。2.2也可以在反编译之后的values/public.xml文件中找到,这个文件很有用的,他是整个apk中所有资源文件定义的映射内容: 这个文件很重要,是我们在寻找突破口的重要关键,比如我们有时候需要通过字符串内转载 2017-08-15 17:02:12 · 347 阅读 · 0 评论 -
破解一款永久免费网络范文工具
这里会对服务器下发数据进行解密:try{ Map b=i.b(a.b(a.b(new String(bArr,"utf-8"))); Log.d("MainActivity","get config ok:"+b);看看解密算法实现:public static String b(String str) throws Exception{ String str2=null;转载 2017-09-13 10:23:54 · 662 阅读 · 0 评论 -
运行时修改内存中的Dalvik指令来改变代码逻辑
一、前言 最近在弄脱壳的时候发现有些加固平台的加固方式是修改了dex文件结构,然后在加载dex到内存的时候,在进行dex格式修复,从而达到了apk保护的效果,那么在dex加载到内存的时候,如何进行dex格式的修复呢?其实原理就是基于运行时修改内存中的Dalvik数据,本文就来用一个简单的例子来介绍一下如何在内存中去修改Dalvik指令代码来改变代码本生的运行逻辑。 首先来说一下案例场景:转载 2017-09-13 11:12:02 · 1041 阅读 · 0 评论 -
Android中的Apk的加固(加壳)原理解析和实现
加壳原理: 将源apk加密和壳Dex(负责解密)合并成新的Dex。 主要步骤: 用加密算法对源apk加密;再与壳apk进行合并得到新的Dex文件,最后替换壳程序中的dex文件即可。 他的主要工作是:负责解密源apk,然后加载apk,让其正常运行起来。 问题:如何将源apk和壳apk合并成新的dex。Dex文件:1、jd-gui:可以查看jar中的类,其实他就是解析class文件,只要了解c转载 2017-08-19 22:39:38 · 356 阅读 · 0 评论