Presne tak, resp. to je zále?itosť UPX, ktorý si názvy sekcií overuje, resp. sa nimi riadi a pokiaľ nenájde správne pomenovania, tak dekompresia zlyha. Ale windows loader to má na saláme, pre neho je názov sekcie nepodstatný, preto packnutý súbor ide bez problémov spustiť i s premenovanými sekciami.
Inak UPX obsahuje pár bajtov pre dekompresiu, ak by pr0p4g4nd4 odstránil tie, tak potom u? pomô?e len manuálny/automatizovaný UPX unpack. Raz som sa s tým hral, av?ak u? si presne nepamätám ktoré bajty treba zlikvidovať, musel by som to opäť vyskú?ať, pričom aplikácia je samozrejme funkčná.
// updateTak som si dovolil toto KeyGenME pokorit a tro?ku sprdnúť autora, tak?e v archíve je tutoriál a samozrejme keygenerátor v čistom ASM, ako inak, ?e? :p Niektoré informácie sú určené preva?ne pre začiatočníkov, v?ak sme v ?kôlke, no mô?u sa z nich poučiť aj skúsenej?í REčkári.
A na záver dodám, ?e je nutnou podmienkou, aby sa noví záujemci o RE sna?ili pochopiť toto CrackMe do hĺbky, pričom ide o veľmi jednoduché CMko s absenciou anti-ochrán, tak?e pokiaľ si človek predtým na?tuduje základy ASM a taktie? programovania pod Windows s vyu?itím Win32API, tak ho nemô?e nič prekvapiť. No a odstránenie UPX je tu pokorené viacerými postupmi a jedným z nich sa dá získať originálny exáč.
Nasel bys tam i lea.Lea vyzvedava ze zasobniku.
Hmm, in?trukcia LEA (load effective address) nemá nič spoločné so zásobníkom. av?ak ulo?í offset pamäťového operandu do univerzálneho registra. Tieto dva zápisy sú zhodné.
lea esi, [string]
mov esi, offset string
In?trukciu mo?no pou?iť i na rýchle sčítanie a násobenie.
lea ecx,[eax + ebx] ; ecx = eax + ebx
lea eax,[eax + eax*4] ; eax = 5 * eax