自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (5)
  • 收藏
  • 关注

原创 Google在架ab包分析-巴西

同样在so的导出函数里面可以直接找到Java_com_vdsfwe_gdsrew_dsfgdsfds_HttpsStartRun_run 函数。再次回到so 找到Java_com_vdsfwe_gdsrew_dsfgdsfds_HttpsEndRun_run。直接联网请求获取b面地址,用的是三方的api,mockapi.io,请求返回的b面地址和adjust事件码。用的三方api ,ip-api.com 查询ip归属地,判断countryCode。10w+ 下载量,在架2周。joinB 就是进b面,

2025-04-28 11:28:36 180

原创 Google在架包分析-印度2

入口是CordovaActivity ,那就是Cordova 加载的h5 ,可以推断Assets目录下的加密文件是h5。因为已经大概猜到了so的作用是解密Assets目录下的文件,就简单看下so,直接jeb看懒得开ida了。因为A面小游戏一般都是非常简单的单机游戏,所有抓到的请求一般就是获取b面地址的或者直接是跳转b面的。定位到请求的代码,注释的代码是b面地址 和上面抓包返回的地址一致。调native方法,估计就是解密Assets目录下文件的。果然就是解密Assets目录下的文件的,算法是xxtea。

2024-12-19 11:35:48 176

原创 Google在架包分析-印度1

包里面直接有adjust ,那应该就不是像巴西的那种加载子包的方案了,应该是直接集成的包。直接请求得到一个js 文件,看了下没啥用,全是垃圾代码。想到应该是有判断ip,根据ip归属地返回不同的js文件。还是同样的请求,这次就返回了进b面的核心代码的js文件。代码很清晰,还有注释,这个没啥好分析的,代码简单明了。巴西市场感觉不行了,没啥包了,找个印度市场的包分析。看包结构 cocos 打包的 Android h5。没别的代码了,那ab切换肯定是在 h5 的代码里面。因为是印度市场的包,挂印度代理试下。

2024-12-18 18:02:20 392

原创 Google在架包分析-巴西8

ContentProvider 的 onCreate 是代码入口,启线程加载so,调用native方法。看到apk 大小就感觉是之前分析过的方案,jeb看了下代码果然是的。Assets 下的data.db 是加密的子包文件。so的代码和之前分析的包基本的一样的。桌面棋牌榜看到这个兔子包。

2024-12-18 10:53:25 234

原创 Google在架包分析-巴西7

1、获取NetworkInterface.getName 判断是否有"tun" 或 “ppp” , 就是判断是否挂代理。index.css 文件jeb 解析是正常的css文件,看不出来是加密的子包文件,丢到010Edit就能看到了。取css后的数据 base64 解码后存到 Zesty.css。读取Assets目录下的www/css/index.css。丢到jeb大概看了下就发现是之前分析过的方案。请求有检测ip,必须巴西ip才能返回b面地址。正常的css 文件 ,后面写入的加密数据。

2024-12-17 17:56:39 536

原创 Google在架包分析-巴西6

代码里没有adj 和af 这些sdk ,估计又是一个加载子包的方案,不同是放到unity代码里去加载子包。从私有目录下的files 里面找到b面子包文件。jeb 反编译apk 看了下是unity的包。休息游戏榜里找的一个老虎包。有adjust 和 af。看着运行是直接进b面。请求里面获取b面地址。

2024-12-17 11:28:22 320

原创 Google在架包分析-巴西5

这个方法的执行时机是Application attachBaseContext 之后,Application onCreate之前。1、代码入口是一个ContentProvider 的onCreate。这个包方案和之前分析的巴西2 ,巴西3 是一套方案,这里就不分析了。安装运行又是直接进B面了,再大概看了下,又是之前分析过的方案。比之前放在Application 执行,隐蔽性稍强。今天在冒险游戏里面看到一个牛头很显眼,就选择它了。从Assets下读取加密的子包文件解密加载。3、so加载B面子包。

