自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (4)
  • 收藏
  • 关注

原创 Android各厂商Rom包解压方式

大体流程:具体操作以及命令:1.小米解压刷机包zip文件后(1)先将br转成datbrotli.exe -d system.new.dat.br$ file system.new.datsystem.new.dat: Linux rev 1.0 ext2 filesystem data, UUID=4729639d-b5f2-5cc1-a120-9ac5f788...

2020-04-27 18:06:02 8689

原创 防内存dump

挂起进程:kill -19 $pid恢复执行:kill -18 $pid

2019-11-07 14:55:06 1099

原创 ida调试

commands:adb forward tcp:12345 tcp:12345adb shell am start -D -n com.demo.app/.MainActivityadb -d forward tcp:8700 jdwp:$PIDadb -d forward tcp:8700 jdwp:18428 && jdb -connect com.sun.j...

2019-09-05 22:25:41 518

原创 让App吐出自己的Crash信息

某App启动后Native层就会Crash,但是由于它集成了google_breakpad,将Native层的异常全部捕获并处理了,所以看不到任何的异常信息,只有这么一段:06-24 14:22:45.165 570 570 I Zygote : Process 7047 exited due to signal (11)通过分析它是集成了google_breakpad,于是找...

2019-06-25 11:22:54 610

原创 同盾sdk获取局域网内其他设备的Ip和Mac

