我正在处理一个包含包装和反分析措施的样本。
目前在启用所有检查的情况下使用 x64dbg 的 ScyllaHide 插件(不确定这是否会影响任何事情,我试过弄乱这个)我能够将调试器附加到进程中,但我观察到一些我没有遇到过的行为前。
- 查看 x64dbgs
Memory Map
选项卡,进程主内存段的布局与我过去看到的不同。通常它是类型的IMG
,并含有通常的.text
,.data
等内存段。此样本主要部分属于类型MAP
,不包含正常部分。这是一种技术吗?这叫什么?
此示例中有多个段,它们的外观如下:
Address=00004FF61EC70000
Size=0000000001EE0000
Page Information=malware_sample.exe
Allocation Type=MAP
Current Protection=ER---
Allocation Protection=ER---
Address=00004FF620B50000
Size=0000000000650000
Page Information=malware_sample.exe
Allocation Type=MAP
Current Protection=-RW--
Allocation Protection=-RW--
Address=00004FF6211A0000
Size=000000000013B000
Page Information=malware_sample.exe
Allocation Type=MAP
Current Protection=-R---
Allocation Protection=-R---
- 当尝试设置断点或修补内存时,x64dbg 在我列出的第一个段上失败。我可以在第二个段上放置断点,所以我猜测保护是防止断点/修补 (
Current Protection=ER---
)? - 当尝试更改 x64dbg 中内存段的保护
Set Page Memory Rights
以测试这是否是补丁/bps 失败的原因时,我收到一条错误消息,指出更改内存保护失败。什么会导致这种情况?是否有防止更改内存保护的反调试技巧?