我目前正在研究一些已经实现了混淆技术虚拟化的crackme。这个crackme里面的虚拟机是一个巨大的switch-case块(里面有130多个case)。我已经阅读了数十篇文章,但没有一篇文章说得足够清楚。
不过,我发现了一些信息,我可以在内存中找到一些缓冲区,其中包含操作码,这些操作码是本机汇编代码,然后由虚拟机在 switch case 块中进行解释。
找到它们将提供使用任何首选语言编写小型反汇编程序的机会,其中“案例”块将是编写的本机操作,例如printf("mov eax, dword ptr [ebp-4]")
. 这样我就可以找出生成和检查序列的算法。
但是,我坚持使用操作码找到该内存位置。任何人都可以建议我如何找到这些,一些技术,或者至少一些关于如何处理这种事情的好的文献或教程?可能有一些常见的方法可以破解这种crackme。
非常感激您的帮忙。