自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鬼手的博客

软件逆向/病毒分析/Android逆向/QQ Group:548601183

  • 博客(155)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android之Frida框架完全使用指南

文章目录Frida简介环境搭建python安装与虚拟环境配置Frida安装配置代码提示Server环境配置Frida Hook执行HOOKJava层hookHook普通方法重载方法构造方法修改类字段hook内部类和匿名类枚举所有类和方法hook动态加载的DexClassNative层hookhook有导出函数hook无导出函数Frida简介Frida是一款基于Python + JavaScript 的hook框架,本质是一种动态插桩技术。可以用于Android、Windows、iOS等各大平台,其执行脚

2021-10-20 22:00:46 1324

原创 Android之Xposed框架完全使用指南

文章目录Xposed环境搭建Xposed简介Xposed原理Xposed的安装Xposed插件开发Xposed插件编写流程Xposed开发之Hook构造函数相关API无参构造函数的hook有参构造函数的hook实际效果Xposed开发之修改属性相关API修改静态字段和成员字段实际效果Xposed开发之hook一般函数相关APIhook一般函数实际效果Xposed开发之主动调用函数相关API调用静态函数调用成员函数实际效果Xposed开发之加壳APP处理实际效果Xposed指纹检测Xposed环境搭建Xp

2021-10-17 19:41:22 1315

原创 VMP分析之VMP2.13插件化分析(四)

文章目录Zeus插件相关介绍初始化Key并解密加载操作码解密操作码取handler解密handler进入handler保存堆栈指令流解密KeyVMP分析插件相关介绍VM分析插件的使用插件化分析VM代码VM指令集说明FKVMP相关介绍使用方法VMSweeper相关介绍使用方法Zeus插件相关介绍开发者: ximo更新时间:2012-1可以分析VM的基本信息,包括解析VM入口信息及handler名,大致是阉割版fkvmp(无解析流程功能)可以自动脱壳保护的壳,包括IAT,资源保护,heap ant

2021-10-10 15:55:45 104

原创 VMP分析之VMP2.13流程分析(三)

文章目录VMP2.X版本特点VMP2.13加壳VMP2.13代码分析进入VM虚拟机保存堆栈保存eflags和edx保存ecx和edi保存ebx保存eax保存ebx ebp和esiVM解码循环解密指令流key解密操作码取加密过的handler解密handler解密操作数执行handler功能VMP2.13流程总结VMP2.X版本特点2.X版本的VMP相对于1.0版本来说有下面的变化自我膨胀,增加了大量混淆指令VM_Context的存放方式由内存改为栈,vmp1区段也没有了有专门分析插件,可以帮助分

2021-10-10 15:50:28 105

原创 VMP分析之VMP1.09虚拟化架构分析(二)

文章目录示例代码VM完整流程分析VM解码循环保存寄存器环境压入EBP和偏移执行函数恢复寄存器环境总结示例代码示例代码如下:#include "stdafx.h"#include <Windows.h>int Calc(int a,int b){ return a + b;}int main(int argc, char* argv[]){ Calc(2,3); getchar(); return 0;}同样用VMP1.09对程序进行加壳,只对两句代

2021-10-10 15:46:28 74

原创 VMP分析之VM解码循环与基本架构(一)

文章目录示例代码VMP区段概览VM基本流程跟踪步入虚拟机解密操作码取handlerVMP解码循环保存寄存器环境总结->VM寄存器的基本架构示例代码接下来通过一个简单的Demo来大概了解下VMP代码的整体流程,示例代码如下#include <windows.h>int Calc(int a, int b){ return a + b;}int main(){ Calc(2, 3); system("pause");}这里只对Calc函数中的两条汇编指令进行V

2021-10-10 15:42:54 144

原创 020 Android之so文件动态调试

文章目录ELF文件格式查看工具so文件加载时的函数执行顺序so文件动态调试so文件调试技巧使用ida动态调试的那些坑进程显示不全illegal segment bitnessmore than one special register presentadb安装强制应用App以32位运行ELF文件格式查看工具和PE文件类似,比PE文件简单,我们可以用NDK中提供的一个工具readelf去查看ELF文件主要表信息目录:D:\Android\sdk\ndk-bundle\toolchains\x86-4.

