gcc

记一次Linux病毒处理

别说谁变了你拦得住时间么 提交于 2021-02-16 10:04:26
0 1 PART 病毒介绍 XXX单位现场文员发现网络异常卡顿,经过查看数据包确定为XXXOA系统服务器大量上传数据从而占用网络。 初步分析为服务器被感染挖矿病毒,被感染主机出现一个或多个十位随机字母病毒进程,主要目的消耗服务各项资源。 此病毒会自我保护和自我恢复。 此病毒会往外发送大量SYN数据包,造成网络堵塞。 03 PART 病毒分析 病毒特征比较明显,进程列表中会出现十位随机字母病毒进程,并占用大量CPU。 除此之外还会在修改 /etc/crontab 和新增文件/etc/cron.hourly/gcc.sh 来启动定时任务。 /etc/cron.hourly/gcc.sh 内容如下 脚本内容如下: 打开网卡,然后启动 libudev.so。 该程序还会同时启动多个进程来监控 libudev.so 进程是否被杀掉,如果被关掉了,会再把 libudev.so 拉起来,而且这个监控进程为了防止备关掉,还会不停的变换自己的进程名和进程号。 可以知道/lib/libkill.so是病原体,通过gcc.sh每隔3min自动检测一次,如果木马程序不存在,就从病原体复制一份儿到/lib/libkill.so.6 。 副本/lib/libkill. so.6执行,生成一个随机命名的程序,丢到/usr/bin/和/boot等目录 同时修改了自启动配置chkc onfig –add xxx

“Hacking: The Art of Exploitation” - Assembly Inconsistencies in book examples vs. my system's gcc

怎甘沉沦 提交于 2021-02-16 09:18:07
问题 I am studying "Hacking: The Art of Exploitation". I am trying to follow the code examples, but for some reason the assembly codes simply does not match the one on my actual Linux (running on Virtual Box as Guest). I have made sure that I have installed 32 bit Linux OS. Is there any args that I can pass to gcc that lets me compile the code into an assembly that matches closely with the ones given in the book? I would be fine reconciling the code differences between the book & what I see if

Tracing Memory access of an oracle process : Intel PinTools

感情迁移 提交于 2021-02-16 08:46:39
https://mahmoudhatem.wordpress.com/2016/11/07/tracing-memory-access-of-an-oracle-process-intel-pintools/ November 7, 2016 Mahmoud Hatem troubleshoting This blog post is motivated by a conversation with Frits Hoogland on his great blog post The curious case of the missing semctl call about how he managed to find a useful memory address (suspecting a fixed SGA variable) used by a process in his investigation.So here i will show how we can easily generates a trace of all/range of memory addresses referenced by a program with an acceptable overhead. For that we are going to use a Binary

虚拟机上安装centos8.0

天涯浪子 提交于 2021-02-15 16:52:37
一、准备宿主机 为了培训Hadoop生态的部署和调优技术,需要准备3台虚拟机部署Hadoop集群环境,能够保证HA,即主要服务没有单点故障,可执行基本功能,完成小内存模式的参数调整。 1.1、准备安装包 宿主机操作系统为Win7 SP1,内存16G,磁盘为256G的SSD盘 1)虚拟机:VMware® Workstation 15 Pro 15.5.0 build-14665864 中文版 2)Linux系统:CentOS-8-x86_64-1905-dvd1.iso (Centos 8.0) 1.2、配置网络 安装VMware后,宿主机除了无线网络外共有3个网卡,分别是: 1) 本地网卡,192.168.3.127,掩码 255.255.255.0 2) Vmnet1(用于支持host only模式),192.168.121.1,掩码 255.255.255.0 3) Vmnet8(用于支持NAT [1] 模式),192.168.154.1,掩码 255.255.255.0 在本次实验中,我们部署的虚拟机采用NAT模式网络。 启动VMware Workstation Pro,点击 编辑->虚拟网络编辑器… 1.2.1 查看NAT设置 点击“NAT设置(S) …”,可以查看NAT设置 即NAT的网关为192.168.154.2,在虚拟机中将IP设置为192.168.154段

Confused by [ebp-0xc] instead of [ebp-4] in Art of Exploitation example

回眸只為那壹抹淺笑 提交于 2021-02-15 06:32:53
问题 I am reading the book Hacking: The Art of Exploitation , 2nd Edition and in the simple C program #include <stdio.h> int main() { int i; for (i = 0; i < 10; i++) { puts("Hello, world!\n"); } return 0; } The book lists that the gdb debug will modify the ebp register first: (gdb) x/i $eip 0x8048384 <main+16>: mov DWORD PTR [ebp-4],0x0 As it explains that This assembly instruction will move the value of 0 into memory located at the address stored in the EBP register, minus 4. This is where the C

Confused by [ebp-0xc] instead of [ebp-4] in Art of Exploitation example

