网站建设服务器介绍图片网站的类型

news/2025/10/2 4:46:36/文章来源:
网站建设服务器介绍图片,网站的类型,grace wordpress,关键词优化除了做网站还有什么方法背景 1 工作需要#xff0c;需要修改一个java的程序逻辑#xff0c;之前都是用的frida修改的#xff0c;但是现在的工作场景#xff0c;重视效率#xff0c;所以frida这种重工具被pass了#xff0c;只能重新选其他工具#xff0c;初始的时候是想用java本身的一些修改工…背景 1 工作需要需要修改一个java的程序逻辑之前都是用的frida修改的但是现在的工作场景重视效率所以frida这种重工具被pass了只能重新选其他工具初始的时候是想用java本身的一些修改工具的上网发现了很多。比如cglib,javaassist,asm,byte buddy等 java本身hook工具的限制 1 2 3 4 5 6 7 8 9 10 11 但是发现这些都不符合我的应用场景首先我这个应用的jar包本身是加密的需要加载的过程中在自定义的classloader中进行解密才能得到最终的dex文件而这些工具大多都是通过调用默认的classloader来加载的直接就会检测当前dex文件不符合文件格式而报错 有一些可以绕过的又只能修改未加载的dex 后来redefineClass绕过了发现他只能修改部分逻辑而我要修改的变量是一个private的redefineClass不能修改函数的签名即不能增加一个方法来操作这个private变量 再后来我又绕过了可以修改了但是又发现我的判断条件位于上一层而这个类的实例中所有变量都无法判断我要执行的修改逻辑。。。。 越看问题越多要修改的逻辑也越多 同时程序中本身会打印日志我修改了字节码那他的日志中打印的行数也会有问题。。。。感觉爆炸了最后想到通过修改jdk来实现java逻辑的修改。 jdk修改 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 为了修改这个大概了解了下一个实例在内存中的分布以及jdk的实现。 首先想到jdk的类的实现主要通过两个类来实现一个是oopDesc一个是Klass我是这么理解的Klass代表一个类的结构oopDesc代表一个类的实例的结构这样把实现和实例分离开来多个类的实例oopDesc也只需要指向同一个Klass结构这样可以大幅节省空间 我计划的实现hook修改某个实例的大致流程如下 1、在实例初始化的时候获取这个实例的地址 2、通过实例指向的Klass结构找到我想修改的这个变量或方法的偏移地址 3、根据偏移获取我想要的变量地址 4、在需要修改的地方修改之前获取的变量地址中的内存数据。 下面一步步来解决 1、我想修改的是某个实例那么就在某个实例开始的地方来hook他。实例初始化的流程大概是 -加载一个类也就是把dex解析为一个klass类存储在内存中 -根据klass分配一个指定大小的内存空间 -初始化这个内存空间为一个Oop结构 -根据Klass的定义初始化成员变量 这里我是在第二步获取的空间反正实现就行后续没跟了。我是用的openjdk17修改了位于instanceKlass.cpp的allocate_instance函数其中的oop返回之后根据函数的入参获取当前的klass 的name判断是否是自己需要的klass来定位最终的oop的内存空间 1 2 3 4 看到这里的判断逻辑为什么我加了个长度判断而不是直接精准匹配某个字符串是因为这里jdk有个问题我同样新建一个a.b.c.d的类他这里klass的名字有的时候是a.b.c.d,有的时候a.b.c.d ,tmd多了一个 ,搞了我好久 2、找偏移硬核可以直接jdk里面找我反正就该一个类所以简单点通过开启java的配置启动项PrintFieldLayout来设置打印的,可以得到如下的内容:   ![图片描述](upload/attach/202309/642739_8XF5TPXE9KZV77H.webp) 这里就是Person在内存中的实例打个比方我要修改的是b变量位于20偏移处这里是10进制不是16进制 1 2 3 3、根据偏移地址找到数据。这里借助了工具jhsdb我从官网下载的jdk里面编译出来的都是不带这个工具的正好还下载了graal jdk,他里面是携带的。 jhsdb启动后注入进程看看上面这个变量的内存分布 1 2 3 4 5 6 7 上面是实例的结构我们想要的b发现并不是oop的地址加上20那这里是为什么呢  因为我想要获取的是一个AtomicInteger类的实例而不是简单的int实例存储的是指向相应的实例oop的指针而非简单的一个int数据。  再看看下面内存的16进制分布吧 20的16进制是0x14,我们偏移一加得到是0x8adade24这里我取了四字节是因为这里jdk采用了一个叫压缩指针的方式来存储实际的oop数据直接使用0x8adade24 * 8 0x456d6f120,就是我要去的实例地址然后再取这个AtomicInteger的数据的偏移即可得到实际我要改的那个b的地址  4 、在最终要修改的时候修改。这里就是我程序的逻辑了各不一样了 总结 1 2 这个就是最终的流程了优势就是不改java逻辑java程序无法感知应该 这个markdown不会插图呀。。。算了也懒得插了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双语网站建设报价营销与运营的区别

友情提示:全文13000多文字,预计阅读时间10-15分钟Spring Cloud Eureka作为常用的服务注册中心,我们有必要去了解其内在实现机制,这样出现问题的时候我们可以快速去定位问题。当我们搭建好Eureka Server服务注册中心并启动后&#…

广州达美网站建设wordpress黑帽插件

某项目中,我要给别人封装一个深度学习算法的SDK接口,运行在RK3588平台上,然后客户给我的交叉编译工具链是 然后我用他们给我的交叉编译工具链报下面的错误: aarch64-buildroot-linux-gnu-gcc --version /data/chw/aarch64/bin/cca…