2024-12-16 15:23:23 139

原创 frida hook DexClassLoader导出子包

这里是一个通用的模版,可以根据hook的apk 按需求修改,这个会hook非常多的class, 可以按需求判断loadClass 后再去保存dex。逆向分析的时候会碰到有些apk会动态加载子包,加载完之后就删掉,导致没办法找到子包进行分析。于是写了一个frida 脚本,获取动态加载的子包重命名报错,这样就不会被删掉。

2024-12-14 17:53:39 308

原创 frida打印日志字体加颜色

平时写frida hook 脚本,有时打印出来的日志太多都是一个颜色不美观。logWithColor(“log带颜色” , GREEN);于是找AI 问了一下frida打印日志字体加颜色的方法。// ANSI 转义码。

2024-12-14 17:44:53 196

原创 Google在架包分析-巴西4

FManager 就是B面集成的常规套路了,调adjust ,调webview 加载b面地址,然后提供js接口这些东西。安装运行,刚开始还是进的A面小游戏,然后我说来抓个包看下,重新打开了一下app,结果直接就B面了,给我整不会了。和第一个子包差不多一样的流程,timeFun时间更早了一些,第一个时间判断过了这里肯定也是能过了。1、根据isDown 的值判断是否需要下载第3个子包,1 是不下载,其他值则是下载。第3个子包就是B面集成包了,有adjust ,webview 这些必不可少的东西。

2024-12-14 17:26:47 1922

原创 Google在架包分析-巴西3

简单的看了下,发现和上一个分析的包是一样的方案,应该是一家公司做的包。这个包是在应用榜找的,也是看图标很显眼就选择了它。一样的方案就不继续分析了,直接看上一篇就行了。

2024-12-14 10:43:14 342

原创 Google在架包分析-巴西2

私有目录的flies目录下找到子包apk文件 CommonLawTextbook , 可以看到Assets目录下的wisdom-wits.db 文件和 CommonLawTextbook 大小一样。说明wisdom-wits.db 是 子包的加密文件,从Assets目录下读取wisdom-wits.db 解密得到 CommonLawTextbook 子包apk , 这点和上一篇分析的包的逻辑差不多,都是加载资源文件解密得到apk 子包。发送请求,从服务端获取b面地址,切b面的判断在这个请求的参数里面。

2024-12-14 09:54:53 1273

原创 Google在架包分析-巴西1

初始化adjust , 启线程发送请求,从返回值里面解析得到b面地址,然后webview 加载b面地址。Assets 文件下一看就是cocos 打包的h5 小游戏,用Cordova框架加载的。包是前几天挑的,上点点数据-巴西游戏榜赌场游戏-人气蹿升里面找的一个包。调用a.r 读取子包文件,文件放在cocos游戏的资源目录下面。在该包的私有目录下找到生成的子包apk文件 , 直接导出来分析。1、安装运行看下,直接进的a面小游戏。正常进小游戏就完了,后面又启个线程肯定是进b面的。随便挑都是ab面的,懂的都懂。

2024-12-12 16:45:27 1055

原创 js逆向初探- Android h5逆向分析

主要就是通过webview 加载本地 h5, 另外这个包是使用cordova 三方框架加载的h5 , 核心还是调用的webview加载。安装Debugger for Chrome 扩展,这步可忽略,一般已经安装js debug扩展。在您的 JavaScript 文件中,单击行号左侧的空白区域以设置断点。使用 File -> Open Folder 打开您的项目文件夹。Chrome 的开发者工具(按 F12 或右键点击页面并选择“检查”)1、apk解压导出www文件夹, 在项目目录中打开命令行或终端。

2024-12-12 15:33:29 1471

原创 Native开发与逆向第七篇 - base64

本文主要是逆向分析Base64编码过程。通过自己写demo实现Base64编码,然后通过IDA逆向so分析其流程。

2024-11-27 18:39:04 733

