Ja-netfilter(idea破解)分析
Ja-netfilter(idea激活码破解原理)分析
news/2024/4/16 1:26:33/文章来源:https://blog.csdn.net/yangfeng20/article/details/137565926
Ja-netfilter(idea破解)分析
简介
是一款可以破解IDE系列的javaagent 包。
原理简介
通过创造修改字节码的时机。通过修改相关类,达到hook特定方法的作用。主要依赖power(rsa方法hook),url(拦截网络验证码校验),dns(拦截特定域名请求)插件。
原理分析
首先先简单了解下整理流程,后面详细讲解每个步骤。
正常启动idea流程
点击idea快捷方式,或者idea.bat / idea.sh启动。
根据环境变量加载对应vm参数。也就是文件,vm中的内容会作为jvm启动参数添加到启动命令中。


本地校验激活码
rpc接口校验激活码

使用ja-netfilter流程
运行install脚本(通过环境变量指定启动vm参数文件地址),也就是jar包目录下的目录。启动idea。加载ja-netfilter 参数(在ja-netfilter的vm参数中添加了asm支持以及javaagent参数,并指定当前jar包)。运行javaagent,及 的permain方法。 加载ja-netfilter定义的插件,也即plugins目录下的jar包。初始化插件,载入配置,也即config目录下的jar包。通过javaagent提供的类转换能力转换插件hook的类。 本地校验激活码网络rpc校验激活码

ja-netfilter代码分析
我这里直接调试idea,通过idea.bat启动。启动后在通过agent技术嵌入到idea目录虚拟机中,已达到调试idea的目录。com.janetfilter.core.Launcher是主启动类,定义了permain已经agentmain方法。同时在指定了Premain-Class。
使用idea.bat启动idea

使用javaagent嵌入到目标虚拟机。

进入javaagner(ja-netfiler)定义的permain方法,开始执行ja-netfiler逻辑。

确定插件目录以及配置目录

加载插件,加载配置并初始化



ja-netfiler插件介绍
ja-netfiler的插件结构大致可以分为三类 插件入口类(例如:),用来注册对应的类转换器。Transformer类(例如:),用来定义需要hook的类名,以及hook方法的逻辑。过滤器业务逻辑类(例如:),类转换之后被hook会真正调用到的类,一般用于拦截或者替换。
dns插件
DNSFilterPlugin
初始化转换类并注册

InetAddressTransformer
hook了类的方法以及方法。

修改之后的InetAddress代码大致如下:
DNSFilter

总结
dns插件hook了InetAddress类的getAllByName方法,如何匹配配置的域名,则抛出UnknownHostException异常。以及isReachable方法,如何匹配规则则返回false。
dns对应配置
也就是访问jetbrains.com以及plugin.obroom.com都是失败的。
power插件
总结
power插件hook了的方法,这个方法是用来对一个数模取幂运算的,及。RSA非对称加密底层会使用到当前方法。
可以简单理解为在oddModPow函数前加了一段逻辑,就是如果入参x,y,z匹配配置的规则,那么就返回规则配置的结果。
url插件
总结
url插件hook了的方法。在执行逻辑之前调用testUrl方法。
testUrl方法中的逻辑为如果匹配了规则中设置的url,那么就抛出SocketTimeoutException异常,也即不能访问指定url。
对应规则为
那么这里就是只要前缀匹配了当前地址,也即是rpc校验激活码的地址,那么就会抛出异常,自然也就无法网络校验了。
Idea调试
可以看到,在输入验证码之后,会调用相关方法来校验激活码,这里就会调用到插件的方法。如果匹配了对应的配置,就会给出一个结果来替换oddModPow的结果。

校验验证码成功,激活成功

点击继续,关闭弹窗,idea会调用rpc接口校验验证码,插件匹配规则,抛出异常。

参考
https://zhuanlan.zhihu.com/p/494706735
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/614959.html 如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除! 相关文章

线 程 池
1. 线程池
1.1 线程状态介绍
当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?Java中的线程
状态被定义在了java.lang.Thread.Stat… 阅读更多...

postgresql uuid
示例数据库版本PG16,对于参照官方文档截图,可以在最上方切换到对应版本查看,相差不大。 方法一:自带函数 select gen_random_uuid(); 去掉四个斜杠,简化成32位 select replace(gen_random_uuid()::text, -, ); 官网介绍… 阅读更多...

Spring Cloud系列(二):Eureka Server应用
系列文章
Spring Cloud系列(一):Spirng Cloud变化
Spring Cloud系列(二):Eureka Server应用 目录
前言
注册中心对比 Nacos Zookeeper Consul
搭建服务 准备 搭建 搭建父模块 搭建Server模块
启动服务
测试
其他 前言
前面针对新版本的变化有了… 阅读更多...

【vue】v-model.lazy等(非实时渲染)
v-model:实时渲染v-model.lazy:失去焦点/按回车后,才渲染v-model.number:值转换为数字v-model.trim:去除首尾空格 <!DOCTYPE html>
<html lang"en"><head><meta charset"UTF-8&qu… 阅读更多...

