-
1. Data: 2011-11-07 18:07:58
Temat: będę disasemblował
Od: " generał kenobi" <f...@g...pl>
uwaga, będę disasemblował
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
2. Data: 2011-11-07 18:58:39
Temat: Re: będę disasemblował
Od: Sławomir Szczyrba <c...@o...the.night>
Ave ! Morituri te salutant!
[...]>
> co to jest i czy to jest naprawde potrzebne w kazdym exe?
> czy takie anonimowe funkcje sa wymagane? ktos zna jakies info o tym
> dokladnie (o tych kilkudziesieciu powiedzmy anonimowych routinach jakie
> kompilatory wstawiaja do prawie pustych pustych pozatym execow)
>
Ale wiesz, czym się różni exe od com ?
Hmm, myślę, że zamiast męczyć asm czy inne bcc na pecetach,
powinieneś zacząć bawić się mikrokontrolerami.
Możesz pisac wyłącznie w asm, masz pełniusieńką kontrolę nad
sprzętem, a gdy postanowisz przejść z asm na c, po drugim programie
będziesz znał odpowiedzi na wszystkie powyższe pytania :)
> kenobi
Sławek
--
________
_/ __/ __/ I AM IN TOTAL CONTROL, but don't tell the wife.
\__ \__ \___________________________________________________
____________
/___/___/ Sławomir Szczyrba steev/AT/hot\dot\pl
-
3. Data: 2011-11-07 19:31:41
Temat: Re: będę disasemblował
Od: " " <f...@g...pl>
=?ISO-8859-2?Q?_genera=B3_kenobi?= <f...@g...pl> napisał(a):
> uwaga, będę disasemblował
>
trochę zartuję,
najchetniej dowiedzialbym sie co te cholerne kompilatory
----------------------------------------------------
-----
wstawiaja do pustych execów;
----------------------------
znalazlem 4ry stare male kompilatory gdzies na archiwalnym dysku,
skompilowalem puste mainy i ogladam rezultaty
o ile pliki obj jakie produkuja sa przyzwoite co do dlugosci
np okolo 200 bajtow i zawartosc maja w stylu
push ebp ; 0000 _ 55
mov ebp, esp ; 0001 _ 89. E5
@1: pop ebp ; 0003 _ 5D
ret ; 0004 _ C3
choc np devcpp ma
_main:
___gnu_compiled_c:
gcc2_compiled.:
push ebp ; 0000 _ 55
mov ebp, esp ; 0001 _ 89. E5
sub esp, 8 ; 0003 _ 83. EC, 08
call ___main ; 0006 _ E8, 00000000
(rel)
mov eax, 5 ; 000B _ B8, 00000005
jmp ?_001 ; 0010 _ EB, 00
?_001: leave ; 0012 _ C9
ret ; 0013 _ C3
nie wiem co to za call __main w srodku maina (?)
to po zlinkowaniu do exe wstawiaja tam duzo tych tajemniczych bebechow
co jeden to gorzej: main.exe w lcc ma 13k mingw 14k devcpp 4k (najlepiej)
pelles 8k np borland 48k (najgorzej)
nie wiem na jakiej zasadzie kompilatory moga zaszywajz nazwy
funkcji w exe, tak ze po disasemblacji widac jak sie nazywaja
routines w asmie, ale tylko mingw zrobil cos takiego (za co jemu plus)
i widac ze jest tam okolo 30 procedur
podobnych do
___mingw_CRTStartup:; Local function
push ebp ; 004011E0 _ 55
mov ebp, esp ; 004011E1 _ 89. E5
sub esp, 24 ; 004011E3 _ 83. EC,
18
mov dword [esp], __gnu_exception_handler@4 ; 004011E6 _ C7. 04
24, 004010E0(d)
mov dword [ebp-4H], ebx ; 004011ED _ 89. 5D,
FC
call _SetUnhandledExceptionFilter@4 ; 004011F0 _ E8,
0000060B
sub esp, 4 ; 004011F5 _ 83. EC,
04
call __fpreset ; 004011F8 _ E8,
00000163
call ___RUNTIME_PSEUDO_RELOC_LIST__ ; 004011FD _ E8,
FFFFFDFE
call __mingw32_init_fmode ; 00401202 _ E8,
FFFFFE39
call __pei386_runtime_relocator ; 00401207 _ E8,
00000124
call ___p__environ ; 0040120C _ E8,
0000055F
mov eax, dword [eax] ; 00401211 _ 8B. 00
mov dword [esp+8H], eax ; 00401213 _ 89. 44
24, 08
mov eax, dword [__argv] ; 00401217 _ A1,
00402004(d)
mov dword [esp+4H], eax ; 0040121C _ 89. 44
24, 04
mov eax, dword [__data_start__] ; 00401220 _ A1,
00402000(d)
mov dword [esp], eax ; 00401225 _ 89. 04 24
call _main ; 00401228 _ E8,
000000A3
mov ebx, eax ; 0040122D _ 89. C3
call __cexit ; 0040122F _ E8,
0000052C
mov dword [esp], ebx ; 00401234 _ 89. 1C 24
call _ExitProcess@4 ; 00401237 _ E8,
000005D4
o nazwach jak _init_mainargs, init_fmode, gnu_exception_handler,
crtStartup, atexit, onexit, do_sjlj_init, do_pseudo_realoc,
pei386_runtime_relocator, fpreset, do_global_dtors, do_global_ctors,
sharedptr_default_unexpected, eh_shared_initialize i takie tam
co to jest i czy to jest naprawde potrzebne w kazdym exe?
czy takie anonimowe funkcje sa wymagane? ktos zna jakies info o tym
dokladnie (o tych kilkudziesieciu powiedzmy anonimowych routinach jakie
kompilatory wstawiaja do prawie pustych pustych pozatym execow)
kenobi
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
4. Data: 2011-11-08 02:08:24
Temat: Re: będę disasemblował
Od: Michoo <m...@v...pl>
W dniu 07.11.2011 19:58, Sławomir Szczyrba pisze:
> Hmm, myślę, że zamiast męczyć asm czy inne bcc na pecetach,
Etam. Na MASMie spokojnie dawało się uzyskiwać pliki exe korzystające z
winapi w rozmiarze 512-1024 bajtów.
A hardcoreowcy ładowali kod w pola nagłówka PE i osiągali
stokilkadziesiąt bajtów.
Na uC fun jest w drugą stronę - napisać kod w C++ na procesor ze 128B ramu.
--
Pozdrawiam
Michoo
-
5. Data: 2011-11-08 07:17:52
Temat: Re: będę disasemblował
Od: MoonWolf <m...@p...com>
Michoo denied rebel lies:
> Na uC fun jest w drugą stronę - napisać kod w C++ na procesor ze 128B
> ramu.
Fun to jest przy przechodzeniu na ARMa z AVRów. Chociaż osobiście
zaczynam się bać czy nie przegiąłem z OOP...
--
<:> Roger, MoonWolf Out <:>|Can you march to the distant thunder
(::) (::)|
(:) JID:m...@j...org(:)| http://karakkhaz.prv.pl
-
6. Data: 2011-11-08 15:10:09
Temat: Re: będę disasemblował
Od: " " <f...@g...pl>
Michoo <m...@v...pl> napisał(a):
> W dniu 07.11.2011 19:58, Sławomir Szczyrba pisze:
> > Hmm, myślę, że zamiast męczyć asm czy inne bcc na pecetach,
> Etam. Na MASMie spokojnie dawało się uzyskiwać pliki exe korzystające z
> winapi w rozmiarze 512-1024 bajtów.
>
> A hardcoreowcy ładowali kod w pola nagłówka PE i osiągali
> stokilkadziesiąt bajtów.
>
no, jest swietny artykul nt tego jak napisac najmniejszy exe
ktory sciagnie z netu program i uruchomi go (Smallest PE file that
downloads a file over WebDAV and executes it) 133 bajty,
- podoba mi sie to na tyle ze zaczalem zamiarowac by wykorzystac
bezposrednio to wlasnie info do zapoczatkowania pisania (i jak sie uda
napisania) swojej konkretnej wersji kompilatora c/c2 - o ile sie da,
jest tam fajny kawalek ktory bodajze po skompilowaniu nasmem stworzy
minimalny PE, ja raczej bede pisac w c ale wykorzystam to info (o ile
sie uda)
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
7. Data: 2011-11-08 15:20:47
Temat: Re: będę disasemblował
Od: Jacek <a...@o...pl>
Dnia Tue, 8 Nov 2011 15:10:09 +0000 (UTC), f...@g...pl napisał(a):
> Michoo <m...@v...pl> napisał(a):
>
>> W dniu 07.11.2011 19:58, Sławomir Szczyrba pisze:
>>> Hmm, myślę, że zamiast męczyć asm czy inne bcc na pecetach,
>> Etam. Na MASMie spokojnie dawało się uzyskiwać pliki exe korzystające z
>> winapi w rozmiarze 512-1024 bajtów.
>>
>> A hardcoreowcy ładowali kod w pola nagłówka PE i osiągali
>> stokilkadziesiąt bajtów.
>>
>
> no, jest swietny artykul nt tego jak napisac najmniejszy exe
> ktory sciagnie z netu program i uruchomi go (Smallest PE file that
> downloads a file over WebDAV and executes it) 133 bajty,
> - podoba mi sie to na tyle ze zaczalem zamiarowac by wykorzystac
> bezposrednio to wlasnie info do zapoczatkowania pisania (i jak sie uda
> napisania) swojej konkretnej wersji kompilatora c/c2 - o ile sie da,
> jest tam fajny kawalek ktory bodajze po skompilowaniu nasmem stworzy
> minimalny PE, ja raczej bede pisac w c ale wykorzystam to info (o ile
> sie uda)
Zastanawiales sie moze na NOP?
-
8. Data: 2011-11-09 08:28:59
Temat: Re: będę disasemblował
Od: " " <f...@g...pl>
<f...@g...pl> napisał(a):
> Michoo <m...@v...pl> napisał(a):
>
> > W dniu 07.11.2011 19:58, Sławomir Szczyrba pisze:
> > > Hmm, myślę, że zamiast męczyć asm czy inne bcc na pecetach,
> > Etam. Na MASMie spokojnie dawało się uzyskiwać pliki exe korzystające z
> > winapi w rozmiarze 512-1024 bajtów.
> >
> > A hardcoreowcy ładowali kod w pola nagłówka PE i osiągali
> > stokilkadziesiąt bajtów.
> >
>
> no, jest swietny artykul nt tego jak napisac najmniejszy exe
> ktory sciagnie z netu program i uruchomi go (Smallest PE file that
> downloads a file over WebDAV and executes it) 133 bajty,
> - podoba mi sie to na tyle ze zaczalem zamiarowac by wykorzystac
> bezposrednio to wlasnie info do zapoczatkowania pisania (i jak sie uda
> napisania) swojej konkretnej wersji kompilatora c/c2 - o ile sie da,
> jest tam fajny kawalek ktory bodajze po skompilowaniu nasmem stworzy
> minimalny PE, ja raczej bede pisac w c ale wykorzystam to info (o ile
> sie uda)
>
sęk w tym, że c2 (zestaw obmyslanych przeze mnie poprawek do c)
nie jest jeszcze wymyslone do konca (i nie wiem czy uwinę sie
np nawet w nastepne 10 lat) Napisanie samego kompilatora jest
dosyc proste (bo wiadomo co trzeba zrobic pisze sie i wkoncu
dziala) Gorzej z wymysleniem c2 tak by trzymal ducha c (z tym
mam pewien powazny problem), np slowko kluczowe realloc
int tab[1000];
realloc tab[2000];
(vel realloc int tab[2000]; // ?? - bo nie wiem)
rozwiazanie dobre a przynajmniej ciekawe, tylko kwestia
tego ze zgodnie z duchem c warto uzywac lekkich operacji,
a taki reallok enkompasuje dwie na raz ralokacje i kopiowanie
- czy dac mozliwosc uzycia tylko realokacji bez kopiowania
starej zawartosci? czy tez spojrzec na to jednak tak ze sama
definicja realloc jako 'ciezkiej operacji' tu sie defakto nie
stosuje bo ciezkosc tej operacji definiuje system/implementacja
i ze nalezaloby raczej sprobowac zmusic implementacje do tego
by byla lekka (?) -- jeden z problemow, 'opracoweanie' tego jest
o wiele trudniejsze i wazniejsze niz napisanie samego kompilatora
- i tak to jest
(professeur fir)
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
9. Data: 2011-11-09 08:32:19
Temat: Re: będę disasemblował
Od: Sławomir Szczyrba <c...@o...the.night>
Ave !
[...]
> dziala) Gorzej z wymysleniem c2 tak by trzymal ducha c (z tym
> mam pewien powazny problem), np slowko kluczowe realloc
>
> int tab[1000];
>
> realloc tab[2000];
>
> (vel realloc int tab[2000]; // ?? - bo nie wiem)
>
> rozwiazanie dobre a przynajmniej ciekawe, tylko kwestia
> tego ze zgodnie z duchem c warto uzywac lekkich operacji,
> a taki reallok enkompasuje dwie na raz ralokacje i kopiowanie
> - czy dac mozliwosc uzycia tylko realokacji bez kopiowania
> starej zawartosci? czy tez spojrzec na to jednak tak ze sama
> definicja realloc jako 'ciezkiej operacji' tu sie defakto nie
> stosuje bo ciezkosc tej operacji definiuje system/implementacja
> i ze nalezaloby raczej sprobowac zmusic implementacje do tego
> by byla lekka (?) -- jeden z problemow, 'opracoweanie' tego jest
> o wiele trudniejsze i wazniejsze niz napisanie samego kompilatora
> - i tak to jest
>
Jesli ma się trzymać ducha, to chyba powinno działać tak jak
'oryginalny' realloc (czy też std::realloc)...?
> (professeur fir)
Sławek
--
________ Q: How many chickens does it take to screw in a light bulb?
_/ __/ __/ A: Two-one to do it and one to cross the road.
\__ \__ \___________________________________________________
____________
/___/___/ Sławomir Szczyrba steev/AT/hot\dot\pl
-
10. Data: 2011-11-09 13:29:36
Temat: Re: będę disasemblował
Od: " " <f...@g...pl>
> o wiele trudniejsze i wazniejsze niz napisanie samego kompilatora
> - i tak to jest
pozostaje jeszcze opracowanie nazwy tego kompilatora:
moze 'rage' byloby dobre, nazwa zgrana i banalna jak
niewiadomoco ale poniekąd moze nie bylaby zla
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/