Ejemplo n.º 1
0
// address: 8048b10
int main(int argc, char *argv[], char *envp[]) {
    __size32 eax; 		// r24
    int ecx; 		// r25
    __size8 *edi; 		// r31
    __size8 *esi; 		// r30

    eax = *argv;
    global4 = eax;
    setlocale(6, "");
    bindtextdomain("coreutils", "/usr/share/locale");
    textdomain("coreutils");
    proc2();
    if (argc == 2) {
        getenv("POSIXLY_CORRECT");
        flags = LOGICALFLAGS32(eax);
        if (eax == 0) {
            eax = *(argv + 4);
            edi = 0x804a055;
            esi = eax;
            ecx = 7;
            do {
                if (ecx == 0) {
                    goto L7;
                }
                tmpb = *esi - *edi;
                flags = SUBFLAGS8(*esi, *edi, tmpb);
                esi +=  (DF == 0) ? 1 : -1;
                edi +=  (DF == 0) ? 1 : -1;
                ecx = ecx - 1;
            } while (tmpb == 0);
L7:
            if (flags) {
                proc4(0);
            }
            do {
            } while (ecx != 0 && ZF);
            if ( !flags) {
                *(__size32*)(esp + 20) = eax;
                *(__size32*)(esp + 16) = edi;
                *(__size32*)(esp + 12) = esi;
                *(__size32*)(esp + 8) = ebx;
                *(__size32*)(esp + 4) = ecx;
                *(__size32*)esp = eax;
                proc3(*(esp - 72), *(esp + 4), *(esp + 8), *(esp + 12), *(esp + 16), *(esp + 20));
            }
        }
    }
    *(__size32*)esp = 0;
    exit(*(esp + 4));
    return;
}
Ejemplo n.º 2
0
// address: 0x4010e0
void _start(char param1, unsigned char param2, __size32 param3, __size32 param4, __size32 param5) {
    __size32 eax; 		// r24
    __size32 eax_1; 		// r24{18}
    int ecx; 		// r25
    int edx; 		// r26
    int esp; 		// r28
    __size32 *esp_1; 		// r28{116}
    __size32 *esp_2; 		// r28{147}
    __size32 *esp_3; 		// r28{251}
    __size32 *local10; 		// esp_3{251}
    unsigned int local6; 		// m[esp - 8]

    eax_1 = GetModuleHandleA();
    LoadIconA(0, 0x7f00);
    GetWindowsDirectoryA();
    ecx = (param2);
    if (ecx != 58) {
    }
    lstrcatA(&param1, "\hh.exe");
    eax = CreateFileA();
    if (eax != -1) {
        GetWindowsDirectoryA();
        edx = (param2);
        if (edx != 58) {
        }
        lstrcatA(&param1, "\hXCXXXXCXXAAXCh.exe");
        eax = CreateFileA(); /* Warning: also results in esp_1 */
        local10 = esp_1;
        if (eax == -1) {
            local6 = 0;
            esp_3 = local10;
            while (local6 < global67) {
                *(__size32*)(esp_3 - 4) = 0;
                esp_2 = GetModuleHandleA();
                local10 = esp_2;
                edx = local6 + 0x402333;
                eax = *(edx + 8);
                ecx = local6 + 0x402333;
                *(int*)(ecx + 8) = eax ^ 22;
                local6 += 8;
                esp_3 = local10;
            }
            *(__size32*)(esp_3 - 4) = global68;
            eax = proc1(*(esp_3 - 4));
            global73 = eax;
            *(unsigned int*)(esp_3 - 4) = global67;
            *(__size32*)(esp_3 - 8) = global73;
            *(__size32*)(esp_3 - 12) = 0x40233b;
            proc2(*(esp_3 - 184), *(esp_3 - 180), *(esp_3 - 48), *(esp_3 - 44), *(esp_3 - 32), *(esp_3 - 12), *(esp_3 - 8), *(esp_3 - 4));
            global76 = param5;
            global77 = param4;
            global78 = param3;
            ecx = *24;
            global27 = ecx;
            global80 = (esp - 4);
            *(__size32*)(esp_3 - 4) = eax_1;
            *(__size32*)(esp_3 - 8) = 0x40128f - eax_1;
            esp = proc3(*(esp_3 - 4));
            *(__size32*)(esp + 4) = global73;
            proc4(*(esp + 4));
/* goto m[0x406720]*/
        }
    } else {