Reverse engineering(inżynieria wsteczna) - to proces badania produktu (urządzenia, programu komputerowego) w celu ustalenia jak on dokładnie działa, a także w jaki sposób i jakim kosztem został wykonany. Zazwyczaj prowadzony w celu zdobycia informacji niezbędnych do skonstruowania odpowiednika.
Niezbędne narzędzia do RE:
1. Debugger - program komputerowy służący do dynamicznej analizy innych programów, w celu odnalezienia i identyfikacji zawartych w nich błędów, zwanych z angielskiego bugami (robakami). Proces nadzorowania wykonania programu za pomocą debuggera określa się mianem debugowania.
2. Disassembler - program tłumaczący kod maszynowy na kod źródłowy w asemblerze. Disassembler różni się od dekompilatora tym, iż dekompilator daje wynik w postaci kodu źródłowego któregoś z języków wysokiego poziomu (np. Java, Python). Assembler zwykle pozwala na korzystanie z komentarzy i stałych wewnątrz programu; są one usuwane podczas procesu zamiany kodu asemblera na kod maszynowy.
3. Hex Edytor - tego nie trzeba tłumaczyć.
4. Kompresor - polega na zmianie sposobu zapisu informacji tak, aby zmniejszyć redundancję i tym samym objętość zbioru, nie zmieniając przenoszonych informacji. Innymi słowy chodzi o wyrażenie tego samego zestawu informacji, lecz za pomocą mniejszej liczby bitów. Działaniem przeciwnym do kompresji jest dekompresja.
5. Dekompilator - program, który odczytuje inny program, napisany w języku maszynowym (binarnym), i tłumaczy go na odpowiednik w języku programowania wyższego poziomu (Java, Python).
6. Assembler - tego również nie trzeba tłumaczyć.
7. Analizator plików - program, dzięki któremu możemy dokonać analizy plików PE.
8. Edytor zasobów - program pozwalający usuwać, zmieniać zasoby pliku PE.
Debuggery:
- OllyDbg
- DeFixed
- SoftIce
SoftIce part1
SoftIce part2
Disassemblery:
- W32DASM
Hex Edytory:
- HIEW
- XVI32
- WinHex
Kompresory:
- UPX
- EXE32PACK
- PESPIN
Dekompilatory:
- DeDe
- Spices
Assemblery:
- FASM
- MASM32
- NASM
Analizatory plików:
- PEID
- FileAnalyzer
Edytory zasobów:
- eXeScope
- ResHacker
Oprócz tego, istnieje wiele innych przydatnych aplikacji, ale nie będę ich teraz wymieniał.
Aby zacząć "zabawę" z reverse engineeringiem, trzeba znać podstawy asma(NASM/FASM/TASM/MASM). Jest to niezbędne, gdyż zdekompilowany program, jest właśnie przedstawiony w postaci assemblera.
Przydatne linki:
- ProTools
- HexMnemonic
- Kurs assemblera
- IczTutes
- MASM32
To by było na tyle, jeśli macie jakieś przydatne linki, programy, to dopisywać.
Niezbędne narzędzia do RE:
1. Debugger - program komputerowy służący do dynamicznej analizy innych programów, w celu odnalezienia i identyfikacji zawartych w nich błędów, zwanych z angielskiego bugami (robakami). Proces nadzorowania wykonania programu za pomocą debuggera określa się mianem debugowania.
2. Disassembler - program tłumaczący kod maszynowy na kod źródłowy w asemblerze. Disassembler różni się od dekompilatora tym, iż dekompilator daje wynik w postaci kodu źródłowego któregoś z języków wysokiego poziomu (np. Java, Python). Assembler zwykle pozwala na korzystanie z komentarzy i stałych wewnątrz programu; są one usuwane podczas procesu zamiany kodu asemblera na kod maszynowy.
3. Hex Edytor - tego nie trzeba tłumaczyć.
4. Kompresor - polega na zmianie sposobu zapisu informacji tak, aby zmniejszyć redundancję i tym samym objętość zbioru, nie zmieniając przenoszonych informacji. Innymi słowy chodzi o wyrażenie tego samego zestawu informacji, lecz za pomocą mniejszej liczby bitów. Działaniem przeciwnym do kompresji jest dekompresja.
5. Dekompilator - program, który odczytuje inny program, napisany w języku maszynowym (binarnym), i tłumaczy go na odpowiednik w języku programowania wyższego poziomu (Java, Python).
6. Assembler - tego również nie trzeba tłumaczyć.
7. Analizator plików - program, dzięki któremu możemy dokonać analizy plików PE.
8. Edytor zasobów - program pozwalający usuwać, zmieniać zasoby pliku PE.
Debuggery:
- OllyDbg
- DeFixed
- SoftIce
SoftIce part1
SoftIce part2
Disassemblery:
- W32DASM
Hex Edytory:
- HIEW
- XVI32
- WinHex
Kompresory:
- UPX
- EXE32PACK
- PESPIN
Dekompilatory:
- DeDe
- Spices
Assemblery:
- FASM
- MASM32
- NASM
Analizatory plików:
- PEID
- FileAnalyzer
Edytory zasobów:
- eXeScope
- ResHacker
Oprócz tego, istnieje wiele innych przydatnych aplikacji, ale nie będę ich teraz wymieniał.
Aby zacząć "zabawę" z reverse engineeringiem, trzeba znać podstawy asma(NASM/FASM/TASM/MASM). Jest to niezbędne, gdyż zdekompilowany program, jest właśnie przedstawiony w postaci assemblera.
Przydatne linki:
- ProTools
- HexMnemonic
- Kurs assemblera
- IczTutes
- MASM32
To by było na tyle, jeśli macie jakieś przydatne linki, programy, to dopisywać.