Copy Link
Add to Bookmark
Report
7x01 Symbian OS EXE Applications
...................
...::: phearless zine #7 :::...
..................>---[ Symbian OS EXE Applications ]---<................
...........................>---[ by argv ]---<...........................
argv.cpp[at]gmail[dot]com
Sadrzaj:
[1] Intro
[2] Fundamentals of Symbian .EXE
[3] .EXE in Malware
[4] .EXE in Everyday Programs
[5] Exe Launcher
[6] Outro
//////////////////////////////////////////////////////////////////////////////
--==<[ 1. Intro
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Evo, stigli smo do jedne dosta zanimljive teme. Kao sto svi znate,
glavni executable format za Symbian OS (osim za 3rd Edition v9) je .APP.
Ali ako se ikad malo prckali po telefonu, mogli ste zamjetiti dosta .EXE
fileova. Yep, .EXE za Symbian postoji i ima mnogo funkcija koje .EXE moze
obavljati. Vecina pocetnika u Symbian programiranju odmah prelaze na helloworld
u .APP formatu jer je tamo vec sve gotovo i odmah dobijes ikonu na desktopu
(zato jer .APP ima svoje resurse [.aif]) i mozes je pokrenut u tren oka,
dok .EXE to nema. Naravno, nije problem doci do .EXE-a na telefonu - moze se
preko bilo kojeg FileManagera... ALI, sto ako bi mogli napraviti aplikaciju
koja ce sluzizi kao "Exe Launcher" i ista ce imati svoj folder u kojeg vi
stavljate svoje napravljene .EXE-ove. Tako cete imati Exe Launcher na desktopu
koji kad kad pokrene, prikaze svu listu .EXE-ova u njegovom folderu i zatim
mozete pokretati bilo koji .EXE koji se nalazi unutra. Ajmo na posao!
//////////////////////////////////////////////////////////////////////////////
--==<[ 2. Fundamentals of Symbian .EXE
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Sada cemo malo govoriti o tome cemu uopce sluze .EXE fileovi, kako da
se naprave i slicno. Slijedeca recenica koju cu reci ce vjerovatno uzbuditi
mnoge... .EXE aplikacije se rade u klasicnom C/C++ okruzenju I moze se koristiti
inline assembly! Nice, huh? Naravno, .EXE se moze pisati i u standardnom C++
za Symbian, ali zasto se muciti sa OOP ako znate obicni C?
Prvo sto morate znati da vase napravljene .EXE-ove NECETE moci testirati ni
debugovati na Emulatorima od SDK. .EXE se mora compilati za 'armi' platformu,
tj telefon.
Symbian .EXE ima posban nacin "izrade". Znaci - nema UID-a, koristi C libove,
i u vecini slucajeva nema headera (.h). Ovo dolje je specificni MMP file za
C programe jer sam ubacio libove koje treba za C. Ako radite C++ onda mozete
maknuti cijeli STATICLIBRARY i estlib.lib.
Evo kako cete napraviti .EXE koji ce raditi na telefonu:
TARGET Program.exe
TARGETTYPE exe
UID 0
SOURCEPATH .
SOURCE Program.cpp
SYSTEMINCLUDE \epoc32\include\libc \epoc32\include
LIBRARY estlib.lib euser.lib
STATICLIBRARY ecrt0.lib
I to je to. U nekim slucajevima, morat cete dodavat dodate librarye, ali za
.EXE koji ce raditi samo JEDNU funkciju ovo je dovoljno.
//////////////////////////////////////////////////////////////////////////////
--==<[ 3. .EXE in Malware
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Zanimljiva je stvar sto vi mozete .EXE fileove zvati iz svoje glavne
aplikacije, recimo nekog worma ili virusa ili pak kernel droppera. Ali tu
postoji jedan nedostatak - .EXE u 95% slucajeva izvrsava samo JEDNU funkciju
i zatim se gasi, tj. ceka korisnika da je zavrsi. Takodjer je zanimljivo da
nakon uporabe posebno kodiranih .EXE aplikacija korisnikov input ostaje memoriran
u taj isti .EXE file sto je u slucajevima malwarea iznimno korisno!
Problem gasenja aplikacije nakon pokretanje je lose, ali naravno, ovo je moguce
zaobici dodavajuci druge librarye i pametno koristenje koda, ali eto posto sto
tek poceli, ja cu se zadrzati na jednoj funkciji.
Primjer:
U jednoj privatnoj verziji 'argworm-a" ja sam ubacio 2 EXE filea u SIS zajedno
sa wormom. Jedan je radio kao anti-terminate. Znaci kako sam maloprije spomenuo,
skodirao sam malo kompliciraniji .EXE koji OSTAJE u memoriji i nakon njegovog
gasenja i to je sprjecavalo bilo kojeg AV ga ga "ubije". Problem je bio sto se
taj .EXE pokretao samo pri instalaciji worma pa sam morao napisati drugi, vrlo
obicni .EXE koji je samo sluzio kao pokretac prvotnog pri startu telefona.
Tako da vidite, .EXE-ovu mogu biti jako korisni sto se tice malwarea. Najbolje
od svega je da se .EXE-ovi mogu koristit bilo kad jer rade u konzoli, a konzola
moze biti kolika vi hocete, a zauzimaju VRLO malo memorije, ali opet zavisno od
velicine .EXE-a.
//////////////////////////////////////////////////////////////////////////////
--==<[ 4. .EXE in Everyday Programs
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
.EXE program se ne koriste privise u starijim verzijama Symbiana. Na
te starije mislim sve osim 3rd Edition v9.x OS-a. Ali ima prijmera gdje su se
.EXE fajlovi nasli kao Bogom dani... Bluetooth aplikacije. Bluetooth client je
naravno .APP, ali zato server ima .EXE komponentu. Zasto? Da bi logirao promet.
Veoma jednostavno, ali vrlo korisno. .EXE su izvaredni loggeri jer kako sam vec
naveo mogu pamtiti sav input koji korisnik radi i zatim ih spremiti u neki file
na telefonu. Zamislite to ovako: Bluetooth client se spaja na server i zatim
radi neke stvari... Skida file sa servera, radi novi folder, instalira novu
aplikaciju, etc... A nas je server .EXE to sve logiro i spremio u log file.
Proto:
Server Ceka..... -> Konekcija -> .EXE se aktivira i pocinje pamtit -> Client
radi gore navedeno -> Client izlazi -> .EXE izvrsava JEDNU funkciju: sprema
log file na disk i gasi se sve dok netko ponovo ne otvori konekciju prema tom
serveru. Zanimljivo, ne?
////////////////////////////////////////////////////////////////////////////
--==<[ 5. .Exe Launcher
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Uz ovaj tekst je prilozena aplikacija o kojoj sam govorio. Exe Launcher
koji se nalazi na desktopu vaseg telefona i ima svoj folder u kojem se .EXE
fileovi nalaze. Znaci, kada napravite .EXE - stavite ga u taj folder i voila.
Upute za instalaciju:
1. Pokrenite ExeLauncher.sis
2. Stiskajte NEXT dok ne dodjete do izbora gdje da se program instalira. E sad,
OBAVEZNO instalirajte aplikaciju na E (MMC) Drive. U tom SIS fileu se nalaze i
primjeri EXE-a, a EXE folder je na E disku.
3. Pojavit ce vam se poruka "ExeLauncher v0.10 | RCE/HEX Edition", samo kliknite
YES i zatim ce se aplikacija instalirati.
4. Na desktopu cete naci ikonu preko koje mozete pokrenuti aplikaciju.
Upute za koristenje:
1. Direktorij u kojem se nalaze .EXE fileovi je E:\TEMP\EXES\*.exe
2. Znaci, kad napravite neki EXE samo ga ubacite u taj folder i ExeLauncher ce
ga vidjeti.
3. ExeLauncher ima i search funkciju tako da ako imate mnogo EXE fileova, mozete
pretrazivati direktorij.
4. EXE mozete pokrenuti na dva nacina: Preko Options -> Launch EXE ili mozete
samo stisnuti "ENTER" (to je ona tipka s kojom sve i radite) na mobitelu.
Sam program ima par bugova, ali u 90% slucajeva ce radit bez problema.
Ako nadjem vremena, uradit cu patch koji ce ispraviti te bugove.
////////////////////////////////////////////////////////////////////////////
--==<[ 5. .EXE Files
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Za potrebe ovo teksta napravio sam 3 .EXE-a koji bi vam mogli posluziti
kao primjer, a i da vidite kolike su zapravo mogucnosti koristenja .EXE-a.
Naravno, ovi primjeri ne rade nista po telefonu, ali najvaznije je da MOGU.
1.Simple.exe
Nista posebno ovdje, prikazuje tekst i ceka da user pritisne nesto da se ugasi.
Cist primjer najobicnije .EXE aplikacije.
2.Exploit.exe
E ovo je malo zanimljivije - "Exploit" koji ce "zakljucati" mobitel dok ne
izvrsi cijelu operaciju. Naravno, mobitelu nece biti nista, vec je ovo samo
demonstracija kako i preko .EXE filea mozete napraviti exploit.
Kad pokrenete ovaj .EXE nemorate ga gasiti, .EXE ce se sam ugasiti nakon sto
se sve operacije zavrse. Ako ga pokusate samo ugasiti, proces ce i dalje biti
u memoriji pa cete si stvoriti nepotrebne probleme :)
3.Special.exe
E ovo ostavljam vama na iznenadjenje. Puno je truda i RCE ulozeno u to i valjda
ce vam se svidjeti.
////////////////////////////////////////////////////////////////////////////
--==<[ 5. Outro
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Nemam puno toga reci za kraj... Kako sam vec naveo, preko konzolnih
aplikacija mogu se raditi stvarno odlicne stvari, a nekad znaju biti i vrlo
korisne - Bluetooth primjer. Eto, ako vas zanima programiranje .EXE-a za
Symbian, malo na google i brzo cete pohvatat stvari.
Good Luck, Have a nice day.
Greetz:
deroko, ap0x, Shub-Nigurrath and whole of ARTeam and ex-Blackhat members