目前我表面的能看到的逻辑如下。
fake netapi32.dll的dllmain里面,新建一个mutex,之后对GetEnvironmentVariableW和RegOpenKeyExW下hook。
hook的新的fakeGetEnvironmentVariableW和fakeRegOpenKeyExW函数里面,分别会判断 lpName参数和lpSubKey参数。
如果这个参数是LM_LICENSE_FILE 或 SOFTWARE\\FLEXlm License Manager,说明调用来自flexlm的dll,这个时候通过getModuleHandleExA获得flexlm函数所在的模块handle。对这个flexlm模块进行patch。
这里的flexlm模块patch的逻辑,没看明白,里面壳和混淆什么的太多,晕了。
希望清楚的大侠帮忙解释解释。
感谢。