windows下分析恶意代码工具列表

windows工具

尽量从官网下载工具

工具

火绒剑

Resource Hacker
使用Resource Hacker来查看资源节
Windows®应用程序的免费资源编译器和反编译器
http://www.angusj.com/resourcehacker/

Process Monitor
Process Monitor是Windows的高级监视工具,可显示实时文件系统,注册表和进程/线程活动。微软官方出品
进程监视器-Windows Sysinternals | 微软文档
https://docs.microsoft.com/en-us/sysinternals/downloads/procmon

Process Explorer v16.30
https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer

Process Hacker
监视系统资源,调试软件和检测恶意软件。
和ProcessExplorer有点像。
官网:Overview - Process Hacker
https://processhacker.sourceforge.io/

CFF
查看PE文件
下载– NTCore
https://ntcore.com/?page_id=345

exeinfope
查壳

调试器
IDA
IDAPython脚本
IDA插件:FindCrypt2查找加密算法的常量
IDA的熵指插件:ida-ent.plw

Windbg
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debugger-download-tools
开始菜单-》windows kit-》Windbg
WinDbg 命令三部曲:(一)WinDbg 命令手册 - 匠心十年 - 博客园
https://www.cnblogs.com/gaochundong/p/windbg_cheat_sheet.html

OllyDbg的OllyDump插件,脱壳,可以转储当前进程分内存,搜索加壳可执行文件的OEP
OllyDbg的LoadDll.exe,调试DLL
如何在对API函数(如MessageBoxA)的调用上设置断点?-这很简单。打开命令行(Alt + F1)并键入“ BPX MessageBoxA”,或在Disassembler中搜索所有迭代模块调用,单击对MessageBoxA的任何调用,并在每次对该函数的调用上设置断点。
BPX一般中断在程序调用API的地址处。BP会中断在API的写入地址处。二这有所不同,根据需要选择。

IDR(交互式Delphi重构器)

ImpRec
修复一个加壳的导入表

ProcDump
微软提供的一个命令行实用程序,用来转储一个Windows进程分内容。优点是在不停止进程或调试进程的情况下转储进程中的内存。
https://docs.microsoft.com/en-us/sysinternals/downloads/procdump

获取system权限:PSTools
参考链接:https://www.jianshu.com/p/1e48b3a24e31
以管理员身份启动cmd,使用以下命令即可以System用户启动任务管理器。
PsExec -i -s -d cmd

Autoruns for Windows - Windows Sysinternals 查看启动项
https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns

API Monitor是一个免费软件,可以让你监视和控制应用程序和服务,查看API调用。
http://www.rohitab.com/apimonitor

Detours

Detours是微软提供的一个开发库,使用它可以简单、高效、稳定(呵呵)地实现API HOOK的功能。
DetourAttach((void **)&OldMessageBoxW, NewMessageBoxW);//实现函数拦截
养成看github的issue的习惯

PVOID

https://blog.csdn.net/u012370255/article/details/28257043
PVOID等效于void * —无类型指针
https://stackoverflow.com/questions/56305389/ms-detours-detourattach-fails

WINAPI

WINAPI 是这样定义的
#define WINAPI __stdcall
__stdcall 是一种函数参数传递压栈顺序和堆栈平衡的约定
因为在windows编程中默认的参数传递都是__stdcall方式的
没有什么问题的。

void* (void * BindKeyT)(const char* key) = actual_BindKeyT;

// actual_BindKeyT is a pointer to a function that will be defined elsewhere, 
// and whose declaration you will include in your project through a header file
// or a dll import

void * BindKeyD(const char* key)
{
    // Code for your hook function
}

DetourAttach(&(PVOID&)BindKeyT, BindKeyD);

LPSTR和LPWSTR是Win32和VC++所使用的一种字符串数据类型。LPSTR被定义成是一个指向以NULL(‘\0’)结尾的32位ANSI字符数组指针,而LPWSTR是一个指向以NULL结尾的64位双字节字符数组指针。
'L’代表Long,'P’代表Pointer(指针),'STR’表示String。
https://baike.baidu.com/item/LPSTR/9782867

