自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2024-08-31 15:43:03 663

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

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

2024-08-31 11:19:47 304

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

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

2024-08-31 09:37:39 348

原创 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 455

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

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

2024-08-30 12:46:27 418

原创 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 284

原创 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 528

原创 admob 广告分析

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

2024-08-20 22:05:33 168

原创 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 632

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

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

2024-08-19 22:50:02 375

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

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

2024-08-19 11:35:15 508

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

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

2024-08-18 21:49:25 418

原创 测试ollvm混淆效果

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

2024-08-18 20:53:10 179

原创 常用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 118

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

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

2024-08-16 17:57:59 223

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

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

2024-08-15 23:13:14 203

原创 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 307

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

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

2024-08-14 11:40:16 189

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

魔改码表与标准码表参照对比,将加密字符串还原成标准码表编码的字符串,再标准base64解码即可。运行结果:flag{05397c42f9b6da593a3644162d36eb01}题目比较简单,就是一个改了码表的base64编码。

2024-08-14 11:20:14 488

原创 Win10 VisualStudio 2022编译ollvm 13.x

将编译好的 clang、clang-format、clang++ 这三个文件复制到 AndroidStudio使用的NDK目录 …/toolchains/llvm/prebuilt/darwin-x86_64/bin文件夹下,存在同名文件需要替换掉。1、修改D:\androidSdk\ndk\23.2.8568313\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang 下 文件夹版本将12.0.9 修改为13.0.1。单独对函数进行混淆,效果很明显。

2024-08-13 23:36:35 1401

原创 Android逆向题解攻防世界-easyjava-难度6

纯Java实现,不涉及so, flag加密之后与指定字符串 “wigwrkaugala"比较判断,循环一个个字符加的,那可以一个个字符对应还原。jeb自动把b.b解密成“abcdefghijklmnopqrstuvwxyz”,而b.b 运行中是会变化的。另外a,b类里面有静态变量,遍历完一次需要重置恢复到初始值不然加密结果不对。加密算法就在a,b类里面,代码直接复制到idea ,枚举暴力破解。类a,b 执行过程中是变化的,执行不同次数结果是不一样的。a,b 类直接复制就行,没什么需要改的。

2024-08-13 18:22:50 250

原创 Android逆向题解-boomshakalaka-3-难度5

题目要求是玩游戏得到最高分就可以得到flag,是写到配置文件的,初始flag值看着是base编码的。玩几次之后查看配置文件数据base64解码可以看到出现了部分flag,对比上面的代码补齐字段;题目描述:play the game, get the highest score。核心代码在so里面的ControlLayer::updateScore函数。这个app 是一个cocos游戏,没有用脚本实现,纯c++实现。逻辑就是根据玩游戏的得分拼接上面函数里面的的字符串;base64解码就出来了。

2024-08-12 23:44:25 288

原创 Android逆向题解 攻防世界-人民的名义-抓捕赵德汉1-200

就是一个md5加密,密文判断是否等于"fa3733c647dca53a66cf8df953c2d539",找一个MD5在线解密的解一下就出来了结果就是:“monkey99”这个也是一个简单题,文件是一个jar,直接丢到jeb反编译。

2024-08-12 10:01:20 196

原创 Android逆向题解 攻防世界难度5- APK逆向

一眼就能看出来,没啥难度,这个难度还不如上一个难度4的题。运行结果:bc72f242a6af3857。

2024-08-11 22:55:19 195

原创 frida 和 objection

下载对应版本的frida-server ,这里下载的是 frida-server-16.2.1-android-arm64.xz。objection -N -h ip -p 端口 -g packageName explore。安装对应的frida ,frida-tools,和 objection。设备:Google pixel 3a Android 12。解压之后adb push 导入到手机运行。python版本 :python 3.9。输出指定对象中的每个字段的数据。

2024-08-10 18:15:21 437

原创 Android逆向题解 攻防世界难度4- Android2.0

注意这里的v5 不是上面计算出来的第一段的值,是上面异或之后的也就是“LN^dl” ,输出字符串也就是flag 长度是15,然后分成三段,第一段是可以整除3,第二段是除3取余=1,第三段是除3取余等于2;第二段:l{sra -------------除3余1,对应下标就是1,4,7,10,13。第一段:fgorl -------------整除3,对应的下标就是0,3,6,9,12。第三段:asoy} -------------除3余2,对应下标就是2,5,8,11,14。

2024-08-10 17:57:50 568

原创 pixel 3a 刷机和root 流程

下载地址:https://dl.google.com/dl/android/aosp/sargo-sp2a.220505.008-factory-071e368a.zip。下载地址:https://developer.android.com/studio/run/win-usb,可以直接下载或者通过Android studio下载。下载地址:https://developers.google.com/android/images。2、刷机(可选),如果下载的是手机系统对应镜像可以不用刷机。

2024-08-09 17:02:32 623

原创 LSPosed模块开发第一篇

安装LSPosed

2024-08-09 16:56:19 649

原创 xposed模块开发第二篇

