PAPE - prosty analizator pe

cyber_pl

Użytkownik
Dołączył
Wrzesień 30, 2009
Posty
187
Witam, wydaje mi sie ze jest to odpowiedni dzial.

Pisalem ponad miesiac narzedzie dla systemow win32 ktore jest z pewnoscia pomocne dla reverserow inzynieri odwrotnej.

Program o ktorym mowa to odpwiednik zagranicznych programow analizy PE wzbogacony o disasembler kodu.

Program pisany miesiac w czystym c winapi, posiada otwarty kod zrodlowy do ktorego kazdy moze sie dostac.

Dlaczego pisalem takie oprogramowanie?

Odpowiedz jest prosta, brakuje takich narzedzi, a program jest bardzo prosty w obsludze i w ciagu kilku sekund moze dostrczyc bardzo duzo informacji o programie .exe lub bibliotece .dll

Zapraszam do ogladania screenow z jego pracy:

Program po wlaczeniu:
pape0.jpg


Program po analizie importow:
pape1.jpg


Disasemblowana czesc sekcji kodu programu:
pape2.jpg


Program podczas analizy naglowkow:
pape3.jpg


A tutaj zapisany log w pliku tekstowym:
pape4_log.jpg


Jest to bardzo prosty i malo wazacy program ktory bardzo ulatwia wczesna analize programow wykonywalnych win32.

Cechy programu:
-bardzo mala waga programu
-pisany w surowym c winapi
-otwarty kod zrodlowy
-analizuje naglowki plikow exe / dll
-analizuje sekcje struktury PE
-wykonuje hexdumpy danych binarnych
-wykonuje diasemblacje sekcji kodu
-analizuje importy w programie
-analizuje ciagi znakow zdefiniowane w programie
-zapisuje czysto sformatowany log txt z swojej pracy

Skompilowany program jak i zrodla mozna pobrac umnie na stronie:

Wersja skompilowana:
http://lowbyte.da.ru/software/pape/

Otwarty kod zrodlowy:
http://lowbyte.da.ru/sources/pape/

Jako ze jestem wolnym programista projektu raczej nie bede rozwijaj dalej go, ide na przekor innym aby pisac inne rozwiazania dla siebie / innych za free etc.

Do administracji: reklamuje wylacznie wlasny software o otwartym kodzie zrodlowym, serwis ktory hostuje dany projekt jest moja strona domowa.

Pozdrawiam cyber aka pl.
 

kanar123

Użytkownik
Dołączył
Marzec 27, 2008
Posty
451
Ciekawy program na pewno wielu się przyda
<
Niestety jak na razie nie pisze w C ale kiedyś może przyczynie się do jego rozwoju
<
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
program ok ale zauwazylem kilka bledow
smile.gif


nie wyrównujesz wielkosci sekcji do FileAligment
<
przez co np. jestem w stanie ukryc czesc kodu przed disassemblacja(np. przy uzyciu Astarotha)
Pozatym IAT nie zawsze nazywa sie IDATA moze byc np. czescia sekcji kodu lepiej szukac tego po adresie ktory jest w naglowku PE
<

a dokladniej w polu DataDirectory w OptionalHeader
smile.gif
 

cyber_pl

Użytkownik
Dołączył
Wrzesień 30, 2009
Posty
187
<div class='quotetop'>CYTAT(grzonu @ 30.09.2009, 16:24) <{POST_SNAPBACK}></div>
program ok ale zauwazylem kilka bledow
smile.gif


nie wyrównujesz wielkosci sekcji do FileAligment
<
przez co np. jestem w stanie ukryc czesc kodu przed disassemblacja(np. przy uzyciu Astarotha)
Pozatym IAT nie zawsze nazywa sie IDATA moze byc np. czescia sekcji kodu lepiej szukac tego po adresie ktory jest w naglowku PE
<

a dokladniej w polu DataDirectory w OptionalHeader
smile.gif
[/b]

Masz racje, program pisany szybko w jeden miesiac pozatym idata to standard ale nie zawsze przestrzegany przez linkery etc :/

Moze sie komus przyda, jest prosty i malo wazy w dodatku otwarty sources.

Pozdrowka.
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
idata ...czy taki standard to nie powiedzialbym lepiej polegac na tym co mowi nam naglowek a nie nazwa sekcji ...ktos chcacy ukryc importy przed programem moze np. usunac nazwy sekcji i pozostawic je puste
smile.gif

standardem podobnym jest np. to ze ImageBase jest rowny 0x00400000 a jednak nie zawsze tak jest.
 

cyber_pl

Użytkownik
Dołączył
Wrzesień 30, 2009
Posty
187
<div class='quotetop'>CYTAT(grzonu @ 30.09.2009, 17:09) <{POST_SNAPBACK}></div>
idata ...czy taki standard to nie powiedzialbym lepiej polegac na tym co mowi nam naglowek a nie nazwa sekcji ...ktos chcacy ukryc importy przed programem moze np. usunac nazwy sekcji i pozostawic je puste
smile.gif

standardem podobnym jest np. to ze ImageBase jest rowny 0x00400000 a jednak nie zawsze tak jest.[/b]

Prawde mowiac to jest bardzo duzo roznych trikow na ukrywanie kodu w PE, po szyfrowanie sekcji , nazw / zawartosci wlacznie.

Analize PE napisalem bazujac na referencji z msdn, softu raczej nie bede juz udoskonalal, dalem sources jesli komus podpatrzy jakas czesc programu moze sobie przeczytac sources (bardzo duzo polskich komentarzy pisalem) etc.
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
MSDN wyraznie mowi o wyrownianiu wielkosci sekcji
<
ale ok juz sie nie czepiam
<

programik spoko
 

g3t_d0wn

Użytkownik
Dołączył
Styczeń 9, 2010
Posty
13
Tak dla jasności , zamieszczam tutaj urywek kodu z mojego analizatora plików PE który ma zabezpieczenie przed ukryciem kodu przez analizowaną aplikację.

Kod:
else if( rvaImport >= sctAddr ) {
            if( rvaImport < sctAddr + sctSize ) {
                       // i tutaj dalsza czesc kodu, jesli katalog importu znajduje
                       // sie w danej sekcji.

gdzie
Kod:
 rvaImport = wirutalny adres katalogu
sctAddr = wirtualny adres danej sekcji
sctSize = rozmiar danej sekcji

kod wyszukuje katalog dopasowując jego adres, aby był większy od adresu wirtualnego sekcji, ale mniejszy od Sumy jego adresu i rozmiaru.
 
Do góry Bottom