LONG WINAPI DetourAttach(_Inout_ PVOID *ppPointer,
                         _In_ PVOID pDetour)
{
    return DetourAttachEx(ppPointer, pDetour, NULL, NULL, NULL);
}

spy++
visual stdio自带
查看句柄

inspect.exe
Inspect.exe是一个基于Windows的工具,使您可以选择任何UI元素并查看该元素的可访问性数据。
Windows软件开发工具包(SDK)已安装Inspect。它位于SDK安装路径(Inspect.exe)的\ bin \ < 版本 > \ < platform >文件夹中。
https://docs.microsoft.com/en-us/windows/win32/winauto/inspect-objects
C:\Program Files (x86)\Windows Kits\10\bin\

LookHandles
操作Windows句柄

MFCSPY可以方便反编译MFC程序,大概只支持到vc6.0,
其后续版本xspy,链接为https://github.com/lynnux/xspy/releases

不常用

VirusTotal
在线反病毒引擎

TCPView
TCPView将显示系统上所有TCP和UDP端点的详细列表

OSP Driver Loader
加载驱动

DependencyWalker可以用来查看dll或exe依赖的dll文件。简称depends
官网http://www.dependencywalker.com/的是2006年的版本
在win10上可能不能正常运行,在win7下可正常运行
使用Dependency Walker对x86可执行文件进行性能分析在Windows 7 x64上挂起-代码日志
https://stackoverflow.com/questions/8832936/profiling-x86-executable-with-dependency-walker-hangs-on-windows-7-x64/36049618#36049618

查看进程依赖那个dll,linux使用ldd命令。
查看dll中有哪些导出函数windows使用dumpbin,linux使用objdump查看so中有哪些函数。
查看dll中符号的地址使用nm。

ApateDNS
显示DNS请求,模拟DNS
https://www.fireeye.com/services/freeware.html
https://www.fireeye.com/services/freeware/apatedns-download-confirmation.html

Regshot
注册表快照
regshot download | SourceForge.net
https://sourceforge.net/projects/regshot/

查询DNS的网站:
DomainTools(http://whois.domaintools.com/ )–>whois历史记录的查询,能够进行反向IP查询,国内不可访问
RobTex(http://www.robtex.com) 单个IP地址指向的多个域名信息
BFK DNS logger(http://www.bfk.de/bfk_dnslogger_en.html)DNS检测信息

Sysinternals
https://docs.microsoft.com/en-us/sysinternals/

PE Explorer

Portmon
在win10上无法运行。
Portmon是一个实用程序,用于监视和显示系统上的所有串行和并行端口活动。
Windows的Portmon-Windows Sysinternals | 微软文档
https://docs.microsoft.com/en-us/sysinternals/downloads/portmon

RootkitRevealer-Windows Sysinternals | Windows Server 2003 微软文档
https://docs.microsoft.com/en-us/sysinternals/downloads/rootkit-revealer
2006年的程序,在win10上无法运行。
由于永久rootkit通过更改API结果来工作,因此使用API的系统视图与存储中的实际视图不同,因此RootkitRevealer会将最高级别的系统扫描结果与最低级别的系统扫描结果进行比较。最高级别是Windows API,最低级别是文件系统卷或注册表配置单元的原始内容(配置单元文件是注册表的磁盘存储格式)。因此,RootkitRevealer会将Rootkit(无论是用户模式还是内核模式)操纵Windows API或本机API从目录列表中删除它们的存在,都将被视为Windows API返回的信息与所见信息之间的差异。在FAT或NTFS卷的文件系统结构的原始扫描中。

PEID查壳,KANAL插件用来从PE文件中找出普遍使用的加密算法
ASPack 壳,可用AspackDie脱之
yoda’s Protector 脱壳机:[email protected]
UPX加壳与脱壳

PEBrowse Professional
查看PE文件
http://www.smidgeonsoft.prohosting.com/

你可能感兴趣的:(windows下分析恶意代码工具列表)