破解kate不让用root运行的破解办法

news/2024/11/20 7:44:40/

众所周知,最近几年kate不让用root运行了,原因很sb,死板的德国佬认为会造成安全问题

kate自带的提权保存功能不适合/root/.bashrc或/tmp/root-created-600-file这种文件不可读的情况

SUDO_EDITOR=kate sudoedit不适合/tmp/root-created-600-file这种目录可写但文件不可读的情况

本质上是kate源码里边检查getuid是否为0,为0就拒绝运行

可以自己编译一个kate源码级破解,也可以二进制破解

源码在main.cpp,长下面这样:

/*** Check whether we are running as root**/
if (getuid() == 0) // uid = user id = 0 ==> means if you are user 0 (aka root)
{std::cout << "Executing Kate as root is not possible. To edit files as root use:" << std::endl;std::cout << "SUDO_EDITOR=kate sudoedit <file>" << std::endl;return 0;
}

下面是二进制破解方法:

1、使用objdump -Crd /usr/bin/kate>kate.s反编译kate

2、打开kate.s,并搜索getuid,找到下面两种代码之一:

jne情形,分短编码75 xx和长编码0F 85 xx xx xx xx:

    7fce:	e8 5d f8 ff ff       	call   7830 <getuid@plt>7fd3:	85 c0                	test   %eax,%eax7fd5:	75 28                	jne    7fff <__cxa_finalize@plt+0x9f>

je情形,也分短编码74 xx和长编码0F 84 xx xx xx xx:

   2a98e:   e8 ed ce ff ff          callq  27880 <getuid@plt>2a993:   85 c0                   test   %eax,%eax2a995:   0f 84 e9 1e 00 00       je     2c884 <__cxa_finalize@plt+0x1f5c>

3、使用任意十六进制编辑器(如okteta(kde)、hexer(终端)等)以root权限编辑/usr/bin/kate,找到对应的二进制代码,对于上面几种情况进行不同修改:

  • jne,短编码75 xx(jne rel8),改为EB xx(jmp rel8)
  • jne,长编码0F 85 xx xx xx xx(jne rel32),90 E9 xx xx xx xx(nop; jmp rel32,x86相对跳转相对的是下一条指令,所以应向后对齐)
  • je,短编码74 xx(je rel8),改为90 90(nop; nop)
  • jne,长编码0F 84 xx xx xx xx(je rel32),改为90 90 90 90 90 90(nop; nop; nop; nop; nop; nop)


http://www.ppmy.cn/news/63463.html

相关文章

上传文件 —— Servlet

目录 一、核心方法 二、实现上传文件代码 上传文件也是一个常见的需求&#xff0c;在Servlet中也提供了支持。 上传文件的时候&#xff0c;在前端需要用到 form 表单&#xff0c;在 form 表单中需要使用到特殊的类型&#xff1a; form-data。此时提交文件的时候&#xff0c;浏…

一行代码绘制高分SCI火山图

一、概述 在近半年中&#xff0c;我读了很多的高分SCI文章&#xff0c;很多文章中都有多种不同的火山图&#xff0c;包括「普通的火山图、渐变火山图、以及包含GO通路信息的火山图」&#xff01; 经过一段时间的文献阅读和资料查询&#xff0c;终于找到了一个好用而且简单的包…

Milvus应用开发实战【语义搜索】

美国总统竞选活动即将到来。 现在是回顾拜登政府上任头两年的一些演讲的好时机。 搜索一些演讲记录以了解更多关于白宫迄今为止关于某些主题的信息不是很好吗&#xff1f; 假设我们要搜索演讲的内容。 我们该怎么做&#xff1f; 我们可以使用语义搜索。 语义搜索是目前人工智能…

网络路径下倾斜模型生产流程-模型s3c化

网络路径下倾斜模型生产流程-模型s3c化 将osgb模型处理文件拷贝到osgb模型文件夹下 在osgb模型文件夹下&#xff0c;新建与工程同名文件夹&#xff0c;然后将原文件夹下所有文件拷贝到YNPE27文件夹下&#xff0c; E:\YNPE27\CC\YNPE27\Productions\Production_2\YNPE27 打开o…

腾讯云轻量应用服务器使用限制(买前必看)

腾讯云轻量应用服务器和云服务器CVM相比具有一些限制&#xff0c;比如轻量服务器不支持更换内网IP地址&#xff0c;轻量服务器只能套餐整体升级且不支持降配&#xff0c;轻量不支持用户自定义配置私有网络VPC&#xff0c;还有如实例配额、云硬盘配额、备案限制和内网连通性等限…

【工作笔记】Springboot一个比较通用的数据脱敏处理办法

背景 个人信息中的手机号、邮箱等属于敏感数据&#xff0c;其中手机号需要加密存储&#xff0c;邮箱可以直接存储但是在获取和展示时要做脱敏处理&#xff1b; 针对此类敏感数据&#xff0c; 介绍一种比较通用的脱敏方法。 基于注解 1. 定义DataMask注解 Retention(RetentionPo…

Maven 知识点总结

文章目录 核心点&#xff1a;Maven 能做什么&#xff1f;Maven的安装1、安装2、配置文件 Maven 的概念1、坐标&#xff1a;通过坐标唯一定位2、scope依赖范围3、maven的传递性依赖性质4、optional可选依赖5、exclusion排除依赖6、properties归类依赖7、优化依赖 Maven基本使用1…

125-Linux_守护进程

文章目录 1. 什么是Linux守护进程&#xff1f;2. 如何创建Linux守护进程&#xff1f;① 切换当前工作目录到根目录&#xff0c;这样可以避免守护进程在其它目录中的文件被占用。② 使用fork()函数创建子进程&#xff0c;并在父进程中退出。③ 在子进程中调用setsid()函数创建新…