6.1 KiB
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
支持HackTricks的其他方式:
- 如果您想看到您的公司在HackTricks中做广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 探索PEASS家族,我们的独家NFTs
- 加入 💬 Discord群 或 电报群 或在Twitter上关注我们 🐦 @carlospolopm。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
Wasm反编译和Wat编译指南
在WebAssembly领域,处理Wasm(WebAssembly二进制)和Wat(WebAssembly文本)文件的反编译和编译工具对开发人员至关重要。本指南介绍了一些在线资源和软件,用于处理这些文件。
在线工具
- 要将Wasm反编译为Wat,可使用Webt的wasm2wat演示工具。
- 要将Wat编译回Wasm,可使用Webt的wat2wasm演示工具。
- 另一个反编译选项可在web-wasmdec找到。
软件解决方案
- 对于更强大的解决方案,PNF Software的JEB提供了广泛的功能。
- 开源项目wasmdec也可用于反编译任务。
.Net反编译资源
可以使用以下工具来反编译.Net程序集:
- ILSpy,还提供了适用于Visual Studio Code的插件,可实现跨平台使用。
- 对于涉及反编译、修改和重新编译的任务,强烈推荐使用dnSpy。右键单击方法并选择修改方法可进行代码更改。
- JetBrains的dotPeek是反编译.Net程序集的另一选择。
使用DNSpy增强调试和日志记录
DNSpy日志记录
要使用DNSpy将信息记录到文件中,请添加以下.Net代码片段:
%%%cpp using System.IO; path = "C:\inetpub\temp\MyTest2.txt"; File.AppendAllText(path, "Password: " + password + "\n"); %%%
DNSpy调试
为了有效地使用DNSpy进行调试,建议按照一系列步骤调整程序集属性以进行调试,确保禁用可能阻碍调试的优化。此过程包括更改DebuggableAttribute
设置,重新编译程序集并保存更改。
此外,要调试由IIS运行的.Net应用程序,执行iisreset /noforce
可重新启动IIS。要将DNSpy附加到IIS进程以进行调试,指南指导选择DNSpy中的w3wp.exe进程并开始调试会话。
为了在调试过程中全面查看加载的模块,建议访问DNSpy中的模块窗口,然后打开所有模块并对程序集进行排序,以便更轻松地导航和调试。
本指南概括了WebAssembly和.Net反编译的要点,为开发人员提供了轻松处理这些任务的途径。
Java反编译器
要反编译Java字节码,这些工具非常有帮助:
调试DLLs
使用IDA
- Rundll32从特定路径加载64位和32位版本。
- 选择Windbg作为调试器,并启用在库加载/卸载时暂停的选项。
- 执行参数包括DLL路径和函数名称。此设置会在每个DLL加载时停止执行。
使用x64dbg/x32dbg
- 与IDA类似,使用命令行修改加载rundll32以指定DLL和函数。
- 调整设置以在DLL入口处中断,允许在所需的DLL入口点设置断点。
图像
通过屏幕截图展示了执行停止点和配置。
ARM和MIPS
- 对于仿真,arm_now是一个有用的资源。
Shellcode
调试技术
- Blobrunner和jmp2it是用于在内存中分配shellcode并使用Ida或x64dbg进行调试的工具。
- Blobrunner 发布版本
- jmp2it 编译版本
- Cutter提供基于GUI的shellcode仿真和检查,突出显示作为文件与直接shellcode处理之间的差异。
去混淆和分析
-
scdbg提供有关shellcode功能和去混淆功能的见解。 %%%bash scdbg.exe -f shellcode # 基本信息 scdbg.exe -f shellcode -r # 分析报告 scdbg.exe -f shellcode -i -r # 交互式挂钩 scdbg.exe -f shellcode -d # 转储解码的shellcode scdbg.exe -f shellcode /findsc # 查找起始偏移量 scdbg.exe -f shellcode /foff 0x0000004D # 从偏移量执行 %%%
-
使用CyberChef来反汇编shellcode:CyberChef配方
Movfuscator
- 一种用
mov
替换所有指令的混淆器。 - 有用的资源包括YouTube解释和PDF幻灯片。
- demovfuscator可能会反转movfuscator的混淆,需要依赖项如
libcapstone-dev
和libz3-dev
,并安装keystone。
Delphi
- 对于Delphi二进制文件,推荐使用IDR。