原创 Android逆向题解- Phishing is not a crime-2

signed_body” 的值是调用下面这个b方法加密的,b方法又调用的getSignatureString方法。继续分析 getSignatureString方法,是一个native函数,在stings.so里。hook crypto_auth_hmacsha256_init 打印第2个参数的值。先hook 下b方法打印下参数和返回值看看加密内容。根据题目意思 搜索"signed_body"尝试几次这个加密结果是变化的不是flag。

2024-11-27 14:48:03 436

原创 Android逆向题解- ill-intentions

android hooking watch class_method xxx --dump-args --dump-backtrace --dump-return 打印参数返回值。IsThisTheRealOne 是正确的activty ,flag 是 CTF{IDontHaveABadjokeSorry}android intent launch_activity XXX 启动指定Activity。Send_to_Activity 分别启动3个Activity。使用objection 即可。

2024-11-26 15:24:38 477

原创 Android逆向题解-APK逆向2

AndroidManifest文件格式

2024-11-26 15:23:36 432

原创 base64逆向

base64逆向分析

2024-11-25 12:23:00 477

原创 TEA加密逆向

TEA加密代码逆向

2024-11-25 12:04:20 584

原创 Android逆向题解-攻防世界- easy-app(太湖杯)

Android逆向so分析TEA算法和魔改base64算法;利用sktrace配合arm指令逐行分析代码逻辑。

2024-11-23 19:06:59 1187

原创 长安车机安装三方app记录

车机安装三方app

2024-09-23 18:32:09 2766 3

原创 Native开发与逆向第六篇 -字符串加密与hook

Module.getExportByName 通过导出函数名hook,当然也可以计算地址hook。hook StrToHex 和 HexToStr 这两个函数打印字符串。写一个简单的字符串加密处理,将字符串字符转成ASCII十六进制值。转换后:48656C6C6F2066726F6D20432B2B。运行打印结果:可以看到参数1就是明文字符串。我这里还顺带hook打印了sp 和 x1。明文:Hello from C++找到这两个函数的导出函数名。

2024-08-31 15:43:03 798

原创 Native开发与逆向第五篇 - hook log打印

新建native项目,实现log打印字符串。

2024-08-31 11:19:47 379

原创 Native开发与逆向第四篇 - hook JNI函数GetStringUTFChars

通过GetStringUTFChars 获取java层传入的字符串参数。目标hook GetStringUTFChars 打印字符串。运行打印结果:参数和返回值都正常打印出字符串。

2024-08-31 09:37:39 498

原创 Native开发与逆向第三篇 - hook JNI函数NewStringUTF

Pixel 3a::com.mycode.nativehello ]-> env : 0x7d44041250 param1 Hello from C++ , 这是动态注册。addr_NewStringUTF retval : Hello from C++ , 这是动态注册。目标是hook NewStringUTF 打印字符串。运行打印结果:参数和返回值都正常打印出来字符串。

2024-08-30 18:08:27 744

原创 Native开发与逆向第二篇 - 动态注册函数逆向

前面JNI_OnLoad里面调了两次sub_6454 ,第四个参数是注册的方法数量,也就是NativeUtils类注册了13个方法,AVLA类注册了32个方法。sub_6454 的三个参数就是函数的JNINativeMethod结构体,里面就是动态注册函数的方法名,方法签名和对应的实现的函数地址。在方法名、方法签名等没有处理的情况下,通过静态分析也能很清楚的看到动态注册的对应函数。同样的 off_24190 是32个动态注册的函数,这里截图只截取部分。直接找到JNI_OnLoad。类名没处理,直接是明文。

2024-08-30 12:46:27 716

原创 adb install

adb install -d 允许进行降级安装,也就是安装的比手机上带的版本低。adb install -r 替换已存在的应用程序,也就是说强制安装。adb install -g 为应用程序授予所有运行时的权限。adb install -s 把应用程序安装到sd卡上。adb install -l 锁定该应用程序。adb install -t 允许测试包。

