前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >常用问题排查工具和分析神器,值得收藏

常用问题排查工具和分析神器,值得收藏

作者头像
杨永贞
发布于 2022-06-12 09:15:44
发布于 2022-06-12 09:15:44
3K00
代码可运行
举报
运行总次数:0
代码可运行

作为软件开发人员,如何才能提升我们的开发效率?如何才能快速地解决开发过程中遇到的何种问题?根据我多年来的开发经历及取得的经验,我们需要掌握一些常用的软件分析工具,借助这些工具,可以快速高效地分析和解决问题。

1 进程分析工具

1.1 ProcessHacker

功能:ProcessHacker 是一款不错的进程分析工具,可查看所有进程信息,包括进程加载的 dll、进程打开的文件、进程读写的注册表……,也可以将特定进程的内存空间 Dump 到本地,此外还可以查看网络连接。

工具截图如下:

注:查看具体进程的详细信息,双击 Processes 列表中的进程名字即可。

1.2 ProcessExplorer

功能:ProcessExplorer 是一款不错的进程分析工具,微软官方推荐工具,稳定性和兼容性相对不错。可查看所有进程的信息,包括其加载的 dll、创建的线程、网络连接……,同样可以 Dump 出进程的内存空间到本地。

 1.3 ProcessMonitor

功能:ProcessMonitor 是一款实时刷新的进程信息监控工具,微软官方推荐工具,稳定性和兼容性也是相对出色。展示的信息很全面,且每一个打开的句柄、注册表、网络连接…… 都与具体的进程关联起来。

 1.4 XueTr

功能:XueTr(官网 www.xuetr.com)是一个 Windows 系统信息查看软件,可协助排查木马、后门等病毒,可以做为手工杀毒的辅助工具,XueTr(简称XT)是一个强大的系统信息查看软件,也是一个强大的手工杀毒软件,用它可以方便揪出电脑中的病毒木马,在逆向与安全领域很有名。它主要功能包含:

进程、线程、进程模块、进程窗口、进程内存、定时器、热键信息查看,杀进程、杀线程、卸载模块等功能。注册表编辑,端口信息查看,消息钩子查看,内核驱动模块查看,支持内核驱动模块的内存拷贝。

3.SSDT、Shadow SSDT、FSD、Keyboard、TCPIP、Classpnp、Atapi、Acpi、SCSI、Mouse、IDT、GDT 信息查看,并能检测和恢复 ssdt hook 和 inline hook。

4.CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego 等 Notify Routine 信息查看,并支持对这些 Notify Routine 的删除。

磁盘、卷、键盘、网络层等过滤驱动检测,并支持删除。

进程 iat、eat、inline hook、patches 检测和恢复。

文件系统查看,支持基本的文件操作。

查看(编辑)IE 插件、SPI、启动项、服务、Host 文件、映像劫持、文件关联、系统防火墙规则、IME。

13.ObjectType Hook 检测和恢复。

14.DPC 定时器检测和删除。

15.MBR Rootkit 检测和修复。

内核对象劫持检测。

其它一些手工杀毒时需要用到的功能,如修复 LSP、修复安全模式等。

1.5 PCHunter

功能:XueTr 的增强版,功能和 XueTr 差不多,可参考上图。推荐更多使用 PCHunter,减少出故障的概率。

1.6 ProcessDump

功能:可对指定的进程,将其进程空间内的所有模块单独 Dump 出来,甚至可 Dump 出隐藏的模块(即进程加载的 dll,这里通常是被注入)。

注:这是个命令行工具

1.7 PsTools

功能:PsTools 是命令行工具集,微软官方推荐,功能多而全,其涵盖的子功能(命令)如下:

2 流量分析工具

2.1 Wireshark

功能:Wireshark 是一款常用的网络抓包工具,同时也可以用于流量分析。

2.2 科来网络分析

功能:科来公司的一款流量分析工具,对比 Wireshark 要相对易用些(特别是流量分析入门人员),此外,该工具会自动将流量进行归类和统计。在某种意味上,还是比较方便的。

2.3 TCPView

功能:查看系统的网络连接详情,每一条连接对应的进程、协议、进程、源目地址、源目端口、连接状态…… 总之,可展示当前活跃连接的所有详细信息。