2021-10-02 21:12:21 423 1

原创 019 Android加固之APK加固的原理和实现

文章目录前言加载Activity遇到的问题APK的启动过程替换ClassLoader流程获取ActivityThread类对象获取AppBindData类对象mBoundApplication获取LoadedApk类对象info获取info对象中的ClassLoader设计傀儡dex文件手工加固APK代码实现APK加固实现步骤总结前言动态加载dex之后,我们会想说,能不能将整个程序的dex都进行动态加载。如果将加载的dex事先加密,加载前解密,这样就完成了对程序完整的解密了。但这里面遇到一个问题,那就是

2021-10-01 17:29:55 316

原创 VEH+硬件断点实现无痕HOOK

文章目录hook的分类硬件断点hook原理设置硬件断点注册VEH代码实现VEH无痕Hook说说一路踩过的坑实际效果小结关于veh hook的对抗参考文章参考文章hook的分类hook方式有多种,这里做了一个系统性的总结对比,如下:实际上第二种和第三种属于同一类型的hook,都是利用异常处理函数来处理,只是触发异常的方式不同硬件断点hook原理想要实现硬件断点hook,需要实现下面几个步骤设置硬件断点注册veh异常处理函数编写异常处理函数,实现自己的hook代码设置硬件断点首先来说一

2021-09-24 16:24:20 560

原创 018 Android加固之实现dex加载器

文章目录Android APK加固-安全人员角度关于类加载器类加载器类加载器的种类和个数创建类加载实例类加载器DexClassLoader和PathClassLoader使用类加载器动态加载dex文件制作dex文件动态加载dex文件完整步骤回顾Android APK加固-安全人员角度Android安全人员对APK加固采取的角度大概分为以下几个方面:将可执行代码dex文件加密,能够动态解密并执行能够检测当前状态是被调试,想尽一切办法反调试那如果继续再细分一下,实现一个初级的APK加固:使用类

2021-08-07 21:32:08 908

原创 017 Android加固之APK混淆和保护方式

文章目录APK加固介绍使用proguard对apk中的源码进行混淆proguard原理对APK反编译之后的smali进行混淆代码乱序原理乱序实例-Hello对APK中的字符串进行加密解决方案1-StringBuilder拼接解决方案2-编码混淆解决方案3-加密处理小结对APK中的文件进行校验对APK中的Dex文件进行校验对APK中的APK进行校验对APK中的签名进行校验小结APK加固介绍Android应用程序使用的开发语言是JAVA,由于采用的是这种解释型语言,所以代码可以被反编译。如果没有经过混淆或是

2021-07-22 21:04:26 286 5

原创 016 Android之NDK开发

文章目录NDK入门指南下载NDK和工具NDK工程说明JNI数据类型JNI中的描述符JNI基本使用JAVA代码调用C++代码C++代码调用JAVA代码C++代码修改JAVA字段动态注册NDK入门指南原生开发套件(NDK)是一套工具,能够在Android应用中使用C和C++代码,并提供众多平台库,可以使用这些平台库管理原生Activity和访问物理设备组件。与NDK密切相关的另一个词汇则是JNI,它是NDK开发中的枢纽,Java与底层交互大多数通过它来完成。JNI: Java Native Interf

2021-07-07 15:02:54 170 3

原创 015 Android之可执行文件dex