2024-08-24 16:46:59 625 1

原创 Google 广告id流程分析

搜索上面的接口 “com.google.android.gms.ads.identifier.internal.IAdvertisingIdListener”adb shell pm path com.google.android.gms 搜索安装包路径,然后包apk pull出来分析。这个包也只是提供了一个获取的接口,实际生成不在这个包里面。

2024-08-24 15:44:53 903

原创 admob 广告分析

1、测试广告集成,官方文档 https://developers.google.com/admob/android/quick-start?4、Layout Inspector查看布局。2、广告集成,集成测试激励广告。3、查看广告activity。

2024-08-20 22:05:33 358

原创 Android逆向题解-攻防世界-Ph0en1x-100

主要代码是if 那个判断,getFlag取字符串用getSecret加密,和输入字符串encrypt加密后再getSecret加密,进行比较,两边同样都是getSecret加密,那比较可以简化成this.getFlag() == this.encrypt(s)。也就是输入字符经过encrypt加密后等于getFlag的字符串即可。直接上objection 获取到getFlag的返回值:ek。qanqntfg^E`hq|,每个字符+1;ida看下encrypt 的实现。

2024-08-20 15:40:06 736

原创 Android逆向题解-攻防世界easyso

还原过程就是指定的字符串“f72c5a36569418a20907b55be5bf95ad”先单双位互换得到“7fc2a5636549812a90705bb55efb59da”直接反编译看伪代码,代码比较简单直接手撕即可,循环走一两遍就可以知道整个逻辑了。然后单双位互换,0,1互换,2,3互换,4,5互换。核心逻辑都在so里面的CheckString函数。整理逻辑流程就是输入字符串前16位与后16位互换。然后前16位与后16位互换得到。最后与指定字符串比较。

2024-08-19 22:50:02 453

原创 Native开发与逆向第一篇-字符串

Android studio新建一个Native C++项目。默认代码就是调用Native 方法stringFromJNI 返回一个字符串。

2024-08-19 11:35:15 660

原创 LSPosed模块开发第二篇 hook Webview

hook webview的loadUrl方法,打印webview加载的地址,修改参数将地址换成指定的url。

2024-08-18 21:49:25 931 1

原创 测试ollvm混淆效果

【代码】测试ollvm混淆效果。

2024-08-18 20:53:10 240

原创 常用adb命令

adb connect :端口号:adb连接某设备(通常针对offline设备)adb disconnect :端口号 :adb断开某设备。adb pull /sdcard/two.mp4 ./ 导出视频。adb push pc文件路径 手机文件路径。adb pull 手机文件路径 pc文件路径。adb start-server:重启adb。adb kill-server:杀死adb。adb install apk路径。ctrl +c 退出录制。

2024-08-16 23:59:40 145

原创 Android逆向题解-攻防世界app2

最后指令启动界面就ok。又是一个花里胡哨的题。

2024-08-16 17:57:59 268

原创 配置frida脚本环境代码提示自动补全

https://nodejs.org/en/ 官网下载安装,无脑安装即可。在agent 下面写js 脚本就有代码提示了。

2024-08-15 23:13:14 778

原创 Android逆向题解-Illusion-难度6

注意这里有一个陷阱,CheckFlag有静态注册函数和动态注册函数,会执行动态注册的函数。s 是用户输入,s1 是加密后flag: Ku@'G_V9v(yGS。sub_1028 看着花里胡哨的,实际执行结果就是 a1/a2;代码可以直接复制到idea,调试跟着过一遍就清楚了。传入Native函数 CheckFlag。a2 == 93 只会走sub_1028。

2024-08-15 22:33:01 369

原创 Android逆向题解攻防世界-RememberOther

userName MD5之后每2位取一个值与sn比较,userName 和 sn 都是用户输入类似注册机,这和flag不沾边。直接跳过看后续成功之后是Toast打印 “md5:b3241668ecbeb19921fdac5ac1aafa69”最后flag是 YOU_KNOW_ANDROID。

2024-08-14 11:40:16 222

Native开发与逆向第七篇 - base64 demo的sktrace文件

Native开发与逆向第七篇 - base64 demo的sktrace文件。 文章链接 :https://blog.csdn.net/u013170888/article/details/144085061

2024-11-27

Native开发与逆向第七篇 - base64 , demo源码

Native开发与逆向第七篇 - base64 , demo源码。 文章链接:https://blog.csdn.net/u013170888/article/details/144085061

2024-11-27

Android逆向,frida hook脚本,hook测试demo的加密字符串

Android逆向,frida hook脚本,hook测试demo的加密字符串。 包含spawn_hook 和 导出函数hook ,打印参数返回值寄存器值等。 对应文章:https://blog.csdn.net/u013170888/article/details/141753349

2024-08-31

Android native开发,实现log打印,简单的字符串加密处理

Android native开发,实现log打印,简单的字符串加密处理。 逆向分析用的测试demo。 参考链接:https://blog.csdn.net/u013170888/article/details/141749899

2024-08-31

Android 逆向frida hook log的脚本

Android 逆向frida hook log的脚本。 对应文章链接:https://blog.csdn.net/u013170888/article/details/141749899

2024-08-31

Android ndk 开发测试demo,动态注册函数的实现

Android ndk 开发测试demo,动态注册函数的实现。 参考:https://blog.csdn.net/u013170888/article/details/141317933

2024-08-30

frida hook jni 函数 NewStringUTF 打印参数和返回值字符串

frida hook jni 函数 NewStringUTF 打印参数和返回值字符串。 参考:https://blog.csdn.net/u013170888/article/details/141724349

2024-08-30

java base64 修改码表实现编码和解码

java base64 修改码表实现编码和解码。 https://blog.csdn.net/u013170888/article/details/141185783

2024-08-21

java常用数据结构代码,定义和赋值实现

java常用数据结构代码,定义和赋值实现。 包含数组,列表,Map,Set,栈,队列,优先队列等。

2024-08-21

java数据结构,常用数据结构说明

java数据结构,常用数据结构说明,代码实现。

2024-08-21

Android逆向-frida hook 脚本- hook webview

Android逆向-frida hook 脚本- hook webview。 frida hook webview的loadurl方法,获取加载的地址和调用链。 Java.choose 获取到webview的对象,可以主动调用webview的方法。

2024-08-17

adb 截图脚本手机截图到电脑按时间重命名

adb 截图脚本,双击运行即可。 手机截图到电脑按时间重命名。

2024-08-17

ollvm 13.x 编译后的clang , 替换ndk里面的clang 即可直接使用ollvm

ollvm 13.x 编译后的clang , 替换ndk里面的clang 即可直接使用ollvm。 将编译好的 clang、clang-format、clang++ 这三个文件复制到 AndroidStudio使用的NDK目录 …/toolchains/llvm/prebuilt/darwin-x86_64/bin文件夹下,存在同名文件需要替换掉。 (替换之前别忘了备份原文件哦) 需要注意对应的clang版本 需要找比较接近的ndk版本, clang 13.0.1 接近的ndk版本是 23.2.8568313 (clang 版本是12.0.9。 原文链接:https://blog.csdn.net/u013170

2024-08-14

微信修改余额显示

微信修改零钱余额显示,仅供学习参考,请勿用于商业用途。

2018-12-11

xposed hook系统对话框

基于Android studio3.2.1写的 xposed hook系统对话框的插件。

2018-12-11

安卓逆向题目app1.apk

安卓逆向题

2020-04-12

最新混淆包proguard6.0.3

最新混淆包proguard6.0.3

2018-12-11

最新的apktool和baksmali

最新版的aoktool和baksmali,apktool是2.3.4版本,baksmali是2.2.5版本。

2019-01-08

空空如也

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

TA关注的人

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