同盾sdk代码:static String gqgggggg9q9qqggqq() { String str; int i = 0; try { BufferedReader bufferedReader = new BufferedReader(new FileReader("/proc/net/arp")); ...

2019-06-21 23:45:36 1094

原创 Android基于LLVM的Native层代码混淆

1.采用LLVM进行Native层代码混淆,先看一下混淆的效果混淆之前的函数:混淆之后的函数:混淆后的函数体几乎变得无法阅读!2.再看文件大小变化:混淆前:混淆后:3.如何集成:首先下载源码并编译,参考:https://github.com/obfuscator-llvm/obfuscator/wiki/Installation下面是实际用...

2019-04-12 18:19:00 4691

原创 编译Android 9.0内核源码并刷入手机

目的:修改内核源码,并刷入手机步骤如下:1.获取手机对应的内核下载地址参考https://source.android.com/setup/build/building-kernels我的设备是pixelsailfish,所以对应的源码地址是kernel/msm,编译配置是marlin_defconfig使用git下载:git clone https://aosp...

2019-01-07 15:23:02 15818 1

原创 Background execution not allowed-----解决8.0以上发送的隐式广播无法被收到

target>=26时,APP发送的隐式广播连自己也收不到,0上限制。报错log如下:08-23 21:45:38.271 1207 1225 W BroadcastQueue: Background execution not allowed: receiving Intent { act=com.xxx.xxx flg=0x10 (has extras) } to com....

2018-09-12 18:55:53 11499 4

原创 VirtualApp 9.0适配

non-sdk如何绕过可以参考前一篇最终通过hook GetMemberActionImpl()函数来绕过了检查。但是hook libart.so的过程中,需要对so的函数地址进行修正,否则会导致hook不到。 已经将hook绕过API检查做成了java版的sdk,可以从这里获取https://github.com/xxxyanchenxxx/VirtualAppEx/tree...

2018-09-04 18:52:54 11409 5

原创 深入源码分析non-sdk并绕过Android 9.0反射限制

Android 9.0终于来了,non-sdk或许是我们最大的适配点。本文将分析non-sdk的原理以及如何绕过它继续反射调用系统私有API。 先看一段简单的反射代码: Class<?> activityThreadClass = Class.forName("android.app.ActivityThread"); Met...

2018-08-11 17:18:22 9279 6

原创 Android中如何开启变态混淆防止被反编译

效果图:比a,b,c这样的爽多了吧,即便被别人反编译,要想看懂你代码,估计也得骂会娘。如何操作:1.proguard-rules.pro中增加下面2项配置#混淆变量&函数-obfuscationdictionary guard_ex.txt#混淆类名-classobfuscationdictionary guard_ex.txt2.生成我们的字典guard_ex.txtimport ...

2018-06-28 19:05:55 4730

原创 Xposed hook动态加载的class

最近用Xposed hook QQ的一些class,总是hook不到。问题根源是ClassLoader不对,因为那几个class是动态加载进来的。通过先ClassLoader.loadCLass则可以很轻松的拿到想要的classLoader对象 XposedBridge.hookAllMethods(ClassLoader.class, "loadClass", new XC...

2018-06-07 14:04:49 12902 4

原创 修复apktool回编译时被AndroidResGuard处理过的APK报错问题

修复apktool回编译时被AndroidResGuard处理过的APK报错问题:No resource identifier found for attribute 'layout' in package 'com.tencent.mm'No resource identifier found for attribute 'key' in package 'com.tencent.mm'.......

2018-04-25 15:01:15 4203

原创 解决微信打包报错:invalid symbol: 'do'以及invalid symbol: 'if'

第一种解决方式:自己编译aapt,比较麻烦。第二种解决方式:替换do&if,也比较麻烦。第三种:二进制修改appt,比较简单。如下是针对linux平台的aapt修改.1.解压出apktool.jar中的aapt,并使用vim打开:vim -b prebuilt/aapt/linux/aapt2.切换到16进制::%xxd3.搜索"abstract"关键字定位到do&if位置,下图红...

2018-03-09 14:59:48 3808

原创 一键绕过App签名验证

Hook了PackaegManager,返回我们指定的签名地址:https://github.com/xxxyanchenxxx/SigKill

2017-12-11 16:57:46 18099 8

原创 Hook IME,进行键盘记录或输入控制

https://github.com/xxxyanchenxxx/HookIME

2017-12-04 11:33:45 3812 2

原创 QQ数据库破解

微信的数据库解密文章已经满天飞了,QQ的却比较少,不知为什么....QQ数据库主要放在dabases/xxxxxxx.db(xxxx为你的qq号)中,数据库并没有加密,但是某些数据字段加密了。通过Xposed等动态调试,扣出了QQ的解密算法,github地址:https://github.com/xxxyanchenxxx/QqDecrpt

2017-11-28 15:53:43 20583 11

原创 基于Android的http&https中间人攻击

本文所说的中间人攻击是在同一台Android手机上,监听其他App的网络流量,支持http&https.原理:通过创建VPN拿到其他APP的所有网络流量。https部分则是通过导入自己的CA,去过https证书验证。主要技术难点:1.通过VPN,拿到的是一个个的IP层数据包,比如sync包,fin包,psh包等,需要自己做好状态维护2.仅针对http的处理还不是很难,但是对Http

2017-10-13 10:45:35 5368

原创 如何监听彩信的发送

短信的接收和发送,有Broadcast发送出来。而对于彩信,接收时有Broadcast,但是发送时却没有。大概看了下彩信MMS的发送流程,发现可以通过监听android.net.conn.CONNECTIVITY_CHANGE这个广播来监听彩信的发送。下面是流程分析发送彩信最终会调用com.android.mms.transactionTransactionServ

2016-08-16 18:15:00 5093

原创 如何从OAT文件中提取dex文件

背景:   因为想分析下中兴某5.0上的Framework   通过adb pull /system/framework拿出来后,发现那个文件是oat格式的。目的:从这个oat文件中提取dex文件.如果对OAT文件格式有所了解的话,就知道它其实包含了完整的odex文件,而odex又包含了dex.所以我们只需要从这个文件中把dex抠出来,就可以进行各种反编译了

2016-07-01 15:31:09 7694 3

原创 重打包资源报错解决

遇到的APK可以正常反编译,打包时会出现如下错误:I: Using Apktool 2.1.1I: Checking whether sources has changed...I: Smaling smali folder into classes.dex...I: Checking whether resources has changed...I: Building resour

2016-06-15 18:51:49 6378 1

原创 使用IDA从内存中dump指定的dex

虽然自己编译了一套能够简单够脱壳的坏境,不过使用上总感觉比较重量级。今天只想把APK中某个动态解密,加载的dex搞出来,用IDA轻快很多。步骤1:首先通过cat /proc/pid/maps查看目标dex文件所在的内存地址:可以看到我们的起始地址是:5faa2000                            结束地址是:5fb36000

2016-05-09 21:32:32 14301 1

原创 常用的Smali代码

每次都去网上找,太麻烦了。所以把最常用的做个记录,省的以后到处找。java代码: private void log(){ Log.e("my_tag", "log-test"); } private void logCallStack(){ Log.e("call stack:",Log.getStackTraceString(new Exception()));

2016-05-07 22:43:05 6338

原创 JNI中如何打印Call Stack

NDK里面好像没有专门打印Call Stack的函数,正好又要用到这个功能,Google了一翻,可以用stack unwind相关的API实现。关于什么是stack unwind的解释如下:http://www.ibm.com/support/knowledgecenter/SSAE4W_9.0.0/com.ibm.xlcpp111.aix.doc/language_ref

2016-03-28 22:14:25 6616 1

原创 5.0上禁用手机移动数据上网调研

背景:    在4.4以及之前的手机,可以通过反射调用ConnectivityManager#setMobileDataEnabled()设置手机是否允许使用手机流量上网。   而到了5.0+,这个API已经被移除了。主要就是为了调研在5.0上如何实现,算是一个小调研吧。调研结果:在5.0上,取而代之的是TelephonyManager#setDataEnabled()

2016-03-22 18:22:48 7028 1

原创 关于Android APP在线热修复bug方案的调研(三)(集成Nuwa遇到的坑与解决)

集成了有段时间了,遇到的坑也比较多。总的来说就是这套框架还不成熟,可能是没有经过实际运行的检验吧,另外也不支持ART。集成需要很小心,稍不注意可能就会惹得一身骚。下面算是集成的一些总结吧。1.hotfix适用范围: 1. 对于要修改到resource级别的change不适用比如:要修改到string.xml或者layout.xml等,就不能应用到补丁检测

2016-03-14 17:33:38 6170 7

原创 编译Android 5.1.1源码

编译的基本命令:. build/envsetup.sh lunchmake -j8很明显,第一次编译会遇到各种各样的问题,通过搜索引擎找到答案,需要先安装某些软件,于是把一口气这几个装完sudo apt-get install lib32z1-devsudo apt-get install bisonsudo apt-get install libswitch-perl

2016-02-25 12:26:57 2746

原创 去除某Launcher App的包名保护与签名保护,进行逆向开发

这个App没有加固,但在so中有包名验证以及签名验证。下面是保护的代码:签名签证并不是一个直接写死的值,懒得去深究它的验证方式。最简单的思路就是直接给他一个正版的签名值给他慢慢验证~~~下面是实现:对so进行如下修改,让它调用自己的函数进行验证:第一个修改用于绕过packageName的验证,第二个修改则用于绕过签名的

2016-02-17 18:12:20 2078

原创 Android中如何禁用其他应用,并且不在桌面显示

1.首先需要系统签名。2.达到的效果:应用被禁用后,图标也从桌面上消失。3.参考Settings源码,实现的代码如下:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testdiableapp" android:versionC

2016-02-16 14:32:15 13237 4

原创 如何对自己的App进行系统签名,并安装到手机运行

背景:某些App需要一些权限比较高功能,比如管理其他进程,静默安装(貌似辅助功能也能实现)等,可能需要把自己定义成为系统APP,也就是sharedUserId="android.uid.system",这就要用到系统签名。虽然最后签名是与不同的手机厂商合作的,可是在开发的工程中,如何用系统签名文件签名进行测试呢?虽然源码里面能够找到签名文件platform.x509.pem/pla

2016-02-15 18:17:44 6910

原创 如何让模拟器加载自己的Room

背景:     比如要修改系统源码,修改后如何让模拟器加载呢?第一步:首先创建模拟器配置~/Dev/android-sdk-linux/tools/android avd第二步:加载自己的image文件: ~/Dev/android-sdk-linux/tls/emulator -system system.img -ramdisk ramdisk.im

2016-02-13 22:48:56 2424

转载 Android 中如何计算 App 的启动时间?

原文地址:http://androidperformance.com/2015/12/31/How-to-calculation-android-app-lunch-time.html1 应用启动场景事实上 Android 中一个 App 的启动时间可以准确计算的.但是要分场景.也就是说要分开游戏和应用. 大家都知道,在Android中,游戏开发和应用开发是

2016-01-05 10:44:10 1124

原创 某理财APP多开器的思路(二)

为毛上次写了多开器的思路,没几天APP就升级了,而且之前的方式也不管用了。。IDA看了so里面的变化,NND,这次除了检查签名,还会检查packageName,并且后续的其他操作也会用packageName来组合路径。这样之前的方式就不行了,直接传目标的context,会导致它所有数据操作都不是用的自己的/data/data/packageName下的,而失败。我想要什么?

2015-12-25 16:02:42 1578 1

原创 关于Android APP在线热修复bug方案的调研(二)(MultiDex的原理分析---Nuwa)

通过上一篇的分析,目前bug在线热修改的主要两套框架AndFix与Nuwa.上篇文章也对AndFix的机制进行了分析。那么这两套框架该如何选取呢?从目前的测试来看,Nuwa的支持似乎要比AndFIx好一些。下面是我的测试,添加了一个静态的字段:通过AndFix来制作patch会直接报错:而使用Nuwa来制作Patch则没有问题,能够正常运

2015-12-16 17:21:40 3510

原创 关于Android APP在线热修复bug方案的调研(一)(AndFix)

调研背景:     App发布出去后,如果发现有紧急或重要bug如何进行修复呢?     重新发布一版APK?但这样代价太大....      那么有没有一种方案能够不用更新整个APK,而只把服务器上的很小的补丁文件下载下来进行修复bug呢?      本文的调研也正是为了解决该问题。几种解决方案对比:      其实这也属于Plugin开发的一种方式,只是更侧

2015-12-15 16:38:12 3054 6

原创 发送http包命令---curl

使用抓包工具如Http Analyzer或者Firefox的F12都可以修改数据包,再发送。但有时候会比较坑,最近遇到的一个问题是Firefox的中修改cookie后无任何的效果,再怎么修改,发送时还是修改之前的的cookie.而用Http Analyzer发送过去总是提示没有登录。最后用curl来发送,没有问题,还是这个命令比较靠谱些。命令介绍:http://www.

2015-12-14 14:11:27 3078 1

原创 VMWare下桥接模式上网设置

使用桥接模式也就是把虚拟机当做局域网中的一台主机,对于抓包等比较方便。基本的设置:http://blog.csdn.net/gavin_dinggengjia/article/details/6325904需要注意的几个点,每次开机使用时基本都会有这三个步骤,否则VM可能不能上网。1.Windows下要要设置共享2.查看windows ip:

2015-12-13 00:41:23 785

原创 分析 Package manager has died

这是今天遇到的一个issue,由于Binder造成的。虽然比较简单,还是保持记录下吧。先来开看一下Crash log:E/HpnsService(24810): HPNS Version is 5.0java.lang.RuntimeException: Package manager has diedE/HpnsService(24810): at android.app.Applicati...

2015-12-03 16:22:21 18087 9

原创 AIDL中的in,out,inout

in, out, inoutUnlike Java there are three directional tags that can be specified in the method prototypes when defining an AIDL interface. These tags indicate which way the data will go. Let’s see a

2015-12-01 00:26:36 632

原创 某理财APP多开器的思路(一)

在玩的一款P2P理财产品是:网信理财现在每天每个帐号有1.5的红包,那如果有多个账户就得不断的切换,很是麻烦。于是想是否可以搞个多开器玩玩?说做就做.....搬出ApkTool神器,试了下,解压,打包没有防护,顿时信心大增。但是在安装运行时,有签名验证保护。经过分析验证是在.so中进行的,它会将签名等信息上传到服务器上进行验证。由于现在是

2015-11-24 12:17:20 1659

curl for android

Android默认不带curl,本来想执行这条命令,结果网上找了一遍也没有编译好的可执行文件。于是下载源码编译。附件中包含了curl的可执行文件,静态库,头文件等。在Android 9.0上亲测可用。

2020-04-22

gitchat_demo

gitchat :Android 中的那些 Hacker技术 相关demo,微信自动运动。

2018-07-26

apktool_2.0.3_过滤do&if;.jar

apktool_2.0.3_过滤do&if;.jar 解决微信: invalid symbol: 'do' invalid symbol: 'if'

2018-03-09

禁用其他应用,并且不在桌面显示

禁用其他应用,并且不在桌面显示 。 http://blog.csdn.net/xxooyc/article/details/50674333

2016-02-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除