Мне нужно обработать несколько файлов dll и exe в папке и определить, с каким типом файлов я сталкиваюсь:.NET, COM, Win32 или другая чужая форма жизни.
Я пытаюсь определить самый простой способ определить тип DLL, что вы думаете об этом:
-
COM dll = > Я делаю LoadLibrary, а затем GetProcAddress для " DllRegisterServer". Если я получаю действительный возврат, это COM файл.
-
.NET dll = > Если dll зависит от MSCOREE.DLL, она всегда является .NET dll?
-
Win32 dll = > Если оба вышеуказанных теста терпят неудачу, это Win32 dll?
Конечно, должен быть лучший способ определить, с каким типом dll мы имеем дело. Вышеупомянутое очень неудобно и не будет работать для EXE файлов? Должен быть какой-то другой способ, о котором я не думаю.
В идеале я бы хотел, чтобы анализатор определял, с каким компилятором был скомпилирован файл, и какие функции он использует, например, MFC, Atl, Stl и т.д. Но я сомневаюсь, что это возможно в предварительном отражении эпоха?