Witajcie, właśnie ukazał się nowy numer Magazynu Programista 11/2014, w którym znajdziecie m.in. mój artykuł opisujący najpopularniejsze i te trochę mniej znane narzędzia wykorzystywane w reverse engineeringu, wszystkich zainteresowanych tematem zachęcam do wizyt w Empikach.
hehe, czarny pas w jodze 🙂
@tomek: lata treningu 🙂
Bartek coraz gorzej z twoimi tekstami o RE ciagniesz programiste na dno pisza takie teksty.Jak mozesz polecac takie badziewie jak Pestudio!
myslalem ze tym gniotem zachwycaja sie tylko osoby co nie widza nic o plikach PE.
PEStudio w zasadzie robi tylko strcmp na tablicy importow, takie cos mozna napisac w jeden dzien uzywajac pythona i modul pefile. Nie wspominajac o tym ze autor tego narzedzia to beznadziejny programista a jeszcze gorszy projektant interfejsu uzytkownika, chociaz go troche poprawil w porownaniu do poprzedniej wersji.
@AjMonster: Reasumując
1. Na 23 narzędzia które opisałem, 1 Ci się nie podoba i twierdzisz, że ciągnę magazyn na dno? Rozumiem, że reszta Ci się podobała, więc co narzekasz. 22:1 dla mnie!
2. Uruchamiałeś chociaż raz Pestudio i sprawdzałeś jakie indicatory wyświetla czy piszesz to z własnego niedoświadczenia? Bo z tego co piszesz mam wrażenie, że dla ciebie tablica importów to pierwsze i ostatnie na co się natknąłeś w strukturze PE. Kończyłeś korespondencyjny kurs reverse engineeringu z Reader’s Digest?
3. Nikt nie pisze wysokowydajnych narzędzi do manipulacji PE w Pythonie, od tego jest C++. Dowód – nie istnieje ani jeden exe-protector, exe-packer ani wirtualizer, który jest napisany w Pythonie, ani nawet żadne inne narzędzie do RE: w Pythonie (nie licząc tych, które wspierają skryptowanie) bo to by po prostu nie działało (a przecież można skompilować do bytecode, co nie?), w Pythonie piszą głównie pracownicy AV, którzy nie mają czasu pisać porządnego kodu C++ i na szybko potrzebują odxorować parę rzeczy. W której firmie pracujesz?
4. Twierdzisz, że jesteś w stanie to napisać w jeden dzień – wyzwanie przyjęte, jest 23:37 pisz re-gimbusie do jutra, czekam na rezultaty!
5. Konsola, python (2.xx czy 3?) i pefile jest najlepsze mówisz :), Ci co wybierali 2013 Top Security Tools (ToolWatch) chyba mieli inne zdanie 🙂
1. reszta OK. Dodal bym w kategori Deasembler i Dekompilatory alternatywy hopper – hopperapp.com czy radar – radare.org
Zamiast PE-Bear polecil bym CFF Explorer bo jest bardziej dopracowany i ma ladny hex edytor i obsluge .NET a PE-Bear dal bym do alternatyw
dolaczajac jeszcze LordPE. Zamiast Hex Workshop polecil bym 010 Editor bo ma obsluge szablonow, skryptow i jest tanszy. Licencja domowa 49.95$
2. Tak uruchamialem nawet wczesniejsze wersje z starym poprzednim UI i doszedlem do wniosku ze jego autor nie jest zby kompetentny,
chociaz sie pare sztuczek nauczyl w ciagu ostatnich dwoch lat. nicolas brulez dobrze podsumowal to narzedzie na twiterze
„Pestudio opened by PeStudio shows same and more worrying facts :)”
https://twitter.com/nicolasbrulez/status/444425180442411008/photo/1
Mozna sie tez dowiedziec ze na liscie blacklistowanych stringow sa USER32.dll, KERNEL32.dll czy SendMessage
Nie konczylem kursu korespondencyjngo z Reader’s Digest (dobry jest?) ale przeczytalem wszystkie ksiazki Dawida Farbaniec 😉
3. > Nikt nie pisze wysokowydajnych narzedzi do manipulacji PE w Pythonie, od tego jest C++.
A kto mowi o manipulacja, edycji ? ale wymysliles skomplikowany termin „wysokowydajnych narzedzi do manipulacji PE”
W PEStudio nie mozesz NIC zmodyfikowac. Nie rozumiem aluzji do exe-protectorow exe-packerow.
> w Pythonie pisza glównie pracownicy AV, którzy nie maja czasu pisac porzadnego kodu C++ i na szybko potrzebuja odxorowac pare rzeczy
bzdura, slyszales na przyklad o Dropbox ? poczytaj na wiki
4. to czekaj dalej na rezulataty „re-gimbusie”, jesli chcesz z kim dyskutowac to go nie obrazaj
1. To czekam na oficjalne przeprosiny na NK.pl 🙂
2. Fakt, generuje czasami stek bzdur, jednak pokazuje wiele ciekawych informacji, dzięki którym można dla przykładu ukryć fakt np. że PE był modyfikowany. Wszystkie nienaturalne i podejrzane flagi oraz wartości w strukturach PE wykrywasz wzrokowo?
3. A co ma Dropbox do manipulacji plikami wykonywalnymi i ich strukturami? NIC. Manipulacja strukturami PE w połączeniu z analizą kodu wymaga wysokowydajnych algorytmów.
5. Nie mam zamiaru z tobą dyskutować, jeśli Ci się nie podoba wróć na blog Farbańca 😉
Napisałeś:
„nie istnieje ani jeden exe-protector, exe-packer ani wirtualizer, który jest napisany w Pythonie, ani nawet żadne inne narzędzie do RE: w Pythonie”
Kompletna bzdura.
http://dsecrg.com/files/pub/pdf/Python%20arsenal%20for%20RE%201.1.pdf
A i jeszcze, pythonowy dekompresor i dekompilator w jednym napisany w Pythonie do inżynierii wstecznej „zamrożonych binariów” Pythona.
https://github.com/Katharsis/unfrozen_binary
Kompletna bzdura? To gdzie te exe-protectory, exe packery czy wirtualizery w Pythonie?
Przeczytaj komentarz wyżej, pisałem, że Python jest często wykorzystywany ale jako oskryptowanie istniejących, wydajniejszych aplikacji do RE:.
No to spójrzmy co mamy w twoim PDF:
Co więc mamy? Wrappery, bindingi, pluginy, oskryptowanie do ISTNIEJĄCYCH NARZĘDZI w większości stworzonych w C/C++. Jedynie kilka narzędzi było stworzonych od podstaw w Pythonie, ale tu też znalazły się takie, które były portami narzędzi np. w assemblerze jak biblioteka bazująca na LDE udis.
Co z tego wynika? Że w Pythonie nie powstało żadne poważne, bazowe narzędzie do reversingu (nie mówiąc o jakimś poważnym narzędziu do zabezpieczania PE).
Czy to źle? Oczywiście, że nie! Oskryptowanie istniejących narzędzi w Pythonie jest wygodne, sam Python jest przyjaznym językiem do manipulacji binarnych danych, jednak nie jest to język, w którym pisze się poważne i często komercyjne oprogramowanie do reversingu / protektu.
Jakie z tego płyną wnioski? Radzę uważniej sprawdzać o czym mówisz, bo jak widzisz bardzo prosto sprawdzić takie bzdury.
https://github.com/cea-sec/miasm
@ann44: Toś mnie przekonał „Miasm uses: LibTCC tinycc to JIT code for emulation mode. See below or LLVM v3.2”
są jakieś narzędzia w Pythonie, które NIE BAZUJĄ na innych wysokowydajnych narzędziach w C/C++?