Dlaczego konwertować DLL na C?
Plik DLL (format Windows PE) zawiera skompilowany kod binarny - oryginalne nazwy zmiennych, komentarze i struktura są odrzucane przez kompilator. Programiści dekompilują pliki DLL, gdy kod źródłowy zostanie utracony lub jest niedostępny, podczas audytu bezpieczeństwa bibliotek zewnętrznych lub przy portowaniu funkcjonalności na inną platformę.
Jak przekonwertować DLL na C
dotPeek FREE
Dla plików .NET DLL: przeciągnij plik .dll do dotPeek, przeglądaj drzewo przestrzeni nazw, a następnie kliknij prawym przyciskiem myszy przestrzeń nazw i wybierz Export to Project, aby zapisać pliki źródłowe .cs do folderu.
ILSpy OPEN-SOURCE
Dla plików .NET DLL: otwórz przez File > Open, wybierz typy w drzewie zestawu, a następnie File > Save Code, aby wyeksportować zdekompilowane pliki C#.
Ghidra OPEN-SOURCE
Dla natywnych plików DLL: zaimportuj plik, uruchom auto-analizę, przeglądaj eksporty w Symbol Tree i wyświetl pseudokod podobny do C w panelu Decompiler; wyeksportuj przez File > Export Program > C/C++.
O tych formatach
DLL (Dynamic Link Library) to plik biblioteki systemu Windows zawierający skompilowany kod, który programy ładują podczas działania, więc nie jest to coś, co otwiera się dwukrotnym…
Otwórz szczegóły .DLL →Plik .c to kod źródłowy języka C - zwykły tekst napisany przez programistę, który kompilator zamienia w program wykonywalny. Możesz go otworzyć do odczytu w dowolnym edytorze tekstu…
Otwórz szczegóły .C →Jakość i na co uważać
- Pliki .NET DLL zawierają kod bajtowy CIL i dekompilują się niemal idealnie do C#; natywne pliki DLL skompilowane z C lub C++ generują jedynie przybliżony pseudokod z automatycznie wygenerowanymi nazwami, takimi jak
param_1ilocal_8. - dotPeek i ILSpy generują kod C# (lub VB.NET), a nie czysty C; jeśli potrzebujesz konkretnie języka C, musisz ręcznie przetłumaczyć wynik.
- Oryginalne nazwy zmiennych, komentarze i struktura kodu są nieobecne zarówno w zdekompilowanym wyjściu .NET, jak i w zdisasemblowanym wyjściu natywnym - kompilator je odrzuca.