首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
plugins
javascript
buffer
list
python
text
hashcode
substring
command
iostream
datetime
select
function
uri
tree
ascii
httpclient
dll
php5
typescript
nodejs
merge
ip
grid
spring
regex
solr
数组
js
input
int
expression
java
hashtable
erlang
php
version
integer
scala
range
process
settings
netty
dagger
subset
chat
bit
format
sum
object
php8
tags
stream
hash
golang
header
usb
post
const
timezone
char
web3
md5
perl
future
flutter
frameworks
go
cpython
request
testing
rsa
byte
match
fetch
utf-8
import
loops
bitmap
当前位置:
开发笔记
>
编程语言
> 正文
Linux系统下病毒的研究
作者:pacer猫处 | 来源:互联网 | 2017-08-17 13:31
Linux系统下病毒的研究--Linux通用技术-Linux编程与内核信息,下面是详情阅读。
1、简介
本文讨论了一个修改ELF文件实现共享库调用重定向的方法。修改可执行文件的程序连接表(Procedure Linkage Table)可以使被感染的文件调用外部的函数。这要比修改LD_PRELOAD环境变量实现调用的重定向优越的多,首先不牵扯到环境变量的修改,其次是更为隐蔽。本文将提供一个基于x86/Linux的实现。如果你对UNIX系统 病毒比较感兴趣请参考以下网址:
http://virus.beergrave.net/ (UNIX病毒邮件列表)
http://www.big.net.au/~silvio (作者主页)
2、程序连接表(Procedure Linkage Table)
下面是ELF规范中,关于程序连接表的叙述:
程序连接表(PLT)
在ELF文件中,全局偏移表(Global Offset Table,GOT)能够把位置无关的地址定位到绝对地址,程序连接表也有类似的作用,它能够把位置无关的函数调用定向到绝对地址。连接编辑器(link editor)不能解决程序从一个可执行文件或者共享库目标到另外一个的执行转移。结果,连接编辑器只能把包含程序转移控制的一些入口安排到程序连接表(PLT)中。在system V体系中,程序连接表位于共享正文中,但是它们使用私有全局偏移表(private global offset table)中的地址。动态连接器(例如:ld-2.2.2.so)会决定目标的绝对地址并且修改全局偏移表在内存中的影象。因而,动态连接器能够重定向这些入口,而勿需破坏程序正文的位置无关性和共享特性。可执行文件和共享目标文件有各自的程序连接表。
.PLT0ushl got_plus_4
jmp *got_plus_8
nop; nop
nop; nop
.PLT1:jmp *name1_in_GOT
pushl $offset
jmp .PLT0@PC
.PLT2:jmp *name2_in_GOT
pushl $offset
jmp .PLT0@PC
.......
.PLT0ushl 4(%ebx)
jmp *8(%ebx)
nop; nop
nop; nop
.PLT1:jmp *name1@GOT(%ebx)
pushl $offset
jmp .PLT0@PC
.PLT2:jmp name2@GOT(%ebx)
pushl $offset
jmp .PLT0@PC
....
linux
go
编辑器
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
编辑器
Linux 正则表达式基础及使用注意事项
本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ...
[详细]
蜡笔小新 2023-12-13 14:24:45
command
解决Docker中volume的权限问题的方法
在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ...
[详细]
蜡笔小新 2023-12-14 18:48:02
python
学习SLAM的女生,很酷
本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ...
[详细]
蜡笔小新 2023-12-14 17:55:18
select
数据库的存储结构及其重要性
本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ...
[详细]
蜡笔小新 2023-12-14 16:00:02
ip
Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ...
[详细]
蜡笔小新 2023-12-14 10:34:15
ip
Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ...
[详细]
蜡笔小新 2023-12-13 13:30:30
python
提升Python编程效率的十点建议
本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ...
[详细]
蜡笔小新 2023-12-14 21:51:04
python
Power Query中的删除错误/空值操作详解
本文详细介绍了在Power Query中进行删除错误和删除空值的操作方法。首先通过转换数据选项将数据源导入到Power BI Desktop中,然后进入Power Query查询编辑器界面,将需要更换类型的字段转换为整数类型。对于出现Error值的字段,可以选择删除错误或替换错误指令进行操作。对于出现null值的数据,可以通过下拉筛选按钮勾选掉null进行删除。最终的操作结果如图所示。本文的内容旨在帮助读者学习Power Query中的删除错误和删除空值操作,并便于日后的数据处理和分析。 ...
[详细]
蜡笔小新 2023-12-14 20:48:12
python
Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ...
[详细]
蜡笔小新 2023-12-14 17:57:01
python
Win10下游戏不能全屏的解决方法及兼容游戏列表
本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ...
[详细]
蜡笔小新 2023-12-14 13:40:42
python
Hyperledger Fabric外部链码构建与运行的开发笔记
本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ...
[详细]
蜡笔小新 2023-12-13 21:47:39
input
Perl的测试框架Test::Base简介及使用方法
本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ...
[详细]
蜡笔小新 2023-12-13 20:05:31
tree
推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ...
[详细]
蜡笔小新 2023-12-13 19:35:25
select
Oracle分析函数first_value()和last_value()的用法及原理
本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ...
[详细]
蜡笔小新 2023-12-13 19:07:23
plugins
微软发布OneNote for WordPress插件,支持一键从OneNote获取内容发布
微软今日发布了OneNoteforWordPress插件,该插件支持从OneNote一键获取 ...
[详细]
蜡笔小新 2023-12-13 18:35:09
pacer猫处
这个家伙很懒,什么也没留下!
Tags | 热门标签
plugins
javascript
buffer
list
python
text
hashcode
substring
command
iostream
datetime
select
function
uri
tree
ascii
httpclient
dll
php5
typescript
nodejs
merge
ip
grid
spring
regex
solr
数组
js
input
RankList | 热门文章
1
Echarts3实例 南丁格尔饼图
2
请问怎么用 DevOps 管理多个模块的项目
3
各位同僚,帮我分析分析,我该不该跳槽
4
orace result cache解析
5
开发笔记:ajax分页查询
6
poj 3041 Asteroids (二分图)
7
香蒲丽眼膜怎么样(李佳琦推荐平价眼膜评测)
8
基于django的webssh实现
9
JavaSE网络编程TCP协议单线程聊天室
10
关于异或XOR的一些理解
11
听说你想学习SQL,但是一直安装不好环境(MySQL安装详细指南附视频))
12
VUE3.0+Antdv+Asp.net WebApi开发学生信息管理系统(三)
13
graphql js stuff in final bundle
14
在数据库中查找重复的字符串
15
搭建Tensorflow的开发环境
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有