网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
4.1 FastIR
功能:收集操作系统的关键日志、关键信息,方便后续取证和排查分析。
4.2 BrowsingHistoryView
功能:收集浏览器的历史记录,方便追溯域名、URL 的访问来源是否源自于用户行为。
5 辅助工具
5.1 Hash
功能:文件 hash 计算工具,可计算文件 MD5、SHA1、CRC 值,可用于辅助判断文件是否被篡改,或者使用哈希值到威胁情报网站查看是否为恶意文件。
5.2 ntfsdir
功能:病毒也有可能是以创建服务启动项的方式保持长久运行,点击 Autoruns 的 Services 功能,如下图,检查是否有异常的服务启动项。
5.3 Unlocker
功能:可对难以删除的文件进行强制删除(包括锁定的文件),需安装,安装后右键菜单”Unlocker“即可弹出如下界面:
6 Webshell 查杀工具
6.1 wscan
功能:深信服自研的一款 Webshell 查杀工具。
6.2 D 盾
功能:D 盾是迪元素科技的一款 Webshell 查杀工具。
7 专杀工具
7.1 飞客蠕虫专杀
功能:专门针对飞客蠕虫病毒进行查杀的工具。
飞客蠕虫专杀工具有 kidokiller(卡巴斯基出品)、TMCleanTool(趋势科技出品)。
Kidokiller 运行截图如下,红色方框的所有 0 值表明没有中飞客蠕虫,如果有非 0 值,即说明中了飞客蠕虫。
TMCleanTool 的运行截图如下,有威胁项即表明中了飞客蠕虫。
7.2 Ramnit 专杀
功能:专门针对 Ramnit 类家族病毒进行查杀的工具。
FxRamnit 是赛门铁克出品的 Ramnit 专杀工具,其运行界面如下,点击”Start“按钮即可:
注:由于 Ramnit 是全盘感染性病毒,故此专杀工具运行时间比较长,需耐心等待(FxRamnit 常常给人一种” 假死 “的感觉)。
8.性能测试工具——gperftools
gperftools google推出的一个性能分析工具,主要由四个组件组成:
1、Tcmalloc内存分析器
2、Heap-profiler
Heap-profiler是内存监控器,可以随时知道内存的使用情况[2]。
3、Heap-checker
Heap-checker是专门检测内存泄漏的工具
4、Cpu-profiler
Cpu-profiler主要是通过采样的的方式,给出一段时间内程序实际占用cpu时间偏进行统计和分析。
相关介绍可见:
Home · gperftools/gperftools Wiki · GitHub
9.内存检测工具Sanitizers
GitHub :https://github.com/google/Sanitizers
使用文档: https://github.com/google/sanitizers/wiki
C++程序很容易出现越界、内存泄漏、内存重复释放、悬垂指针等问题,这些问题是新手的噩梦,但是一般的C++教程从来不教如何解决这些问题,导致很多人自学者都是人肉解决,从此给心理蒙上了阴影。其实针对C++有很多的工具可以用来定位这些问题,其中最垂手可得的是sanitizers,因为它已经被集成在编译器(gcc/clang/msvc)中,直接加上相关的编译选项就可以用,对于传说中恐怖的内存问题大都能手到擒来。
Sanitizers 是谷歌发起的开源工具集,包括了 AddressSanitizer, MemorySanitizer, ThreadSanitizer, LeakSanitizer,Sanitizers项目本是LLVM项目的一部分,但GNU也将该系列工具加入到了自家的 GCC 编译器中。GCC 从 4.8 版本开始支持 Address 和 Thread Sanitizer,4.9 版本开始支持 Leak Sanitizer 和 UB Sanitizer,这些都是查找隐藏 Bug 的利器。
gcc/g++ 使用 sanitizer:
gcc/g++ 编译只需要将 sanitizer 的标志作为 flag 设置即可,如下:
gcc/g++ -fsanitize=address -g -fno-omit-frame-pointer test.cpp
CMakeLists 使用 sanitizer :
使用 CMAKE_CXX_FLAGS 或 add_compile_options 的配置即可使用,如下:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
或者使用如下:
add_compile_options(-fsanitize=address -fno-omit-frame-pointer)
link_libraries(-fsanitize=address)
10.性能剖析工具perf
Wiki:https://perf.wiki.kernel.org/index.php/Main_Page
Perf 是内置于Linux 内核源码树中的性能剖析(profiling)工具。其基于事件采样原理,以性能事件为基础,常用于性能瓶颈的查找与热点代码的定位。
性能调优工具如 perf,Oprofile 等的基本原理都是对被监测对象进行采样,最简单的情形是根据 tick 中断进行采样,即在 tick 中断内触发采样点,在采样点里判断程序当时的上下文。假如一个程序 90% 的时间都花费在函数 foo() 上,那么 90% 的采样点都应该落在函数 foo的上下文中。只要采样频率足够高,采样时间足够长,那么以上推论就比较可靠。因此,通过 tick 触发采样,我们便可以了解程序中哪些地方最耗时间,从而重点分析。
11.调试器工具Windbg
Windbg是windows系统强大的调试器,在解决软件异常崩溃时非常有用,是我们用的最多的一款工具。
我们可以静态分析一异常发生时捕获到的dump文件,也可以将Windbg动态地挂载到目标进程中进行调试。比如遇到死循环时,可以采用动调试的方法,在Windbg中设置代码断点,可以确定到底死循环发生在哪个函数中。
Windbg排查异常问题时,其效率比我们直接去排查代码要高很多。Windbg的入门也相对简单,只需要掌握常用的命令,了解函数调用的栈分布图,知晓函数调用的栈回溯原理,但如果要深入分析,就需要有较深的软件开发经验和汇编语言基础了。
12.API Monitor
该工具可以来窥探其他软件在实现一些功能时都调用了哪些系统API:
13.库依赖查看工具Dependency Walker
Depenency Walker是库依赖查看工具,可以查看dll库的导出接口信息,也可以查看exe和dll的依赖库信息。该工具是早期Visual Studio自带的工具,现在的Visual Studio不再打包该工具了,需要到Depenency Walker官网上去下载。
该工具主要用于排查程序启动时缺少库报错、找不到接口报错等问题。
引用
网信杯writeup-web部分 - _nul1 - 博客园
C++ performance 性能分析工具(sanitizers valgrind gprof gperftools perf)的使用_超级大洋葱806的博客-优快云博客_c++ 性能分析工具
【内存】内存检测工具sanitizer[内存泄漏、内存越界] VS valgrind_bandaoyu的博客-优快云博客
Windows开发值得推荐的十大软件分析工具,值得收藏_dvlinker的博客-优快云博客_软件分析工具
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
.(img-PulJneae-1715806739537)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!