被hook的示例app先写个示例app供后面hook用,示例代码尽量使用各种参数类型void demo(){ int i=20; byte[] bytes={'a','b','c'}; String s="kkk"; List<String> list=new ArrayList<>(); list.add("L"); list.add("i"); list.add("

2021-03-21 17:30:40 537 4

原创 xposed模块开发第一篇

@[TOC]安装xposed我这里用的逍遥模拟器,安装XposedInstaller_3.1.5.apk,再点一下安装Version 89,重启模拟器;这样就安装完成了。@[TOC]开发xposed模块Androidstudio新建一个工程修改AndroidManifest.xml中添加声明添加3个meta-data<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.

2021-02-27 14:52:08 1177 1

原创 Android逆向题解6-黑客精神

看代码是要先注册,先调doRegister注册,判断已注册再调workdoRegister跳到RegActivity输入内容传到saveSNsaveSN是个native方法,这里还看到了work也是native方法,就是核心代码都在so里下面来分析so直接看导出函数没找到saveSN和work,那应该是动态注册的直接看JNI_OnLoad,确实是动态注册的,n1就是initSN,n2是...

2020-04-12 15:46:19 716

原创 Android逆向题解5-HackMeNative

看雪上看到的一个https://bbs.pediy.com/thread-255468.htm运行界面代码分析public class MainActivity extends Activity implements View$OnClickListener { EditText answerText; Button submitButton; public...

2020-04-12 15:31:35 318

原创 Android逆向题解4-EasyJni

运行界面:找flag,用户输入一串字符串点击cheek确认输入是否正确代码分析判断用户输入字符串是否正确先用一个a方法加密之后传入native函数ncheck进行判定;也就是在Java层有一次加密,在native层还有一次加密;Java层的加密,类似一个换了码表的base64加密;package com.a.easyjni; public class a { priva...

2020-04-12 15:19:27 359

原创 Android逆向题解3-DDCTF-Normal

赛题背景:本挑战结合了Android, Java, C/C++,加密算法等知识点,考察了挑战者的binary逆向技术和加密算法能力。赛题描述:本题是一个app,请试分析app中隐藏的key,逆向加密算法并得到对应的秘钥。可以在app中尝试输入key,如果正确会显示“correct”,如果错误会显示“Wrong”。提 示:阅读assembly code,理解xor的加密逻辑和参数,解出答案。...

2020-04-12 15:12:26 333

原创 Android逆向题解2-bobbydylan

List item运行界面List item代码分析:调用check方法,传入参数是获取用户是输入,抛出异常就“错误”public void onClick(View arg5) { DialogInterface$OnClickListener v3 = null; try { this.b.check(this.a.get...

2020-04-12 15:05:59 255

原创 Android逆向题解1-app1

这个很简单,就是拿versionName和versionName进行异或操作就可以了,versionName和versionName在AM里面设置;protected void onCreate(Bundle arg3) { super.onCreate(arg3); this.setContentView(0x7F04001B); this.bt...

2020-04-12 14:59:15 384

原创 破解某助手刺探功能---第三篇升级版

上一篇实现的功能是通过toast打印出游戏结果,还是需要玩家按结果点击才能完成游戏。这一篇在第二篇的基础上改动升级,无论用户怎么点击或者直接不点击,最后直接验证游戏都能完成。上一篇传送门:https://blog.csdn.net/u013170888/article/details/90697458实现思路:还是和上一篇一样在access$5这里拿到服务器传过来的参数,然后处理之后得到游...

2019-08-28 13:52:27 438

原创 胡吃海喝小游戏破解

小游戏界面:这个小游戏比较简单,规则就是左边会滑动出一个食物图,需要在右边5x4的20个食物图里面找到一样的点击就算成功一次,左边滑动时间很短,反应慢的很难快速找到一样的,所以想着给它破解了无脑玩。一、先看代码找到小游戏逻辑代码部分可以先通过看log找关键字符串,然后搜索字符串去定位代码段,这样会省很多时间。log里面的信息还是很多的,根据log信息可以直接定位到具体的代码部分。重点看...

2019-05-31 17:10:45 338 3

原创 破解某助手刺探功能---第二篇smali代码实现

第一篇已经通过xposed插件实现了获取刺探小游戏结果的功能。第一篇传送门:https://blog.csdn.net/u013170888/article/details/89706546上一篇也说过了这个也是可以通过修改代码实现的,因为已经用xposed实现了,另外改smali代码也比较麻烦,就没去弄。xposed实现毕竟有一定的局限性,一般人自己用的手机都不会去装xposed,所以想着...

2019-05-30 16:00:01 537

原创 安卓高版本拦截删除短信的实现

一、实现方式:通过 AppOps 权限管理修改短信权限核心点就是setMode设置短信可写权限,详细信息不懂的可以百度AppOps。代码:public static boolean setWriteEnabled(Context arg3, boolean arg4) {int v1 = getUid(arg3);int v0 = arg4 ? 0 : 1;return setMode...

2019-05-17 14:43:39 2142

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 逆向frida hook log的脚本

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

2024-08-31

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

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

2024-08-31

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

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

2024-08-30

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

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

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

安卓逆向题目app1.apk

安卓逆向题

2020-04-12

最新的apktool和baksmali

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

2019-01-08

xposed hook系统对话框

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

2018-12-11

微信修改余额显示

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

2018-12-11

最新混淆包proguard6.0.3

最新混淆包proguard6.0.3

2018-12-11

空空如也

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

TA关注的人

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