[ Pera_Anarhista @ 12.05.2002. 02:36 ] @
e, setih se rada sa TI-92+ digitronima i njihovim assembler jezikom... Oni su mogli da unutar samog izvrsnog fajla stavljaju podatke. Pretpostavljam da je to i sa pc-om moguce... Ako jeste, kako se to onda radi sa Borland c++ builderom ?? Nasao sam neke "tragove" u resource u samom exe fajlu (na primer ansistring::loadstr) i cackao malo oko toga, ali nisam nasao konkretan odgovor...

hvala na odgovoru...
[ Riste Pejov @ 13.05.2002. 03:45 ] @
Mozes bez problema upisati i citati podatke
u exe faljovima, samo ukoliko ih upisujes iza
EOF, PE windows format to dozvoljava, jedino sto
trebas paziti je da znas velicinu upisanog buffera iza
EOF exe falja, najcesce to se radi uz pomoc upisivanju
takozvanog footera koji cuva originalnu velicinu exe fajla
tako da velicinu bafera presmetas kad iz novu velicinu exe-a
oduzmes footer size + original exe size

Ovo isto mozes raditi i pod linuxom, ELF takodje to dozvoljava,
ali kod PE exe-a ne moze program da sam menja svoj exe, dok kod ELF
to je moguce. Zato za win exe moras uraditi drugi program koji ce u
odredjenog exe-a upisivati podatke.

Pozdrav
[ SEH @ 13.05.2002. 13:43 ] @
Citat:
Riste Pejov:

ali kod PE exe-a ne moze program da sam menja svoj exe, dok kod ELF
to je moguce. Zato za win exe moras uraditi drugi program koji ce u
odredjenog exe-a upisivati podatke.

Pozdrav


E bas moze! Bio sam napravio (u asembleru doduse) program koji to radi jednom davno... Imam to negdje na disku, pa kad iskopam postat cu. Nije bas self-modifying u memoriji sa spremanjem promjena, ali barem ne treba externi program :)
[ Pera_Anarhista @ 13.05.2002. 17:32 ] @
meni i ne treba da on kod menja, znaci, ne treba mi nista sa izvrsavanjem, vec hocu jednostavno da stavim par integera, da ne moram zbog par bajtova da pravim .dat fajl...
[ Mikky @ 13.05.2002. 23:09 ] @
pa i to ce biti malo teze
s obzirom da u PE fajlu postoji evidencija o dosta stvari moraces da menjas header i sectione u koji ces da stavljas te promenljive a to je sve mnogo bespotrebnog rada tkz. budzenja + mnogo teze ces postici ono sto si zeleo jer ipak to je cisto hex editovanje
dakle najbolje da uradis ono sa .dat fajlom
[ Riste Pejov @ 14.05.2002. 16:13 ] @
Citat:
SEH:
E bas moze! Bio sam napravio (u asembleru doduse) program koji to radi jednom davno... Imam to negdje na disku, pa kad iskopam postat cu. Nije bas self-modifying u memoriji sa spremanjem promjena, ali barem ne treba externi program :)


dzaba ce neko pomisliti da je to moguce, kad u realnosti nije.
Ako imas neki konkretan workaround postuj ga kao workaround, a ne lupetaj da je moguce imati self-modifying exe u win32
[ SEH @ 14.05.2002. 21:24 ] @
Citat:
Riste Pejov:

dzaba ce neko pomisliti da je to moguce, kad u realnosti nije.
Ako imas neki konkretan workaround postuj ga kao workaround, a ne lupetaj da je moguce imati self-modifying exe u win32


Gle, ja IMAM program u asembleru koji kad je pokrenut mijenja svoj file na disku. To u normalnim uvjetima nije moguce (moguce je samo citanje), ali postoji nacin kako iz ring0 modificirati handle koji je otvoren za citanje da dozvoljava i pisanje. Trenutno translatiram taj kod u C++, tako da mozes ocekivati sors za par dana.
[ Riste Pejov @ 15.05.2002. 16:36 ] @
Hmm...
Pera, evo ti code sample za delphi, koji ces lako prevesti u CBuilder

http://community.borland.com/article/0,1410,27979,00.html

[ SEH @ 15.05.2002. 19:36 ] @
Nisam Delphi freak, ali znam Pascal barem ono nesto malo sto ga ucimo (citaj: strebamo) u skoli. Correct me if I'm wrong, ali u ovome se clanku objasnjava kako pisati na kraj PE/ELF file-a i to samo onog koji se moze otvoriti za citanje i pisanje. Nisam probao, ali znam da nema sanse da radi sa svojim vlastitim EXE-om jer tako otvoreni handle nece imati writing privilegije.
[ SEH @ 20.05.2002. 17:32 ] @
Nisam potpuno testirao u C++ Builderu (to je trebao tip koji je postavio topic - Pera_Anarhista, ali on kaze da mu je program nesto sjebao na disku, tako da ga odsada koristite na vlastiti rizik, meni na win98SE radi super), najblize sto sam mogao prilagoditi jest za Borlandov C++ kompajler 5.5 (ona free verzija). Ima nesto malo asemblera, a to najbolje ne dirajte ako niste 100% sigurni sto cinite.
Riste Pejov, workaround this:
http://www.sunnis.host.sk/code/sm.zip