ansible的常见用法
目录
##编辑hosts文件
##copy模块##复制过去
##fetch模块##拉取
##shell模块 ##好用
##command模块##
##file模块###
##cron模块###
##crontab 计划任务
##下载好时间插件
##script模块
##yum模块##
##yum下载源配置文件 /etc/yum.repos.d/CentOS-Base.repo
##ser… 阅读更多...

多模态AnyGPT——整合图像、语音和文本多模态大规模语言模型的出现
概述
大规模语言模型在理解和生成人类语言方面具有非凡的能力,但迄今为止,它们的能力主要局限于文本处理。然而,现实世界是一个多模式的环境,信息通过视觉、听觉和触觉等多种感官进行交换。融入这种多样性是开发下一代系统的主要… 阅读更多...

刷题之动态规划-两个数组
前言
大家好,我是jiantaoyab,开始刷动态规划的两个数组类型相关的题目
动态规划5个步骤 状态表示 :dp数组中每一个下标对应值的含义是什么>dp[i]表示什么状态转移方程: dp[i] 等于什么1 和 2 是动态规划的核心步骤࿰… 阅读更多...

php其他反序列化知识学习
简单总结一下最近学习的,php其他的一些反序列化知识 phar soap session 其他 __wakeup绕过gc绕过异常非公有属性,类名大小写不敏感正则匹配,十六进制绕过关键字检测原生类的利用
phar
基础知识
在 之前学习的反序列化利用中࿰… 阅读更多...

go websocket
WebSocket 是一种网络协议,建立在 HTTP 协议之上,允许双向通信。WebSocket 协议允许服务器发送数据到客户端,同时也可以让客户端向服务器发送数据。WebSocket 使用 HTTP 协议的升级请求和响应来建立连接。WebSocket 的主要优点在于它可以通过… 阅读更多...

【JAVA基础篇教学】第十篇:Java中Map详解说明
博主打算从0-1讲解下java基础教学,今天教学第十篇:Java中Map详解说明。 在 Java 编程中,Map 接口代表了一种键值对的集合,每个键对应一个值。Map 接口提供了一系列操作方法,可以方便地对键值对进行增删改查等操作。本… 阅读更多...

开源模型应用落地-chatglm3-6b-zero/one/few-shot-入门篇(五)
一、前言 Zero-Shot、One-Shot和Few-Shot是机器学习领域中重要的概念,特别是在自然语言处理和计算机视觉领域。通过Zero-Shot、One-Shot和Few-Shot学习,模型可以更好地处理未知的情况和新任务,减少对大量标注数据的依赖,提高模型的… 阅读更多...

带函数的多代理 AutoGen - 使用代码示例分步
目录 一、说明二、AutoGen 的本质:可对话和可定制的代理2.1 简化任务自动化和人机交互2.2 赋能动态对话 三、分步代码示例3.1 第 1 步:安装必要的库3.2 第 2 步:设置 API 终端节点3.3 第 3 步:导入库并设置配置3.4 第 4 步&#… 阅读更多...

JavaScript函数式编程
函数式编程
课程介绍
为什么要学习函数编程以及什么是函数式编程函数式编程的特性(纯函数、柯里化、函数组合等)函数式编程的应用场景函数式编程库Lodash
为什么要学习函数式编程
函数式编程是非常古老的一个概念,早于第一台计算机的诞生, 函数式编程… 阅读更多...

c语言->贪吃蛇实战技巧结合EasyX简单实现页面管理(简单实现)
✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉
🍎个人主页:再无B~U~G-CSDN博客
1. 游戏背景 贪吃蛇是久负盛名的游戏,它也和俄罗斯⽅… 阅读更多...

如何做好软件平台的全生命周期管理?
一、为何需生命周期管理
做好软件平台的全生命周期管理至关重要,主要原因如下: 确保软件质量: 全生命周期管理涵盖了从需求分析、设计、开发、测试、部署、运行维护到废弃的全过程,通过有效的管理可以确保每个阶段的质量控制&… 阅读更多...

Linux-docker安装数据库redis
1.拉取redis镜像
docker pull redis # 下载最新的redis版本
docker pull redis:版本号 # 下载指定的redis版本ps:我这是已经下载最新版本的redis 2.查看redis镜像
docker images3.创建挂在路径并授权
mkdir -p /usr/local/redis/data
mkdir -p /usr/local… 阅读更多...

【贡献者列表】如何为你的文档添加贡献者头像
相关pr:
https://github.com/ant-design/ant-design-web3/pull/790
源码仓库:
https://github.com/thinkasany/contributors-list
使用代码
npm i github-contributors-lists使用效果 实现原理
通过 github api https://api.github.com/repos/${owner}/${repo… 阅读更多...

C/C++内存泄漏及检测
“该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用… 阅读更多...

RCTKG:针对用户的罕见病临床试验知识图谱
RCTKG:针对用户的罕见病临床试验知识图谱 提出背景构建方法RCTKG 介绍 提出背景
RCTKG 论文:https://ebooks.iospress.nl/doi/10.3233/SHTI230934
RCTKG 平台:http://54.205.155.56:7474/browser/
罕见病检索平台:PubCaseFinde… 阅读更多...

如何在极狐GitLab 使用Docker 仓库功能
本文作者:徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。
本文主要讲述了如何在[极狐GitLab… 阅读更多...