3 启动项分析工具

3.1 AutoRuns

功能:一款不错的启动项分析工具,微软官方推荐。只要涉及到启动项相关的信息,事无巨细,通通都可以查询得到,非常方便找到病毒的启动项。

4 信息收集工具

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 设置即可,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcc/g++ -fsanitize=address -g -fno-omit-frame-pointer test.cpp

CMakeLists 使用 sanitizer :

使用 CMAKE_CXX_FLAGS 或 add_compile_options 的配置即可使用,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")

或者使用如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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的博客-CSDN博客_c++ 性能分析工具

性能测试工具gperftools使用 - 走看看

gperftools性能测试工具介绍 - 简书

C++性能分析工具gperftools - 简书

编译器自带的调试神器sanitizers - 知乎

【内存】内存检测工具sanitizer[内存泄漏、内存越界] VS valgrind_bandaoyu的博客-CSDN博客

_nul1 - 博客园

Windows开发值得推荐的十大软件分析工具,值得收藏_dvlinker的博客-CSDN博客_软件分析工具

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
高并发性能测试经验分享(下)
本文介绍了如何通过定制化工具链分析定位解决了因内核栈溢出导致的程序core dump问题,以及如何使用AddressSanitizer工具定位解决了因内存泄漏导致的程序性能问题。通过这些方法,可以更高效地解决程序中的core dump和内存泄漏问题,提高程序的稳定性和性能。
腾讯技术工程官方号
2017/09/05
3.9K0
高并发性能测试经验分享(下)
牛逼的Linux性能剖析—perf
系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。本篇主要讲性能分析中常用的工具——perf。
刘盼
2019/05/08
6.2K0
牛逼的Linux性能剖析—perf
Memoro:一款功能强大的堆栈数据细节分析工具
Memoro是一款功能强大的堆栈数据细节分析工具,该工具可以给广大研究人员提供关于堆内存数据的详细信息,并给出分析数据。
FB客服
2024/04/26
2470
Memoro:一款功能强大的堆栈数据细节分析工具
性能测试工具CPU profiler(gperftools)的使用心得
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/83820080
10km
2019/05/25
16.1K0
gpreftools动态追踪Nginx进行性能分析
之前介绍了多种nginx调试工具,今天介绍nginx性能分析工具——gperftools
李俊鹏
2020/06/12
1.7K0
gpreftools动态追踪Nginx进行性能分析
超全整理!Linux 大牛收集的Linux性能分析工具合集
本文由马哥教育面授班23期学员推荐,转载自恒生研究院,作者为董西孝,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛苦贡献与付出。 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章。本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面。如果没有完善的计算机系统知识,网络知识和操作系统知识,文档中的工具,是不可能完全掌握的,另外对系统性能分析和优化是一个长期的系列。 本文档主要是结合Linux 大牛,Netflix 高级性能架构师 Brendan Greg
小小科
2018/05/04
3.6K0
超全整理!Linux 大牛收集的Linux性能分析工具合集
Windows安全应急--多种安全工具的介绍
AutoRuns是一款项目管理工具,它可以查看“资源管理器”,“IE浏览器”,“计划任务”,“驱动等等”,
HACK学习
2019/08/13
1.5K0
Windows安全应急--多种安全工具的介绍
应急响应系列之利用ProcessMonitor进行恶意文件分析
最近几年,伴随着数字货币的兴起,促进了经济利益驱动型黑客行为的暴增。各位做安服和应急的小伙伴不可避免的会与各种勒索病毒、挖矿病毒以及各种蠕虫病毒打交道,通过分析各大厂发的技术文章, 其主要使用逆向分析还原原始代码来了解病毒相关的功能与特征。
FB客服
2020/05/24
2.2K1
Linux 性能分析工具汇总
出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章。本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面。如果没有完善的计算机系统知识,网络知识和操作系统知识,文档中的工具,是不可能完全掌握的,另外对系统性能分析和优化是一个长期的系列。 本文档主要是结合Linux 大牛,搜集Linux系统性能优化相关文章整理后的一篇综合性文章,主要是结合博文对涉及到的原理和性能测试的工具展开说明。 背景知识:具备背景知识是分析性能问题时需要了解的。比如硬件 cache;再比如操作系统
刘盼
2022/09/29
1.4K0
Linux 性能分析工具汇总
windows 应急流程及实战演练
当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施,为企业挽回或减少经济损失。
信安之路
2018/10/18
3K0
windows 应急流程及实战演练
不会用这个工具,你的 Linux 服务器就是个摆设!
vmstat(VirtualMeomoryStatistics,虚拟内存统计)是 Linux 中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU 等的整体情况进行监视。
民工哥
2023/09/09
8930
不会用这个工具,你的 Linux 服务器就是个摆设!
性能分析工具—【perf】使用指南
perf 是Linux的一款性能分析工具,能够进行函数级和指令级的热点查找,可以用来分析程序中热点函数的CPU占用率,从而定位性能瓶颈。
用户9831583
2023/02/27
11.5K0
性能分析工具—【perf】使用指南
sanitizer工具集
Sanitizers是谷歌发起的开源工具集,包括了Address Sanitizer, undefined behavior Sanitizer, Thread Sanitizer, Leak Sanitizer。GCC从4.8版本开始支持Address sanitizer和Thread Sanitizer,4.9版本开始支持Leak Sanitizer和undefined behavior Sanitizer。
全栈程序员站长
2022/11/17
1.3K0
Linux下内存问题排查利器
内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于使用错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存未释放而浪费掉。
Linux兵工厂
2023/02/28
1.6K0
Linux下内存问题排查利器
超全整理!Linux 性能分析工具汇总
出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章。本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面。如果没有完善的计算机系统知识,网络知识和操作系统知识,文档中的工具,是不可能完全掌握的,另外对系统性能分析和优化是一个长期的系列。
释然IT杂谈
2022/10/27
1.1K0
超全整理!Linux 性能分析工具汇总
超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下
如果你经常遇到 Java 线上性能问题束手无策,看着线上服务 CPU 飙升一筹莫展,发现内存不断泄露满脸茫然。别慌,这里有一款低开销、自带火焰图、让你大呼好用的 Java 性能分析工具 - async-profiler。
未读代码
2019/12/16
15.1K0
超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下
史上最全Windows安全工具锦集
近日,深信服安全团队整理了一些常见的PE工具、调试反汇编工具、应急工具、流量分析工具和WebShell查杀工具,希望可以帮助到一些安全行业的初学者。
FB客服
2019/10/16
3.4K0
盘点近几年勒索病毒使用过的工具和漏洞
早前,我们从赎金角度探讨了下勒索病毒的发展演变,详细参考从赎金角度看勒索病毒演变。加密数字货币和Tor网络对勒索病毒的基础性支撑不再赘述,今天,我们回归技术,从另外一个角度,看勒索病毒为何会如此猖獗。为了很好的回答这个问题,我们同样不急于切入主题。首先,深信服安全团队基于大量真实的客户案例及大量的威胁情报信息,来盘点近几年勒索病毒使用过的工具和漏洞。
FB客服
2019/11/29
3.2K0
使用 VisualVM 和 JProfiler 进行性能分析及调优
在我们开发大型 Java 应用程序的过程中,难免遇到内存泄露、性能瓶颈等问题,比如文件、网络、数据库的连接未释放,未优化的算法等。随着应用程序的持续运行,可能会造成整个系统运行效率下降,严重的则会造成系统崩溃。为了找出程序中隐藏的这些问题,在项目开发后期往往会使用性能分析工具来对应用程序的性能进行分析和优化。在本文中,我们主要介绍 VisualVM 和 JProfiler 这两款性能分析工具。
CG国斌
2020/06/22
3.6K0
使用 VisualVM 和 JProfiler 进行性能分析及调优
性能优化|火焰图篇
上篇文章写完后,性能调优|成都核酸系统篇 收到了一些夸赞,让我有继续写下去的动力;
用户5166556
2023/03/18
1.1K0
性能优化|火焰图篇
相关推荐
高并发性能测试经验分享(下)
更多 >
LV.1
新开普电子--嵌入式软件工程师qq534117529
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验