我在一些应用程序中发现了非常有趣的安全程序。 安全敏感函数列表以散列/加密状态存储(在本例中为Ruby Block Cipher Mark 5)。这些条目的列表是使用ID,大小,散列键和指向带有代码数据的区域的指针构建的。
runCryptedFunc找到此函数,为其分配内存,复制和解密,运行然后清理。
在其他位置我发现类似的情况,通过将存储的HASH与当前运行的代码进行比较来检查一堆函数进行修改。在调试断点或补丁的情况下 - 所有代码崩溃。
我的问题:
他们如何收集散列/加密函数内容并将其放在二进制文件中?这些日期(出于安全原因确定)不会从其他地方的文件中加载。
如何从二进制函数创建HASH并将其置于二进制文件中?