文章目录从一个hello world开始Dex文件结构文件头各种数据的数组字符串表类型表原型表字段表方法表类数据手工解析Smali代码从一个hello world开始smali代码和dex之间有着千丝万缕的联系,先从一个最简单的dex文件hello world开始,学习整个dex文件的结构.class public LHelloWorld;.super Ljava/lang/Object;.method public static main([Ljava/lang/String;)V .

2021-07-07 14:55:53 219 2

原创 014 Android之Cydia与Xposed框架入门

文章目录Android Hook框架介绍Cydia Substrate插件编写步骤实例:编写Cydia修改系统字体颜色Xposed插件编写步骤实例:Hook获取手机序列号准备工作获取hook所需要的数据编写hook代码效果测试Android Hook框架介绍Android中比较经典的Hook框架有两个Cydia Substrate,闭源,从苹果开始到Androidxposed,开源,从Android开始到苹果Cydia Substrate插件编写步骤Cydia Substrate插件编写的

2021-06-25 10:59:20 153

原创 013 Android锁机病毒分析

文章目录免流服务器-锁机病毒分析秒抢红包-锁机病毒分析免流服务器-锁机病毒分析首先来分析这个免流服务器的锁机病毒,文件信息如下文件: 免流服务器.apk大小: 799835 bytes修改时间: 2016年3月 16日, 23:26:10MD5: 2EFCA46F34A565C2EF4052B89B6B364BSHA1: 5493A958A592BB0B19C43ACB2C1F52C898885207CRC32: 7F89A927安装以后点击安装核心按钮这里在请求root权限,点击

2021-06-25 10:44:30 221 1

原创 012 动态调试smali代码

文章目录前言配置调试插件调试插件的使用总结常见问题前言之前分析游戏进行破解的时候,都是通过字符串和日志的方式来对程序进行静态分析。但是在遇到算法类型的程序时,这种方法就显得效率特别低,所以就需要对代码进行动态调试。配置调试插件使用Android Studio可以动态调试Smali代码,需要用到一个插件smalidea-0.05.zip打开插件选项点击Install plugin from disk找到插件目录,点击确定,然后重启IDE调试插件的使用将apk导入到Android Ki

2021-06-16 12:24:10 116 1

原创 《全民捕鱼》游戏分析

文章目录分析环境逆向分析日志分析法字符串分析法去除弹窗添加个人信息的破解总结分析环境系统:Android 4.4工具:Windows 10 64bit 夜神模拟器 Android Killer游戏:全民捕鱼V1.7文件: fkby.apk大小: 14450756 bytes修改时间: 2016年3月 11日, 14:53:34MD5: C67C9D8DB091BE205457B1C6B9BC1352SHA1: 0FD4027602C2628568E52806603BA1FC95EBE90

2021-06-16 12:15:13 538

原创 011 smali语法详解

文章目录smali文件解读描述类信息静态字段实例字段直接方法虚方法接口Smali基础语法寄存器数据类型字段和方法的表示Smali指令集空操作指令数据操作指令返回指令数据定义指令跳转指令方法调用指令smali文件解读描述类信息在打开Smali文件时,它的头三行描述了当前类的一些信息:.class public Lcom/test/helloworld16/MainActivity;.super Landroid/support/v7/app/AppCompatActivity;.source "M

2021-06-16 12:00:59 150

原创 010 Android之逆向入门

文章目录Android APK文件结构META-INFresAndroidManifest.xmlclasses.dexresources.arsclibAssetsAndroid APK的入口函数SDK工具adbmonitorAndriod逆向工具AXMLPrinter2.jar->Manifest.xml清单文件解密工具Dex文件反汇编 汇编工具apk签名工具apk反编译工具->apktoolDex2jar工具(转换文件格式)jd-guiAndroidKillerAndroid APK文件

2021-06-16 11:29:08 176

原创 009 Android之ContentProvider

文章目录Android文件权限简述ContentProvider 内容提供者ContentResolverURI什么是URIURI示例URI和URLContentProvider实例ContentProvider实例1ContentProvider实例2Android文件权限简述关于Android中关于文件权限的具体解释drwxrwx-x第一位:-表示文件,d表示文件夹,l表示连接二三四:所有者权限,即程序本身访问文件或目录的权限五六七:所在群组的权限八九十:其他用户权限r表示读权限,w表

2021-06-16 11:16:48 73

原创 008 Android之Service

文章目录服务概述服务的两种启动方式服务的生命周期startServicestartService实例1startService实例---电话监听器startService实例---计时器bindServicebindService实例---本地人员查询系统服务概述服务Serivce是Android系统中4大组件之一,有以下特点后台运行没有界面服务无法自己启动单例模式(一个服务在系统中只能启动一次)基本使用步骤:继承自Service在清单文件中使用节点配置启动服务服务的两种启动方

2021-06-16 11:12:24 48

原创 007 Android之Broadcast Receiver

文章目录广播的概念广播的类型广播接收实例IP拨号器开机自启动监听应用安装和卸载广播的概念现实中的广播:电视台发送广播,使用收听机可以收听广播,得到广播信息Android中的广播:系统会产生很多事件,比如 电量不足 收发短信 拨打电话Android中的收音机:Broadcast Receiver 广播接收器广播接收器类似Windows下的消息钩子广播的类型无序广播:与Intent匹配的广播接收者都可以收到该广播,并且是没有先后顺序之分(同时收到)广播接收者无法使用setResult系列

2021-06-16 11:05:44 89 1

原创 006 Android之Activity

文章目录四大组件之ActivityActivety概述Activity的响应事件Activity之间的数据传递数据传递实例Activity的生命周期Activity声明周期总结Activity的任务栈Activity的启动模式默认启动模式 standard栈顶复用模式 singleTop栈内复用模式 singleTask全局唯一模式 singleInstance四大组件之纽带IntentIntent概述Intent对象的组成Intent过滤器(Intent Filter)Intent对象的解析四大组件之A

2021-06-07 10:35:11 75 2

原创 005 Android之数据存储

文章目录Android文件系统Android文件的访问权限文件访问权限实例数据存储方式内部存储内部存储实例外部存储Shared PreferencesShared Preferences实例sqlite数据库sqlite概述Android中访问Sqlite数据库的类SQLiteOpenHelper类的使用SQLiteDatabase的使用Android文件系统在Android中,每一个应用都是一个独立的用户。文件或者文件夹的权限使用10个字母来表示第一个字母:d表示文件夹-表示文件第一组rw

2021-06-07 10:31:13 59

原创 004 Android之其他控件

文章目录ListViewListView常用属性ListView基本使用ListView动态插入数据ListView实现图文混排AdapterAdapter(适配器种类)自定义Adapter的使用Spinner下拉列表AutoCompleteTextView自动补全ListViewListView常用属性属性说明divider设置分割线的颜色dividerHeight设置分割线的高度Scrollbars设置滚动条的显示或者隐藏Fadescrollbars设

2021-06-07 10:18:19 59

原创 003 Android之线性布局与基础控件

文章目录Android快速入门三步布局介绍LinearLayout布局属性代码示例基础控件TextView和EditText使用TextView与EditTextImageViewImageView属性使用ImageViewButton与ImageButtonButton与ImageButton的使用RadioButton和CheckBox四种按钮响应方式onClick事件监听事件实现方式-内部类实现接口监听事件实现方式-匿名内部类方式监听事件实现方式-外部类方式电话本小例子界面设计完成打电话功能完成短信发

2021-06-07 10:14:37 77

原创 002 Android之helloworld工程详解

文章目录安卓开发环境Android SDKadb创建第一个hello world工程hello world工程详解manifests清单文件java源码res资源安卓文件目录总结安卓开发环境Android SDKSDK中包含Android开发的编译环境build-tools:编译工具docs:文档sources:源码system-images:系统镜像platfrom-tools:平台工具adb工具:android debug brige 安卓调试桥(D:\Android\sdk\pl

2021-06-07 10:08:39 237 5

原创 001 JAVA基础

文章目录JAVA环境搭建JAVA基础语法数据类型JAVA数据类型基本数据类型大小基本数据类型包装类自动类型转换强制类型转换常量控制台的输入---Scanner的使用数组如何使用数组数组的遍历JAVA面向对象类与对象如何定义JAVA中的类JAVA中的构造方法多态引用多态方法多态多态中的引用类型转换JAVA中的接口声明接口使用接口JAVA异常什么是异常异常的分类Throwable类的子类常用异常类异常示例捕获异常JAVA环境搭建下载JDK并添加环境变量添加环境变量JAVA_HOME(JDK的安装目录)

2021-06-07 09:59:48 103 1

原创 VMProtect SDK完全避坑指南

文章目录前言编译VMProtect Demo生成机器码替换密钥对生成序列号总结前言在编写软件的时候,通常会有这样一个需求,需要对自己写的软件实现一机一码加密保护,并且最好能够限制使用时间。抛开现有的网络验证系统之外,最安全可靠的莫过于VMP的加密系统了。但是网上关于SDK的使用资料几乎没有一套完整的说明文档,清一色全是各种坑。这里笔者整理一下在研究VMP SDK过程中遇到的各种坑,手把手教你实现一个带时间验证的加密系统和注册机。编译VMProtect Demohttps://bbs.pediy.c

2021-03-06 12:52:49 1412

原创 Avaddon勒索解密工具原理解析

文章目录Avaddon勒索解密工具解密工具原理解密工具优化相关资料Avaddon勒索该勒索病毒使用C++语言进行编写,采用RSA-2048和AES-256加密算法对文件进行加密,加密库使用的是Windows自带的CryptAPI被该勒索加密后的文件后缀为avdn解密工具国外安全研究人员发布了一款Avaddon勒索病毒解密工具,解密工具源代码地址:https://github.com/JavierYuste/AvaddonDecryptor经过测试,这个工具确实是可以解密被Avaddon勒索加

2021-02-20 14:35:07 973 2

原创 PC微信逆向:分析通用设置数组

文章目录前言通用设置切入点分析通用设置数据结构分析通用设置数组随机的数组下标前言微信版本2.8.0.121分析诉求->通过代码实现关闭微信通用设置里的“有更新时自动升级微信"。通用设置切入点这种复选框的设置无非就是一个标志位的问题,分析起来比较简单,中间肯定会涉及到一些数据结构。作为开发者肯定不会把每一个设置选项都单独存放,而是放在一个数据结构里方便管理。首先用CE附加微信在取消勾选状态下搜索0[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jksK

2020-05-15 14:38:14 4464 2

原创 012 分析技能冷却二叉树

文章目录前言技能冷却二叉树获取技能名称总结前言学习完了最常用的数据结构,我们再来分析游戏中其他的功能,尽量将游戏中的所有数据分析完全,为后面的实际应用积累经验。对于RPG游戏来说,技能数据是必不可少的。这次我们就来找技能相关的数据。技能冷却二叉树想要找到技能相关的数据结构,可以有很多突破口,比如技能名称,技能ID,技能冷却时间等等。以技能冷却时间为例,找一下当前的技能数据。首先找到一个...

2020-05-01 12:44:50 1956 1

原创 011 数据结构逆向—二叉树

文章目录前言背包数据嵌套结构背包二叉树二叉树分析背包数据结构分析总结前言学习完了链表的数据结构,我们再通过幻想神域了解一下二叉树在游戏中的存储形式。这一次要逆向的数据是背包中的所有物品,为了能将背包中的数据尽量分析完整,这个游戏建议尽量升到20级。会送两个背包扩展券,背包越大数据越多,能够分析到的数据越完整。我这里是有两个背包扩展券。,一个20格扩展卷,一个5格扩展券。背包数据嵌套结构...

2020-05-01 12:35:48 830

原创 010 数据结构逆向—链表

文章目录逆向周围对象链表总结之前我们已经通过人物的血量找到了人物的属性数组,接下来学习一下链表。逆向周围对象链表这一次要找的目标是人物周围的对象链表,包括人物周围的NPC和怪物等等。找这个数据结构的突破口有很多,可以通过人物本身,也可以通过NPC和怪物。这里还是以人物血量为突破口,之前我们已经用人物血量去找到了属性的数组,但是同一个突破口通过不同的访问代码可以逆向分析出不同的数据。和之...

2020-05-01 11:39:34 668 1

原创 009 数据结构逆向—数组(困难版)

文章目录前言数组逆向通过人物血量查找人物属性调call取对象call内追局部变量逆向加密数组下标分析人物属性总结前言通过之前的分析,我们已经对数组结构有了一个简单的了解,这次就用幻想神域这个游戏来更加深入学习数组。数组逆向通过人物血量查找人物属性以人物血量为切入点,我们要找到所有的人物属性。首先搜索当前人物血量接着通过换装备的方式修改人物血量,最后剩下两个结果,一个是当前血量,一...

2020-04-25 12:10:27 724 3

原创 008 数据结构逆向—数组(简单版)

文章目录前言逆向背包数组一维背包数组二维背包数组数组结构分析总结前言对于游戏逆向来说,核心需求其实就只有两个追踪游戏数据定位游戏功能call对于追踪游戏数据来说,单纯从一个寄存器或者内存往上追踪到这个数据的基址是较为简单的,难点在于如何通过这一个数据,找到整个数据结构。这里先抛出三个问题对于人物背包来说,可以通过背包物品的数量所在的地址追踪到基址,但是怎么通过物品数量找到整个背...

2020-04-20 22:37:35 659 1

原创 007 封包式游戏功能的原理与实现
原力计划

文章目录前言封包式功能的实现步骤定位发包函数三大发包函数重写发包函数线程发包线程发包的形态和特点条件断点筛出心跳包线程发包的传参方式跳出线程发包定位加密封包内容线程发包总结定位明文发包函数定位封包加密call定位封包加密call封包加密call参数分析复制封包加密函数调用函数实现功能前言游戏外挂按制造难度总共分为下面三类:模拟式:通过调用Windows API来控制鼠标键盘等,使游戏中的人...

2020-04-19 20:41:47 1163 1

原创 三步教你手动破解网易云音乐加密

文章目录第一步 缓存歌曲第二步 找到文件第三步 解密文件第一步 缓存歌曲首先打开网易云音乐随便缓存一首需要付费下载的歌曲 比如这一首如果你想要下载是需要付费的第二步 找到文件点开设置-&amp;amp;gt;下载设置&amp;amp;nbsp;找到缓存目录按照修改日期排序&amp;amp;nbsp;找到符合修改时间的那一项 &amp;amp;nbsp;后缀名为.uc的最大的文件&amp;amp;nbsp;就是加密过后的文件 另外一个应该是歌词文件(在

2020-04-17 22:10:55 62259 36

原创 游戏检测的对抗与防护艺术

文章目录前言通过send函数定位吃药call变量检测构造检测程序处理变量检测call的检测原理查找检测变量变量检测处理堆栈检测堆栈检测原理 基于本地堆栈检测原理 基于服务器处理一层堆栈检测处理多层堆栈检测CRC检测什么是CRC检测构造CRC检测处理CRC检测数据检测数据检测原理构造检测程序数据检测处理总结前言从游戏外挂的利用角度来看,外挂的行为无非有如下两种:修改游戏的关键数据和代码:属于...

2020-04-11 20:45:58 2073 2

原创 005 定位控件输入call

文章目录什么是控件输入call定位控件输入call定位字符长度通过字符长度定位控件输入call什么是控件输入call当我们想要在游戏里进行喊话和聊天的时候,需要在游戏内置的控件里输入相应的内容,这个往控件输入内容的call就叫控件输入call。定位控件输入call以游戏的账号密码输入框为例,来找这样一个控件输入框。当我们在输入字符的时候,这个call会在内部改变当前的字符长度,字符长度就可...

2020-04-11 14:36:02 687

VEH+硬件断点实现无痕HOOK

VS2019源码 VEH+硬件断点实现无痕HOOK

2021-09-24

DNGuardUnpackerFr4源码.rar

著名强壳DNGuard的脱壳器源码 只能在XP和VBox下运行,是研究.NET脱壳的非常好的资料

2021-08-04

ApkPackTool.zip

JAVA实现简单的APK加固工具 代码可用于学习基础的APK加固过程

2021-09-18

空空如也

空空如也

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

TA关注的人 TA的粉丝

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