首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

哈勃linux沙箱-源码剖析上篇

哈勃沙箱技术总览 第一节 哈勃linux沙箱 今天说的哈勃沙箱是腾讯哈勃检测系统中,linux恶意文件检测部分的开源代码。...从static_analyzer.py来看,哈勃linux沙箱静态检测,获取的信息主要有六个方面: ? 1....文件类型信息 通过file命令获取文件信息,比如是二进制还是其他类型文件,在linux中是无法通过后缀判断它是什么文件的。 ? 2....ltrace和strace ltrace和strace都是基于ptrace机制进行检测的,但是又有很大的不同,strace跟踪系统调用,而ltrace可以跟踪动态库函数。...这样在进程执行到相应的库函数后,就可以通知到了ltraceltrace将对应的库函数打印出来之后,继续执行子进程。

2.5K10

linux下的程序调试方法汇总

那么调试工具就显得尤为重要,linux作为笔者重要的开发平台,在linux中讨论调试工具主要是为那些入门者提供一些帮助。调试工具能让我们能够监测、控制和纠正正在运行的程序。...跟踪 strace的和ltrace是两个在Linux中用来追踪程序的执行细节的跟踪工具。 strace: strace拦截和记录系统调用及其接收的信号。...strace过滤成只有系统调用的输出 ltrace: ltrace跟踪和记录一个进程的动态(运行时)库的调用及其收到的信号。它也可以跟踪一个进程所作的系统调用。它的用法是类似与strace。...ltrace command '-i' 选项在调用库时打印指令指针。 '-S' 选项被用来现实系统调用和库调用 所有可用的选项请参阅ltrace手册。 ?...在GDB中获得帮助 总结 在这篇文章中,我们已经看到不同类型的Linux用户空间的调试工具。

3.9K21
您找到你想要的搜索结果了吗?
是的
没有找到

LD_PRELOAD 劫持 PWD 为什么失败了 | Linux 后门系列

C语言,Linux 汇编,Linux 链接装载等相关知识,终于在快一年的时候,我把这个问题解决了 它就像一座小山,挡在我前面,我一边成长,一边时不时去踹两脚,看看能不能解决问题......那下面开始我们的冒险 ---- 经过测试我发现: 使用 LD_PRELOAD 劫持 puts 函数后,执行 whoami 就会有shell反弹到msf上,但是同样调用 puts 的 pwd 就死活弹不回来 使用 ltrace...命令追踪 whoami 和 pwd 命令,这样两个命令都可以反弹shell 使用 ltrace 追踪 ssh、id 等命令的时候不会反弹shell 从上面的现象我们可以看出, ltrace 本身不会触发...payload,所以 ltrace 追踪 pwd 能够触发payload 反弹shell主要还是因为 pwd,所以本质上还是因为 whoami 和 pwd 两个命令不同 0x01 源代码 我开始怀疑pwd...的源代码中会不会根本就没有调用 puts ,在和 ltrace 配合使用的时候因为一些底层缘故调用了 puts 函数,导致反弹shell,所以我去查了 pwd 的源代码 pwd 和 whoami 命令都源于

2K40

Linux调试工具

更多ltrace信息 最近更新: ltrace 0.7.1 发布,程序调试工具 发布于 1年前 Linux 调试器...更多ltrace信息 KGTP 是一个 实时 轻量级 Linux 调试器 和 跟踪器 。 使用KGTP 不需要 在Linux内核上打PATCH或者重新编译,只要编译KGTP模块并insmod就可以。...更多ltrace信息 KGTP 是一个 实时 轻量级 Linux 调试器 和 跟踪器 。 使用KGTP 不需要 在Linux内核上打PATCH或者重新编译,只要编译KGTP模块并insmod就可以。...更多LTTng信息 程序调试工具 ltrace ltrace 是一个调试程序,可在它退出之前执行指定命令来拦截和记录动态库调用和信号接收过程。它还可以拦截并打印系统调用。...更多ltrace信息 最近更新: ltrace 0.7.1 发布,程序调试工具 发布于 1年前 Linux 调试器 和 跟踪器 KGTP KGTP 是一个 实时 轻量级 Linux

9.8K43

LD_PRELOAD 后门 | bypass disable_functions

disable_functions 劫持命令调用函数的步骤: 在内部重写函数,将原有的函数覆盖 将原函数指针赋值给一个变量 触发重写的函数 在重写函数中执行原函数 照常返回正常值(保证命令的正常执行) 漏洞原理 Linux...劫持失败原因埋坑了) whoami和pwd都执行了puts()函数,但whoami会执行payload而pwd命令就不会执行payload whoami 命令和 pwd 命令都调用了 puts 函数,使用 ltrace...进行查看的时候还都实际调用执行了,但是 pwd 不会触发 payload 设置好后门后使用 ltrace 追踪 whoami 和 pwd 命令,此时,两个都可以执行 payload ltrace...ssh、id 等命令的时候不会触发 payload 劫持失败原因 虽然我进行函数劫持的过程中没遇到这个问题,不过也在这里记录一下吧,以后如果遇到劫持失败的情况也可以做一个可能性参考情况 里面是作者ltrace

80540

linux环境常用的性能监控和协助开发调试工具