免费建站网页无需登陆广西新狐网络科技有限公司

在主要课程学完并确定论文题目后,研究生撰写论文的时间为一年半至两年。(一)论文选题的要求1. 选题必须有一定的理论意义或应用价值论文选题必须对国民经济建设或在学术上有一定的价值。2.国内外研究动态论文选题时,学生必须掌握与该课题有关…

怎样做网站公司的销售如何修改百度上面的门店号码

转: js判断数组里是否有重复元素的方法 https://blog.csdn.net/longzhoufeng/article/details/78840974第一种方法:但是下面的这种方法数字字符串类似相同,返回的还是真,有点不靠谱,如果是其它的字符是可以的 var ary1…

杭州海淀区网站建设详情页设计思路遵循哪五个营销环节

目的: 鉴于目前网络上没有完整的kafka数据投递至splunk教程,通过本文操作步骤,您将实现kafka数据投递至splunk日志系统 实现思路: 创建kafka集群部署splunk,设置HTTP事件收集器部署connector服务创建connector任务&a…

h5技术建设网站汽车网页

一、新建一个立方体 ShiftA新建一个立方体用来演示。 二、物体的移动 xyz轴移动 点击下图图左侧的移动选项后,选中要移动的物体,会出现三个箭头的方向,这分别代表沿着x、y、z轴移动。xyz平面移动 这个小正方体代表沿着某一个面移动&#…

建立平台网站要多久小米网站制作

网络安全的重要性 网络安全是指保护网络系统免受未授权的访问、攻击、破坏或未经授权的数据泄露的能力。随着互联网的普及和数字化进程的加速,网络安全问题日益凸显,成为个人、企业和国家必须面对的重要挑战。 网络安全的威胁 网络安全威胁包括黑客攻…

AI元人文:致同行者书

致同行者书 当我站在自己勾勒的价值生态蓝图前,一种深切的无力感悄然浮现。这片思想的森林比想象中更加茂密,它的根系已延伸到我的认知边界之外。 或许你也在创造路上经历过这样的时刻——当灵感的光辉照亮前路,却发…

做个ppt模板网站开发wordpress安装主题

文章目录题目描述思路 & 代码二刷题目描述 很好的一道思路题,可以用来理解状态、双指针。注意:数组有序,否则需要用哈希表来做。 思路 & 代码 双指针:从头、尾往里走,重点在于为何不会丢失解状态 S(x, y)&…

怎样快速建设网站模板微官网是小程序吗

1、Router LSA LSA 链路状态通告,是OSPF进行路由计算的主要依据,在OSPF的LSU报文中携带,其头重要字段及解释: LS Type(链路状态类型):指示本LSA的类型。 在域内、域间、域外…

网站分享网站做一下301跳转

一、背景介绍 在我国的大江南北遍布着各种各样的果园,针对这些地处偏僻的果园及农场等环境,较为传统的安全防范方式是建立围墙,但是仅靠围墙仍然无法阻挡不法分子的有意入侵和破坏,因此为了及时发现和处理一些难以察觉的问题&…

各行各业网站建设外贸网站建设便宜

15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元…

手机网站内容规划seo网站培训优化怎么做

在本文中,我们提供了全面的JDBC教程(Java数据库连接性),这是Oracle提供的一种API,允许程序员处理Java应用程序中的不同数据库:它允许开发人员建立与数据库的连接,定义特定的客户端如何访问给定的…

网站的新闻栏与产品栏如何做北京seo排名方法

this 关键字是 Java 常用的关键字,可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用。 this.属性名 大部分时候,普通方法访问其他方法、成员变量时无须使用 this 前缀&#…

做网站选择系统牡丹江做网站的公司

项目有个简单的小需求就是在考试时间结束后把待考的用户状态修改为缺考,可以利用TimerTask来实现,在java中实现定时执行任务的功能,主要用到Timer和TimerTask类。其中Timer是用来在一个后台线程按指定的计划来执行指定的任务。 在新增考试的…

校园网站建设管理及责任表邵阳市城乡建设厅网站

1. tomcat下载 官网:https://tomcat.apache.org/ 镜像地址:https://mirrors.huaweicloud.com/apache/tomcat/ 1、选择一个版本下载,官网下载速度缓慢,推荐镜像 2、对压缩包进行解压,无需进行安装,解压放…

tuzicms做企业手机网站如何wordpress 安装主题后

一、消息队列消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。目前在生产环境中使用较多的消息队列有ActiveMQ、Rabbit…

最适合seo的网站源码检测一个网站用什么软件做的方法

柔性数组 1. 什么是柔性数组2. 柔性数组的特点3. 柔性数组的使用4. 柔性数组的优势 1. 什么是柔性数组 也许你从来没有听说过柔性数组这个概念,但是它确实是存在的。 C99中,结构体中的最后⼀个元素允许是未知大小的数组,这就叫做柔性数组成员…

海南手机网站建设公司哪家好仿cnzz 网站 源码

1、问题 回显的value和选项value类型不同 form中v-model"form.userId"是字符串类型 option中:value“item.userId” 选项id是数字类型 2、办法 :value“item.userId” 改为 :value“item.iduserId‘’”&#xff08;转换成字符串&#xff09; <el-form-item l…

软件管理app如何优化购物网站建设

网易科技讯 10 月 19 日消息&#xff0c;2019 世界 VR 产业大会在江西省南昌市举行。华为轮值董事长郭平发表了《打造 VR/AR 信息高速公路&#xff0c;支撑产业繁荣》的主题演讲。郭平认为&#xff0c;VR/AR 将成为 5G 时代的首批应用&#xff0c;与 5G 产业发展节奏高度匹配并…