隐身守侯 提交于 2021-02-15 06:31:44
问题 I am reading the book Hacking: The Art of Exploitation , 2nd Edition and in the simple C program #include <stdio.h> int main() { int i; for (i = 0; i < 10; i++) { puts("Hello, world!\n"); } return 0; } The book lists that the gdb debug will modify the ebp register first: (gdb) x/i $eip 0x8048384 <main+16>: mov DWORD PTR [ebp-4],0x0 As it explains that This assembly instruction will move the value of 0 into memory located at the address stored in the EBP register, minus 4. This is where the C

来玩一玩Linux常见命令~

我是研究僧i 提交于 2021-02-15 06:20:57
写在前面: 小伙伴儿们,大家好!上一篇我们学习了Linux相关部署方面问题; 这次我们一起来玩一玩常见的Linux相关命令,有点意思; 思维导图: 1,命令格式; 我们刚打开FinalShell,可能是这个样子的: 那么我们解释一下这些; root代表当前登录用户,localhost代表主机名, ~代表当前主机目录,#代表用户权限 #表示超级用户,$表示普通用户; 2,常见目录介绍; 我们先切换到系统根目录 /,看看有哪些常见目录: 我们首先看一下根目录/ 下的 bin 和 sbin; 在user下也有bin和sbin;看看两者的区别; 根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的。 bin: bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df; /usr/bin: 主 要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv; /sbin: 主 要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump; /usr/sbin: 放置一些网路管理的必备程式例如:dhcpd、httpd、imap; 稍微了解即可,看一看bin和sbin的区别: bin目录下的命令普通用户和root用户都可以执行,但是sbin下的命令只有root用户可以执行; 系统根目录下的其他命令: /

来玩一玩Linux常见命令~

若如初见. 提交于 2021-02-15 05:58:57
写在前面: 小伙伴儿们,大家好!上一篇我们学习了Linux相关部署方面问题; 这次我们一起来玩一玩常见的Linux相关命令,有点意思; 思维导图: 1,命令格式; 我们刚打开FinalShell,可能是这个样子的: 那么我们解释一下这些; root代表当前登录用户,localhost代表主机名, ~代表当前主机目录,#代表用户权限 #表示超级用户,$表示普通用户; 2,常见目录介绍; 我们先切换到系统根目录 /,看看有哪些常见目录: 我们首先看一下根目录/ 下的 bin 和 sbin; 在user下也有bin和sbin;看看两者的区别; 根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的。 bin: bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df; /usr/bin: 主 要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv; /sbin: 主 要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump; /usr/sbin: 放置一些网路管理的必备程式例如:dhcpd、httpd、imap; 稍微了解即可,看一看bin和sbin的区别: bin目录下的命令普通用户和root用户都可以执行,但是sbin下的命令只有root用户可以执行; 系统根目录下的其他命令: /

cmake指定交叉编译

北城余情 提交于 2021-02-14 16:19:32
新建文件arm.cmake,内容如下 #指定嵌入式系统的编译输出目录 set(SYSROOT_PATH "/home/suka/out/system") #指定交叉编译器路径 set(TOOLSCHAIN_PATH "/home/suka/toolschain/") set(TOOLCHAIN_HOST "${TOOLSCHAIN_PATH}usr/bin/arm-linux") #message("${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE}") message(STATUS "Using sysroot path: ${SYSROOT_PATH}") set(TOOLCHAIN_CC "${TOOLCHAIN_HOST}-gcc") set(TOOLCHAIN_CXX "${TOOLCHAIN_HOST}-g++") #告诉cmake是进行交叉编译 set(CMAKE_CROSSCOMPILING TRUE) # Define name of the target system set(CMAKE_SYSTEM_NAME "Linux") # Define the compiler set(CMAKE_C_COMPILER ${TOOLCHAIN_CC}) set(CMAKE_CXX_COMPILER $

[CTSC2018]假面

时光怂恿深爱的人放手 提交于 2021-02-14 11:39:23
题目大意:   有$n(n\le200)$个人,每个人初始血量为$m_i(m_i\le100)$对这些人进行$q(q\le2\times10^5)$次操作,操作包含以下两种:     1. 选择编号为$id$的人,有$p$的概率扣掉一滴血;     2. 编号为$id_1,id_2,\ldots,id_k$的$k$个人,等概率的从这$k$个人中选取一个活着的人封印,问这$k$个人中每个人被封印的概率是多少。   处理完所有操作后,求每个人最终血量的期望。 思路:   $f[i][j]$表示第$i$个人血量为$j$的概率,则对于每次的操作1,有转移方程$f'[i][j]=f[i][j]\times(1-p)+f[i][j+1]\times p$。特别地,对于$j=0$的情况,$f'[i][0]=f[i][0]+f[i][1]\times p$,即,血量为$0$时,不管怎么扣血,血量仍旧为$0$。   考虑操作$2$,用$alive(x)$和$dead(x)$分别表示$x$在当前局面下,存活或死亡的概率。用$g[j]$表示当前集合中不包括当前封印的有$j$人存活的概率,每次把新人$x$加入到集合中时,转移方程为$g'[j]=alive(x)\times g[j-1]+dead(x)\times g[j]$。若封印的人为$i$,则答案为$alive(i)\times\sum_{j=0}^