计算机病毒与一次恶意样本的分析

计算机病毒什么是计算机病毒?《中华人民共和国计算机信息系统安全保护条例》中指出:计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并且能自我复制的一组计算机指令或者程序代码计算机病毒的种类任何以某种方式对用户、计算机、网络造成破坏的软件都可以被认定为计算机病毒木马蠕虫rootkit勒索病毒间谍软件垃圾邮件发送病毒计算机病毒的分析技术计算机病毒的分析技术可以分为静态分析和动态分析静态分析计算机病毒的静态分析技术是指在不运行程序时,对其进行分析的相关技术,比如最常用的是使用IDA对静态程序反汇编,然后查看整个程序的执行流程,还可以使用PEID对计算机病毒进...

恶意样本分析 2021-12-20 PM 44℃ 0条

整数溢出

整数溢出整数溢出可能会间接导致栈溢出和堆溢出溢出只有有符号数才会发生溢出,有符号数的最高位表示符号,当两个正数或者两个负数相加时,可能会改变符号位的值,导致溢出,溢出标志OF可以检测有符号数的溢出回绕无符号数0-1会变成最大的数,最大的数+1会变成0,进位标志OF可以检测无符号数的回绕截断将一个较大宽度的数存入到较小宽度的数中,会发生截断,保留后面几位,有可能会损失数值或者是符号常发生漏洞的函数size_t是无符号整数类型的sizeof()的结果memcpy()void memcpy(void dest, const void *src, size_t n);将src所指向的字符串中以s...

ctf 2021-12-15 PM 67℃ 1条

格式化字符串漏洞

格式化输出函数%[parameter][flags][width][.precision][length]type其中只有type是必选的parameter是一个POSIX扩展,用于指定某个参数,例如%3$p表示输出后面的第三参数flags用来调整输出和打印的符号、空白、、小数点等width用来指定输出字符的最小个数.precision用来指定打印符号个数、小数位数或者有效数字个数length用来指定参数的大小相关type%d:整形%u:无符号整形%x:十六进制%s:字符串%c:字符格式化字符串漏洞原理x86结构下,格式化字符串的参数是通过栈传递的根据_cdecl调用约定,将参数从右向左...

ctf 2021-12-15 PM 45℃ 0条

pwn栈溢出基础

栈栈是一种计算机系统中的数据结构,它按照先进后出的的方法存储数据,先进入的数据被压入栈底,最后进入的数据在栈顶c语言函数调用栈x86栈帧结构x64x64前六个参数保存在RDI,RSI,RDX,RCX,R8,R9寄存器中,如果有更多的参数,则保存在栈中栈溢出基本原理栈溢出就是程序向变量中写入的字节数超出了本身申请的字节数,导致栈中的其他变量被修改,轻则导致程序崩溃,重则使得攻击者控制整个程序基本条件:程序可以向栈中写入数据,且写入的数据没有得到良好的控制一个简单的例子#include <stdio.h> void sh() { system("/bin/sh...

ctf 2021-12-13 PM 62℃ 0条

reverse逆向学习(更新中)

逆向工程基础什么是逆向工程?程序接受一个输入,然后经过一系列计算最后提示成功,那个输入就是flag,这需要有一定的算法能力,和思维能力。什么是可执行文件?逆向工程分析的对象就是一个程序,即一个可执行文件。可执行文件的形成过程用户将用高级语言编写的源代码输入,然后编译器产生相对应的汇编代码,汇编器接受汇编代码后继续执行汇编操作,将生成的机器码临时存放于各对象文件中,这时候,链接器参与其中,将各对象文件连接起来,融合成完整的程序,最后按照可执行文件的格式,填入各环境指定的参数,形成一个可执行文件。不同格式的可执行文件PE格式的可执行文件PE文件由DOS头、PE文件头、节表及各级数据组成,可以...

ctf 2021-09-17 AM 71℃ 0条