Quantcast
Channel: HAKER - Forum Komputerowe
Viewing all articles
Browse latest Browse all 4549

Prosta i pobieżna analiza instrukcji

$
0
0
Witam. Do assemblera zaglądam raz na ruski rok, ale coś mnie natchnęło, żeby spróbować jako tako zrozumieć pewne rzeczy.
Mam taki kod
Kod:

10001340  /$ 8B4424 08      MOV EAX,DWORD PTR SS:[ESP+8]
10001344  |. 8B4C24 10      MOV ECX,DWORD PTR SS:[ESP+10]
10001348  |. 0BC8          OR ECX,EAX
1000134A  |. 8B4C24 0C      MOV ECX,DWORD PTR SS:[ESP+C]
1000134E  |. 75 09          JNZ SHORT ETS2Lib.10001359
10001350  |. 8B4424 04      MOV EAX,DWORD PTR SS:[ESP+4]
10001354  |. F7E1          MUL ECX       
10001356  |. C2 1000        RETN 10
10001359  |> 53            PUSH EBX
1000135A  |. F7E1          MUL ECX       
1000135C  |. 8BD8          MOV EBX,EAX
1000135E  |. 8B4424 08      MOV EAX,DWORD PTR SS:[ESP+8]
10001362  |. F76424 14      MUL DWORD PTR SS:[ESP+14]
10001366  |. 03D8          ADD EBX,EAX
10001368  |. 8B4424 08      MOV EAX,DWORD PTR SS:[ESP+8]
1000136C  |. F7E1          MUL ECX
1000136E  |. 03D3          ADD EDX,EBX
10001370  |. 5B            POP EBX
10001371  \. C2 1000        RETN 10

IDA wysmażyła z tego coś takiego:
Kod:

__int64 sub_10001340(__int64 a1, __int64 a2) {
        __int64 result;        //qax@2
        if (HIDWORD(a1) | HIDWORD(a2)) result = a1*a2;
        else result = (_DWORD)a2 * (_QWORD)(DWORD)a1;
        return result;

Kilka pytań:
1. Dobrze rozumiem, że obecność zmiennych lokalnych można rozpoznać po [EBP-xxx]? Nie widzę również ramki stosu, skąd w takim razie wzięło się __int64 result?
2. IDA stwierdziła, że funkcja przyjmuje dwa 8-bajtowe argumenty. Jeśli dobrze rozumiem to a1 = [ESP+4] i [ESP+8], a2 = [ESP+C] i [ESP+10]. Czym jest [ESP+14] w instrukcji MUL? OK, w międzyczasie jest push, więc esp się zmniejszył.
3. Prosiłbym o wyjaśnienie instrukcji RETN 10. (czyszczenie stosu z 16 bajtów?)
4. Jaki jest sens 3 instrukcji (OR ECX,EAX) skoro jej wynik jest nadpisywany w kolejnej instrukcji poprzez MOV? Ma ona związek z JNZ?

Z góry dziękuje za odpowiedzi i wyjaśnienia :)

Viewing all articles
Browse latest Browse all 4549

Trending Articles


TRX Antek AVT - 2310 ver 2,0


Автовишка HAULOTTE HA 16 SPX


POTANIACZ


Zrób Sam - rocznik 1985 [PDF] [PL]


Maxgear opinie


BMW E61 2.5d błąd 43E2 - klapa gasząca a DPF


Eveline ➤ Matowe pomadki Velvet Matt Lipstick 500, 506, 5007


Auta / Cars (2006) PLDUB.BRRip.480p.XviD.AC3-LTN / DUBBING PL


Peugeot 508 problem z elektroniką


AŚ Jelenia Góra