linux有诸多优秀的工具帮助我们分析服务器各项性能指标和协助开发调试工作。下面只列举比较基础的命令,且一般是集成在linux环境中而不需再次安装的命令。...同时,linux page cache的大小是4KB,在non-direct IO 的情况下,IO都是先写到linux的page cache里。...F、跟踪调试相关 常用工具:strace、ltrace、dtrace/ftrace、blktrace strace: 跟踪运行进程的系统调用耗费时间、出错信息、参数传递等。...ltrace:跟踪运行进程的函数库调用耗费时间、出错信息、参数传递等。 dtrace/ftrace:上述两个工具的综合。...参考: https://github.com/brendangregg/perf-tools http://crtags.blogspot.com/2012/04/dtrace-ftrace-ltrace-strace-so-many-to.html

3.7K12

Linux服务器那么多参数该如何监控,掌握这些Linux监控命令可以早点下班!

为了提高效率,Linux 会把读进来的文件在内存中缓存下来(局部性原理),即使程序结束,cache 也不会被自动释放。因此,当有程序进行大量的读文件操作时,就会发现内存使用率升高了。...当其他程序需要使用内存时,Linux 会根据自己的缓存策略(例如 LRU)将这些没人使用的 cache 释放掉,给其他程序使用,当然也可以手动释放缓存: echo 1 > /proc/sys/vm/drop_caches...Linux 系统会将不经常使用的内存放到交换分区中。...-e trace=process -e trace=network -e trace=signal -e trace=ipc -e trace=desc -e trace=memory 14.3 ltrace...ltrace命令用于打印动态链接库访问: ltrace -p ltrace -S # syscall 15.

56010

Linux 系统常用监控命令总结,强烈建议收藏!

为了提高效率,Linux 会把读进来的文件在内存中缓存下来(局部性原理),即使程序结束,cache 也不会被自动释放。因此,当有程序进行大量的读文件操作时,就会发现内存使用率升高了。...当其他程序需要使用内存时,Linux 会根据自己的缓存策略(例如 LRU)将这些没人使用的 cache 释放掉,给其他程序使用,当然也可以手动释放缓存: echo 1 > /proc/sys/vm/drop_caches...Linux 系统会将不经常使用的内存放到交换分区中。...file -e trace=process -e trace=network -e trace=signal -e trace=ipc -e trace=desc -e trace=memory 14.3 ltrace...ltrace命令用于打印动态链接库访问: ltrace -p ltrace -S # syscall 15.

1.3K00

一个Python开源项目-哈勃沙箱源码剖析(下)

第一节 strace机制 上一篇讲到了strace和ltrace都是基于ptrace机制,但是对ptrace机制和strace/ltrace是如何利用ptrace监控系统调用,没有进行详细的讲解。...数据的捕获流程分为如下5部分: 在内核有一个组件叫 sysdig-probe,也可以把它称为数据探头,它通过跟踪 linux 内核来进行数据抓获。...以linux为例,大致如下: Linux的System.map文件列出了详细的系统调用(syscall),而kernel-header源码通过dwarfdump生成的module.dwarf文件中会包含很多内核数据结构...再用这个profile文件解析dump下来的物理内存,就很容易找到植入Rootkit的机器活动时的进程(linux_psaux)、网络通信(linux_netstat)、活动文件(linux_lsof)...、驱动模块(linux_lsmod)等等 ?

1.4K10

Linux后台服务常用诊断命令和方法

rBAoL1-Q20mAN44lAAO6uDAqdEA653.png 目录 Linux常用诊断命令和方法... 1 1.      ...block与就绪之和 memory swpd ,虚拟内存已使用的大小,最好为0,或者在一定时间内保持不变,swpd大小一般为内存的2倍,腾讯的服务器基本上都为2Gfree,空闲的物理内存的大小buff,Linux...3、如果是内核态,则使用strace进行性能分析, 另外可以使用其他工具(比如ltrace等)辅助。 2.2.2 ldd 显示程序需要使用的动态库和实际使用的动态库 ldd -r ....跟踪当前库函数 参数和strace很接近,基本一致 常用法:ltrace -p 5157 -T -ttt -c ltrace -p 5157 -T -ttt -c -o ltrace.txt 2.2.5.../pledgeseller 3.11 查看进程的运行堆栈信息 gstack thread-pid 3.12 生成core文件 gcore pid kill -6 pid 3.13性能诊断 - Linux

1.6K82

Linux内核级木马与病毒攻防:基础工具介绍

要想在Linux系统上开发或研究木马病毒等特殊程序,我们需要使用一系列强大的开发和调试攻击。本节先介绍几种在Linux系统上极为强大的工具。...第一个当然是gdb了,在Linux上,它是唯一能用于程序调试的利器。...; } 然后使用gcc编译成可执行文件,命令如下: gcc -Wall -g hello_world.c -o hello_world 注意到gcc也是在Linux上进行程序开发必不可少的编译器...另外一个类似工具叫ltrace,它的作用是能发现程序执行时加载了那些动态链接库,同时打印出程序对链接库内的函数调用。...在linux系统上还有一系列虚拟系统文件或设备能用于读取当前运行进程的各种重要信息,例如先运行ubuntu系统上的firefox程序,然后使用pidof firefox查看他对应的进程id,在我机器上其

1.5K10
领券