首页
文章分类
逆向网安
中英演讲
杂类教程
学习笔记
前端开发
汇编
数据库
.NET
服务器
Python
Java
PHP
Git
算法
安卓开发
生活记录
读书笔记
作品发布
人体健康
网上邻居
留言板
欣赏小姐姐
关于我
Search
登录
1
利用AList搭建家庭个人影音库
4,654 阅读
2
浅尝Restful Fast Request插件,一句话完成 逆向过程
3,943 阅读
3
完美破解The Economist付费墙
2,712 阅读
4
i茅台app接口自动化csharp wpf实现,挂机windows服务器每日自动预约
2,606 阅读
5
青龙面板基本使用并添加修改微信/支付宝步数脚本
2,030 阅读
Search
标签搜索
PHP
Laravel
前端
csharp
安卓逆向
JavaScript
Python
Java
爬虫
抓包
Git
winform
android
Fiddler
Vue
selenium
LeetCode
每日一题
简单题
docker
Hygge
累计撰写
95
篇文章
累计收到
445
条评论
首页
栏目
逆向网安
中英演讲
杂类教程
学习笔记
前端开发
汇编
数据库
.NET
服务器
Python
Java
PHP
Git
算法
安卓开发
生活记录
读书笔记
作品发布
人体健康
页面
网上邻居
留言板
欣赏小姐姐
关于我
用户登录
搜索到
2
篇与
的结果
2023-04-22
浅尝Restful Fast Request插件,一句话完成 逆向过程
浅尝Restful Fast Request插件,一句话完成 逆向过程本文根据吾爱破解论坛,作者:lvbuqing的帖子浅尝Restful Fast Request插件,一句话完成 逆向过程进行操作复现1.插件简介2.破解流程2.1 检测1-ide层根据Jetbrains官网插件开发文档了解到,付费插件的配置文件中都会有product-descriptor标签属性介绍属性名描述code销售系统中使用的插件产品代码,代码必须提前和Jetbrains约定好,按照要求来。release-date格式中主要版本发布的日期YYYYMMDDrelease-version特殊数字格式的主要版本安装完重新idea后会卡在,所以先解决这个第一层校验。1.找到插件的lib目录我使用的Toolbox,目录在:C:\Users\Administrator\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\231.8109.175.plugins\Restful Fast Request\lib该插件的关键jar包为:instrumented-restful-fast-request-pro-2023.1.3.2.jar2.直接使用压缩包打开jar文件,使用vscode编辑 META-INF\plugin.xml直接移除这一行。3.我们重新打开idea ,发现已经去掉了收费标识,,我们需要启用后重启2.2 检测2-插件层虽然功能键已经展示出来,但是点击后还是无法使用,会提示先激活插件。jar包解压,发现程序做了国际化,然后全局检索关键字得到关键key值为:ActivatePluginNeed使用Jadx对程序进行反编译后全局搜索关键key发现如下的调用继续查l11Il1III1111.l111I1llllI()这个方法也就是让这个方法返回false接下来的问题就是如何修改原来的jar文件中的字节码文件可以根据Javassist来实现3.JavassistJavassist (Java Programming Assistant) makes Java bytecode manipulation simple. It is a class library for editing bytecodes in Java; it enables Java programs to define a new class at runtime and to modify a class file when the JVM loads it. Unlike other similar bytecode editors, Javassist provides two levels of API: source level and bytecode level. If the users use the source-level API, they can edit a class file without knowledge of the specifications of the Java bytecode. The whole API is designed with only the vocabulary of the Java language. You can even specify inserted bytecode in the form of source text; Javassist compiles it on the fly. On the other hand, the bytecode-level API allows the users to directly edit a class file as other editors.3.1 什么是javassistjavassist是一个处理Java字节码的jar包,里面有很多类。3.2 什么是ClassPool可以想象成一个容器,里面放着指定路径下的class文件,使用javassist对类进行操作的时候,必须先创建一个ClassPool。它也可以暂时存放我们编辑的class文件,等写完后再拿出来放到指定的位置。我们对class文件的操作是在ClassPool中的进行的。假如我们想获取一个Class文件进行修改,如果ClassPool的路径中没有它,那么我们是找不到的,必须使用insertClassPath();函数将class文件路径导入ClassPool中才可以。如果我们不自定义路径,那么它的类的搜索路径包括平台库、扩展库以及由-classpath选项或CLASSPATH环境变量指定的搜索路径。3.3 什么是CtClassCtClass是javassist中的一个类文件,它的对象可以理解成一个class文件的抽象表示。一个CtClass对象可以用来修改一个class文件。4.Javassist实操修改字节码文件4.1 项目导包<dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.27.0-GA</version> </dependency>4.2 编写代码package com.lisok.test; import javassist.*; import java.io.IOException; public class HookMain { public static void hookMethod() throws NotFoundException, CannotCompileException, IOException { ClassPool pool = ClassPool.getDefault(); // jar包路径 pool.insertClassPath("D:\\Tools\\AndroidReverse\\instrumented-restful-fast-request-pro-2023.1.3.2.jar"); CtClass driverClass = pool.get("io.github.kings1990.plugin.fastrequest.cofig.l11Il1III1111"); CtMethod[] declaredMethods = driverClass.getDeclaredMethods(); CtMethod hookMethod = null; for (CtMethod declaredMethod : declaredMethods) { String name = declaredMethod.getName(); if (name.equals("l111I1llllI")) { hookMethod = declaredMethod; break; } } if (hookMethod != null) { System.out.println(hookMethod.getDeclaringClass()); hookMethod.setBody("return false;"); } driverClass.writeFile("writefile"); } public static void main(String[] args) { try { hookMethod(); } catch (NotFoundException | CannotCompileException | IOException e) { e.printStackTrace(); } } } 运行后项目会出现writefile目录,找到目标文件后,使用压缩包打开原jar文件进行替换即可。5.效果图引用1.浅尝Restful Fast Request插件,一句话完成 逆向过程:https://www.52pojie.cn/forum.php?mod=viewthread&tid=1776910&pid=46474186&page=1&extra=#pid464741862.Javassist by jboss-javassist:https://www.javassist.org/3.java中javassist、ClassPool、CtClass、Apache CC2链学习:https://blog.csdn.net/qq_41874930/article/details/1212736504.Javassist用法详解:https://www.jb51.net/article/205638.htm
2023年04月22日
3,943 阅读
33 评论
3 点赞
2022-04-05
apktool、dex2jar、jadx-gui的基本使用
1.apktool1.1 什么是ApktoolsA tool for reverse engineering 3rd party, closed, binary Android apps. It can decode resources to nearly original form and rebuild them after making some modifications. It also makes working with an app easier because of the project like file structure and automation of some repetitive tasks like building apk, etc.一个用于第三方逆向工程的工具,封闭的,二进制的 Android 应用程序。它可以将资源解码为几乎原始的形式,并在进行一些修改后重新构建它们。它还使得使用一个应用程序更加容易,因为这样的项目像文件结构和自动化的一些重复性的任务,如构建应用程序等。It is NOT intended for piracy and other non-legal uses. It could be used for localizing, adding some features or support for custom platforms, analyzing applications and much more.它不是用于盗版和其他非法用途。它可以用于本地化、添加一些特性或支持自定义平台、分析应用程序等等。来源于:Apktool 官网:https://ibotpeaches.github.io/Apktool/1.2 配置环境下载Java并配置环境变量 (Apktool下载的是jar包,需要在命令行用Java调用)下载最新版的Apktool的jar包: https://bitbucket.org/iBotPeaches/apktool/downloads/测试目标 apk文件环境就绪1.3 使用步骤在CMD控制台输入 java -jar apktool.jar ,可以看到相关的使用命令的提示,d是反编译指令输入 java -jar apktool.jar d xxx.apk ,即可完成反编译得到的文件有manifest文件和res下的资源文件,还有smali文件(可理解为运行在JVM的语言)另外,直接修改.apk包后缀为.zip然后解压,也可以获取到app的相关资源文件,但xml文件是经过编译的机器码,而通过apktool可以得到未编译的xml文件。2.dex2jar2.1 什么是ApktoolsTools to work with android .dex and java .class files2.2 基本使用将测试的安装包xxx.apk后缀改为.zip,解压后拷贝classes.dex文件到dex2jar文件目录下,cmd进入改目录,执行dex2jar.bat classes.dex命令,会生成classes-dex2jar.jar文件3.待更新...4.后续计划学习Android开发的悬浮窗和HOOK技术,写 Frida Hook抖音获取无水印视频链接 + 实现获取抖音无水印地址的App 的文章!3.附注本文参考:android反编译:apktool和dex2jar使用:https://www.jianshu.com/p/e0661ff7d955dex2jar 和 jd-gui 的安装与使用:https://blog.csdn.net/katrinawj/article/details/80016315pxb1988/dex2jar - github : https://github.com/pxb1988/dex2jar
2022年04月05日
456 阅读
0 评论
1 点赞