Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 28.44 KB | None | 0 0
  1. sample of codmw's obfuscated data store object usage. ctrl+f ------- to see different parts of this paste. here's a sig to find some of them (for convenience/speed), but read on to see why you'll have to find them by mnemonic sequence or searching for the (likely compile-time random) immediates involved.
  2.  
  3. 65 48 8B 04 25 30 00 00 00 41 B9 ? ? ? ? 44 8B 50 60
  4.  
  5. __int64 __fastcall sub_7FF6F8319130(__int64 a1)
  6. {
  7.  __int64 a1_0; // rdi
  8.  int obfs_plusten; // er8
  9.  int obfs_zeroinit; // edx
  10.  unsigned int obfs_state_iterator; // er9
  11.  int obfs_tlsdata; // er10
  12.  signed int obfs_state_iterator_next; // eax
  13.  int v7; // ecx
  14.  char v8; // bl
  15.  signed int v9; // er11
  16.  signed int v10; // xmm1_4
  17.  signed int obfs_result; // xmm0_4
  18.  int v12; // edx
  19.  int v13; // er9
  20.  unsigned int v14; // er8
  21.  int v15; // er10
  22.  signed int v16; // eax
  23.  int v17; // ecx
  24.  int v18; // edx
  25.  int obfs2_result; // xmm0_4
  26.  int v20; // edx
  27.  int v21; // er9
  28.  unsigned int v22; // er8
  29.  int v23; // er10
  30.  int v24; // ecx
  31.  int v25; // edx
  32.  _DWORD *v26; // rcx
  33.  __int64 result; // rax
  34.  
  35.  a1_0 = a1;
  36.  if ( !*((_BYTE *)g_some_obfs_data + 16) && !*((_BYTE *)g_some_obfs_data + 40) )
  37.    goto label_fail_deobfs;
  38.  obfs_plusten = *((_DWORD *)g_some_obfs_data + 10);
  39.  obfs_zeroinit = 0;
  40.  obfs_state_iterator = 0x28392FE6;
  41.  obfs_tlsdata = *(_DWORD *)(__readgsqword(0x30u) + 96);
  42.  obfs_state_iterator_next = 0x6EA3322F;
  43.  do
  44.  {
  45.    if ( obfs_state_iterator > 0x5112038B )
  46.    {
  47.      switch ( obfs_state_iterator )
  48.      {
  49.        case 0x5810A6C5u:
  50.          v7 = 4776 * obfs_zeroinit + (obfs_tlsdata ^ 0xFFFFD6F6);
  51.          obfs_state_iterator_next = 1462725405;
  52.          break;
  53.        case 0x738CE714u:
  54.          v7 = (obfs_tlsdata ^ 0x1FDB) - 4380 * obfs_zeroinit;
  55.          obfs_state_iterator_next = 1242979282;
  56.          break;
  57.        case 0x80A136DD:
  58.          v7 = (obfs_tlsdata ^ 0xFFFF8B7F) - 32451 * obfs_plusten;
  59.          obfs_state_iterator_next = -793208655;
  60.          obfs_plusten = __ROR4__(obfs_plusten, 16);
  61.          break;
  62.        case 0xC75FB2CA:
  63.          v7 = (obfs_tlsdata ^ 0xFFFFCE42) - 2132 * obfs_zeroinit;
  64.          obfs_state_iterator_next = 129475588;
  65.          break;
  66.        default:
  67.          goto LABEL_26;
  68.      }
  69.    }
  70.    else
  71.    {
  72.      switch ( obfs_state_iterator )
  73.      {
  74.        case 0x5112038Bu:
  75.          obfs_state_iterator_next = 0x1ED675C3;
  76.          obfs_zeroinit = (unsigned __int16)(3288 * obfs_zeroinit + (obfs_tlsdata ^ 0xA3FF));
  77.          obfs_plusten = __ROR4__(obfs_zeroinit ^ __ROL4__(obfs_plusten, 16), 16);
  78.          goto LABEL_26;
  79.        case 0x64A4E0u:
  80.          obfs_zeroinit = (unsigned __int16)obfs_plusten;
  81.          obfs_state_iterator_next = 0x5176A76B;
  82.          goto LABEL_26;
  83.        case 0xF3FCDD8u:
  84.          obfs_state_iterator_next = 0xF5B6938;
  85.          obfs_plusten = obfs_zeroinit ^ __ROL4__(obfs_plusten, 16);
  86.          goto LABEL_26;
  87.        case 0x28392FE6u:
  88.          obfs_state_iterator_next = 0x29FE019;
  89.          obfs_zeroinit = (unsigned __int16)((obfs_tlsdata ^ 0xD066) - 4588 * obfs_plusten);
  90.          obfs_plusten = obfs_zeroinit ^ __ROL4__(obfs_plusten, 16);
  91.          goto LABEL_26;
  92.        case 0x2AA6CFFFu:
  93.          obfs_plusten = (unsigned __int16)(9459 * obfs_plusten + (obfs_tlsdata ^ 0x3514)) ^ __ROR4__(obfs_plusten, 16);
  94.          obfs_state_iterator_next = 0x72B6693A;
  95.          obfs_zeroinit = (unsigned __int16)obfs_plusten;
  96.          goto LABEL_26;
  97.      }
  98.      if ( obfs_state_iterator != 0x32222E70 )
  99.        goto LABEL_26;
  100.      v7 = 2989 * obfs_zeroinit + (obfs_tlsdata ^ 0x7C7B);
  101.      obfs_state_iterator_next = 0xC54910E5;
  102.    }
  103.    obfs_zeroinit = (unsigned __int16)v7;
  104. LABEL_26:
  105.    obfs_state_iterator ^= obfs_state_iterator_next;
  106.  }
  107.  while ( obfs_state_iterator != 0x4FC47648 );
  108.  if ( (_BYTE)obfs_plusten && !*(_BYTE *)(a1_0 + 1492) )
  109.  {
  110.    v8 = 1;
  111.    goto label_succeed_deobfs;
  112.  }
  113. label_fail_deobfs:
  114.  v8 = 0;
  115. label_succeed_deobfs:
  116.  *(_BYTE *)(a1_0 + 10988) = v8;                // before obfuscation, v8 here would've simply been *(g_some_obfs_data)
  117.  
  118.  
  119. -------------------------------------------------- disasm of above
  120.  
  121. .text:00007FF6F8319130                            sub_7FF6F8319130 proc near              ; CODE XREF: sub_7FF6F8460D90+1B44↓p
  122. .text:00007FF6F8319130
  123. .text:00007FF6F8319130                            arg_0       = dword ptr  8
  124. .text:00007FF6F8319130                            arg_8       = qword ptr  10h
  125. .text:00007FF6F8319130                            arg_10      = qword ptr  18h
  126. .text:00007FF6F8319130
  127. .text:00007FF6F8319130 48 89 5C 24 10                         mov     [rsp+arg_8], rbx
  128. .text:00007FF6F8319135 48 89 7C 24 18                         mov     [rsp+arg_10], rdi
  129. .text:00007FF6F831913A                            ; 30:   a1_0 = a1;
  130. .text:00007FF6F831913A 48 8B 05 37 91 94 0D                   mov     rax, cs:g_some_obfs_data
  131. .text:00007FF6F8319141 48 8B F9                               mov     rdi, rcx
  132. .text:00007FF6F8319144                            ; 31:   if ( !*((_BYTE *)g_some_obfs_data + 16) && !*((_BYTE *)g_some_obfs_data + 40) )
  133. .text:00007FF6F8319144 80 78 10 00                            cmp     byte ptr [rax+10h], 0
  134. .text:00007FF6F8319148 75 0A                                  jnz     short loc_7FF6F8319154
  135. .text:00007FF6F831914A 80 78 28 00                            cmp     byte ptr [rax+28h], 0
  136. .text:00007FF6F831914E                            ; 32:     goto label_fail_deobfs;
  137. .text:00007FF6F831914E 0F 84 CE 01 00 00                      jz      loc_7FF6F8319322
  138. .text:00007FF6F8319154                            ; 33:   obfs_plusten = *((_DWORD *)g_some_obfs_data + 10);
  139. .text:00007FF6F8319154
  140. .text:00007FF6F8319154                            loc_7FF6F8319154:                       ; CODE XREF: sub_7FF6F8319130+18↑j
  141. .text:00007FF6F8319154 44 8B 40 28                            mov     r8d, [rax+28h]
  142. .text:00007FF6F8319158                            ; 34:   obfs_zeroinit = 0;
  143. .text:00007FF6F8319158 33 D2                                  xor     edx, edx
  144. .text:00007FF6F831915A                            ; 36:   obfs_tlsdata = *(_DWORD *)(__readgsqword(0x30u) + 96);
  145. .text:00007FF6F831915A 65 48 8B 04 25 30 00 00 00             mov     rax, gs:30h
  146. .text:00007FF6F8319163                            ; 35:   obfs_state_iterator = 0x28392FE6;
  147. .text:00007FF6F8319163 41 B9 E6 2F 39 28                      mov     r9d, 28392FE6h
  148. .text:00007FF6F8319169 44 8B 50 60                            mov     r10d, [rax+60h]
  149. .text:00007FF6F831916D                            ; 37:   obfs_state_iterator_next = 0x6EA3322F;
  150. .text:00007FF6F831916D B8 2F 32 A3 6E                         mov     eax, 6EA3322Fh
  151. .text:00007FF6F8319172                            ; 40:     if ( obfs_state_iterator > 0x5112038B )
  152. .text:00007FF6F8319172
  153. .text:00007FF6F8319172                            loc_7FF6F8319172:                       ; CODE XREF: sub_7FF6F8319130+1DA↓j
  154. .text:00007FF6F8319172 41 81 F9 8B 03 12 51                   cmp     r9d, 5112038Bh
  155. .text:00007FF6F8319179 0F 87 F7 00 00 00                      ja      loc_7FF6F8319276
  156. .text:00007FF6F831917F                            ; 67:       switch ( obfs_state_iterator )
  157. .text:00007FF6F831917F 0F 84 C8 00 00 00                      jz      loc_7FF6F831924D
  158. .text:00007FF6F8319185 41 81 F9 E0 A4 64 00                   cmp     r9d, 64A4E0h
  159. .text:00007FF6F831918C 0F 84 AD 00 00 00                      jz      loc_7FF6F831923F
  160. .text:00007FF6F8319192 41 81 F9 D8 CD 3F 0F                   cmp     r9d, 0F3FCDD8h
  161. .text:00007FF6F8319199 0F 84 8F 00 00 00                      jz      loc_7FF6F831922E
  162. .text:00007FF6F831919F 41 81 F9 E6 2F 39 28                   cmp     r9d, 28392FE6h
  163. .text:00007FF6F83191A6 74 60                                  jz      short loc_7FF6F8319208
  164. .text:00007FF6F83191A8 41 81 F9 FF CF A6 2A                   cmp     r9d, 2AA6CFFFh
  165. .text:00007FF6F83191AF 74 28                                  jz      short loc_7FF6F83191D9
  166. .text:00007FF6F83191B1                            ; 93:       if ( obfs_state_iterator != 0x32222E70 )
  167. .text:00007FF6F83191B1 41 81 F9 70 2E 22 32                   cmp     r9d, 32222E70h
  168. .text:00007FF6F83191B8                            ; 94:         goto LABEL_26;
  169. .text:00007FF6F83191B8 0F 85 42 01 00 00                      jnz     loc_7FF6F8319300
  170. .text:00007FF6F83191BE                            ; 95:       v7 = 2989 * obfs_zeroinit + (obfs_tlsdata ^ 0x7C7B);
  171. .text:00007FF6F83191BE 69 C2 AD 0B 00 00                      imul    eax, edx, 0BADh
  172. .text:00007FF6F83191C4 41 8B CA                               mov     ecx, r10d
  173. .text:00007FF6F83191C7 81 F1 7B 7C 00 00                      xor     ecx, 7C7Bh
  174. .text:00007FF6F83191CD 03 C8                                  add     ecx, eax
  175. .text:00007FF6F83191CF                            ; 96:       obfs_state_iterator_next = 0xC54910E5;
  176. .text:00007FF6F83191CF B8 E5 10 49 C5                         mov     eax, 0C54910E5h
  177. .text:00007FF6F83191D4 E9 24 01 00 00                         jmp     loc_7FF6F83192FD
  178. .text:00007FF6F83191D9                            ; ---------------------------------------------------------------------------
  179. .text:00007FF6F83191D9                            ; 88:           obfs_plusten = (unsigned __int16)(9459 * obfs_plusten + (obfs_tlsdata ^ 0x3514)) ^ __ROR4__(obfs_plusten, 16);
  180. .text:00007FF6F83191D9
  181. .text:00007FF6F83191D9                            loc_7FF6F83191D9:                       ; CODE XREF: sub_7FF6F8319130+7F↑j
  182. .text:00007FF6F83191D9 41 69 C0 F3 24 00 00                   imul    eax, r8d, 24F3h
  183. .text:00007FF6F83191E0 41 8B D0                               mov     edx, r8d
  184. .text:00007FF6F83191E3 C1 CA 10                               ror     edx, 10h
  185. .text:00007FF6F83191E6 41 8B CA                               mov     ecx, r10d
  186. .text:00007FF6F83191E9 81 F1 14 35 00 00                      xor     ecx, 3514h
  187. .text:00007FF6F83191EF 44 8B C2                               mov     r8d, edx
  188. .text:00007FF6F83191F2 03 C8                                  add     ecx, eax
  189. .text:00007FF6F83191F4 0F B7 C1                               movzx   eax, cx
  190. .text:00007FF6F83191F7 44 33 C0                               xor     r8d, eax
  191. .text:00007FF6F83191FA                            ; 89:           obfs_state_iterator_next = 0x72B6693A;
  192. .text:00007FF6F83191FA B8 3A 69 B6 72                         mov     eax, 72B6693Ah
  193. .text:00007FF6F83191FF                            ; 90:           obfs_zeroinit = (unsigned __int16)obfs_plusten;
  194. .text:00007FF6F83191FF 41 0F B7 D0                            movzx   edx, r8w
  195. .text:00007FF6F8319203                            ; 91:           goto LABEL_26;
  196. .text:00007FF6F8319203 E9 F8 00 00 00                         jmp     loc_7FF6F8319300
  197. .text:00007FF6F8319208                            ; ---------------------------------------------------------------------------
  198. .text:00007FF6F8319208                            ; 84:           obfs_zeroinit = (unsigned __int16)((obfs_tlsdata ^ 0xD066) - 4588 * obfs_plusten);
  199. .text:00007FF6F8319208
  200. .text:00007FF6F8319208                            loc_7FF6F8319208:                       ; CODE XREF: sub_7FF6F8319130+76↑j
  201. .text:00007FF6F8319208 41 69 C0 EC 11 00 00                   imul    eax, r8d, 11ECh
  202. .text:00007FF6F831920F 41 8B CA                               mov     ecx, r10d
  203. .text:00007FF6F8319212 81 F1 66 D0 FF FF                      xor     ecx, 0FFFFD066h
  204. .text:00007FF6F8319218                            ; 85:           obfs_plusten = obfs_zeroinit ^ __ROL4__(obfs_plusten, 16);
  205. .text:00007FF6F8319218 41 C1 C0 10                            rol     r8d, 10h
  206. .text:00007FF6F831921C 2B C8                                  sub     ecx, eax
  207. .text:00007FF6F831921E                            ; 83:           obfs_state_iterator_next = 0x29FE019;
  208. .text:00007FF6F831921E B8 19 E0 9F 02                         mov     eax, 29FE019h
  209. .text:00007FF6F8319223 0F B7 D1                               movzx   edx, cx
  210. .text:00007FF6F8319226 44 33 C2                               xor     r8d, edx
  211. .text:00007FF6F8319229                            ; 86:           goto LABEL_26;
  212. .text:00007FF6F8319229 E9 D2 00 00 00                         jmp     loc_7FF6F8319300
  213. .text:00007FF6F831922E                            ; ---------------------------------------------------------------------------
  214. .text:00007FF6F831922E                            ; 80:           obfs_plusten = obfs_zeroinit ^ __ROL4__(obfs_plusten, 16);
  215. .text:00007FF6F831922E
  216. .text:00007FF6F831922E                            loc_7FF6F831922E:                       ; CODE XREF: sub_7FF6F8319130+69↑j
  217. .text:00007FF6F831922E 41 C1 C0 10                            rol     r8d, 10h
  218. .text:00007FF6F8319232                            ; 79:           obfs_state_iterator_next = 0xF5B6938;
  219. .text:00007FF6F8319232 B8 38 69 5B 0F                         mov     eax, 0F5B6938h
  220. .text:00007FF6F8319237 44 33 C2                               xor     r8d, edx
  221. .text:00007FF6F831923A                            ; 81:           goto LABEL_26;
  222. .text:00007FF6F831923A E9 C1 00 00 00                         jmp     loc_7FF6F8319300
  223. .text:00007FF6F831923F                            ; ---------------------------------------------------------------------------
  224. .text:00007FF6F831923F                            ; 75:           obfs_zeroinit = (unsigned __int16)obfs_plusten;
  225. .text:00007FF6F831923F
  226. .text:00007FF6F831923F                            loc_7FF6F831923F:                       ; CODE XREF: sub_7FF6F8319130+5C↑j
  227. .text:00007FF6F831923F 41 0F B7 D0                            movzx   edx, r8w
  228. .text:00007FF6F8319243                            ; 76:           obfs_state_iterator_next = 0x5176A76B;
  229. .text:00007FF6F8319243 B8 6B A7 76 51                         mov     eax, 5176A76Bh
  230. .text:00007FF6F8319248                            ; 77:           goto LABEL_26;
  231. .text:00007FF6F8319248 E9 B3 00 00 00                         jmp     loc_7FF6F8319300
  232. .text:00007FF6F831924D                            ; ---------------------------------------------------------------------------
  233. .text:00007FF6F831924D                            ; 71:           obfs_zeroinit = (unsigned __int16)(3288 * obfs_zeroinit + (obfs_tlsdata ^ 0xA3FF));
  234. .text:00007FF6F831924D
  235. .text:00007FF6F831924D                            loc_7FF6F831924D:                       ; CODE XREF: sub_7FF6F8319130+4F↑j
  236. .text:00007FF6F831924D 69 C2 D8 0C 00 00                      imul    eax, edx, 0CD8h
  237. .text:00007FF6F8319253 41 8B CA                               mov     ecx, r10d
  238. .text:00007FF6F8319256 81 F1 FF A3 FF FF                      xor     ecx, 0FFFFA3FFh
  239. .text:00007FF6F831925C                            ; 72:           obfs_plusten = __ROR4__(obfs_zeroinit ^ __ROL4__(obfs_plusten, 16), 16);
  240. .text:00007FF6F831925C 41 C1 C0 10                            rol     r8d, 10h
  241. .text:00007FF6F8319260 03 C8                                  add     ecx, eax
  242. .text:00007FF6F8319262                            ; 70:           obfs_state_iterator_next = 0x1ED675C3;
  243. .text:00007FF6F8319262 B8 C3 75 D6 1E                         mov     eax, 1ED675C3h
  244. .text:00007FF6F8319267 0F B7 D1                               movzx   edx, cx
  245. .text:00007FF6F831926A 44 33 C2                               xor     r8d, edx
  246. .text:00007FF6F831926D 41 C1 C8 10                            ror     r8d, 10h
  247. .text:00007FF6F8319271                            ; 73:           goto LABEL_26;
  248. .text:00007FF6F8319271 E9 8A 00 00 00                         jmp     loc_7FF6F8319300
  249. .text:00007FF6F8319276                            ; ---------------------------------------------------------------------------
  250. .text:00007FF6F8319276                            ; 42:       switch ( obfs_state_iterator )
  251. .text:00007FF6F8319276
  252. .text:00007FF6F8319276                            loc_7FF6F8319276:                       ; CODE XREF: sub_7FF6F8319130+49↑j
  253. .text:00007FF6F8319276 41 81 F9 C5 A6 10 58                   cmp     r9d, 5810A6C5h
  254. .text:00007FF6F831927D 74 68                                  jz      short loc_7FF6F83192E7
  255. .text:00007FF6F831927F 41 81 F9 14 E7 8C 73                   cmp     r9d, 738CE714h
  256. .text:00007FF6F8319286 74 47                                  jz      short loc_7FF6F83192CF
  257. .text:00007FF6F8319288 41 81 F9 DD 36 A1 80                   cmp     r9d, 80A136DDh
  258. .text:00007FF6F831928F 74 21                                  jz      short loc_7FF6F83192B2
  259. .text:00007FF6F8319291                            ; 62:           goto LABEL_26;
  260. .text:00007FF6F8319291 41 81 F9 CA B2 5F C7                   cmp     r9d, 0C75FB2CAh
  261. .text:00007FF6F8319298 75 66                                  jnz     short loc_7FF6F8319300
  262. .text:00007FF6F831929A                            ; 58:           v7 = (obfs_tlsdata ^ 0xFFFFCE42) - 2132 * obfs_zeroinit;
  263. .text:00007FF6F831929A 69 C2 54 08 00 00                      imul    eax, edx, 854h
  264. .text:00007FF6F83192A0 41 8B CA                               mov     ecx, r10d
  265. .text:00007FF6F83192A3 81 F1 42 CE FF FF                      xor     ecx, 0FFFFCE42h
  266. .text:00007FF6F83192A9 2B C8                                  sub     ecx, eax
  267. .text:00007FF6F83192AB                            ; 59:           obfs_state_iterator_next = 129475588;
  268. .text:00007FF6F83192AB B8 04 A4 B7 07                         mov     eax, 7B7A404h
  269. .text:00007FF6F83192B0 EB 4B                                  jmp     short loc_7FF6F83192FD
  270. .text:00007FF6F83192B2                            ; ---------------------------------------------------------------------------
  271. .text:00007FF6F83192B2                            ; 53:           v7 = (obfs_tlsdata ^ 0xFFFF8B7F) - 32451 * obfs_plusten;
  272. .text:00007FF6F83192B2
  273. .text:00007FF6F83192B2                            loc_7FF6F83192B2:                       ; CODE XREF: sub_7FF6F8319130+15F↑j
  274. .text:00007FF6F83192B2 41 69 C0 C3 7E 00 00                   imul    eax, r8d, 7EC3h
  275. .text:00007FF6F83192B9 41 8B CA                               mov     ecx, r10d
  276. .text:00007FF6F83192BC 81 F1 7F 8B FF FF                      xor     ecx, 0FFFF8B7Fh
  277. .text:00007FF6F83192C2 2B C8                                  sub     ecx, eax
  278. .text:00007FF6F83192C4                            ; 54:           obfs_state_iterator_next = -793208655;
  279. .text:00007FF6F83192C4 B8 B1 98 B8 D0                         mov     eax, 0D0B898B1h
  280. .text:00007FF6F83192C9                            ; 55:           obfs_plusten = __ROR4__(obfs_plusten, 16);
  281. .text:00007FF6F83192C9 41 C1 C8 10                            ror     r8d, 10h
  282. .text:00007FF6F83192CD EB 2E                                  jmp     short loc_7FF6F83192FD
  283. .text:00007FF6F83192CF                            ; ---------------------------------------------------------------------------
  284. .text:00007FF6F83192CF                            ; 49:           v7 = (obfs_tlsdata ^ 0x1FDB) - 4380 * obfs_zeroinit;
  285. .text:00007FF6F83192CF
  286. .text:00007FF6F83192CF                            loc_7FF6F83192CF:                       ; CODE XREF: sub_7FF6F8319130+156↑j
  287. .text:00007FF6F83192CF 69 C2 1C 11 00 00                      imul    eax, edx, 111Ch
  288. .text:00007FF6F83192D5 41 8B CA                               mov     ecx, r10d
  289. .text:00007FF6F83192D8 81 F1 DB 1F 00 00                      xor     ecx, 1FDBh
  290. .text:00007FF6F83192DE 2B C8                                  sub     ecx, eax
  291. .text:00007FF6F83192E0                            ; 50:           obfs_state_iterator_next = 1242979282;
  292. .text:00007FF6F83192E0 B8 D2 5B 16 4A                         mov     eax, 4A165BD2h
  293. .text:00007FF6F83192E5 EB 16                                  jmp     short loc_7FF6F83192FD
  294. .text:00007FF6F83192E7                            ; ---------------------------------------------------------------------------
  295. .text:00007FF6F83192E7                            ; 45:           v7 = 4776 * obfs_zeroinit + (obfs_tlsdata ^ 0xFFFFD6F6);
  296. .text:00007FF6F83192E7
  297. .text:00007FF6F83192E7                            loc_7FF6F83192E7:                       ; CODE XREF: sub_7FF6F8319130+14D↑j
  298. .text:00007FF6F83192E7 69 C2 A8 12 00 00                      imul    eax, edx, 12A8h
  299. .text:00007FF6F83192ED 41 8B CA                               mov     ecx, r10d
  300. .text:00007FF6F83192F0 81 F1 F6 D6 FF FF                      xor     ecx, 0FFFFD6F6h
  301. .text:00007FF6F83192F6 03 C8                                  add     ecx, eax
  302. .text:00007FF6F83192F8                            ; 46:           obfs_state_iterator_next = 1462725405;
  303. .text:00007FF6F83192F8 B8 1D 6B 2F 57                         mov     eax, 572F6B1Dh
  304. .text:00007FF6F83192FD                            ; 98:     obfs_zeroinit = (unsigned __int16)v7;
  305. .text:00007FF6F83192FD
  306. .text:00007FF6F83192FD                            loc_7FF6F83192FD:                       ; CODE XREF: sub_7FF6F8319130+A4↑j
  307. .text:00007FF6F83192FD                                                                    ; sub_7FF6F8319130+180↑j ...
  308. .text:00007FF6F83192FD 0F B7 D1                               movzx   edx, cx
  309. .text:00007FF6F8319300                            ; 100:     obfs_state_iterator ^= obfs_state_iterator_next;
  310. .text:00007FF6F8319300
  311. .text:00007FF6F8319300                            loc_7FF6F8319300:                       ; CODE XREF: sub_7FF6F8319130+88↑j
  312. .text:00007FF6F8319300                                                                    ; sub_7FF6F8319130+D3↑j ...
  313. .text:00007FF6F8319300 44 33 C8                               xor     r9d, eax
  314. .text:00007FF6F8319303                            ; 102:   while ( obfs_state_iterator != 0x4FC47648 );
  315. .text:00007FF6F8319303 41 81 F9 48 76 C4 4F                   cmp     r9d, 4FC47648h
  316. .text:00007FF6F831930A 0F 85 62 FE FF FF                      jnz     loc_7FF6F8319172
  317. .text:00007FF6F8319310                            ; 103:   if ( (_BYTE)obfs_plusten && !*(_BYTE *)(a1_0 + 1492) )
  318. .text:00007FF6F8319310 45 84 C0                               test    r8b, r8b
  319. .text:00007FF6F8319313 74 0D                                  jz      short loc_7FF6F8319322
  320. .text:00007FF6F8319315 80 BF D4 05 00 00 00                   cmp     byte ptr [rdi+5D4h], 0
  321. .text:00007FF6F831931C 75 04                                  jnz     short loc_7FF6F8319322
  322. .text:00007FF6F831931E                            ; 105:     v8 = 1;
  323. .text:00007FF6F831931E B3 01                                  mov     bl, 1
  324. .text:00007FF6F8319320                            ; 106:     goto label_succeed_deobfs;
  325. .text:00007FF6F8319320 EB 02                                  jmp     short loc_7FF6F8319324
  326. .text:00007FF6F8319322                            ; ---------------------------------------------------------------------------
  327. .text:00007FF6F8319322                            ; 109:   v8 = 0;
  328. .text:00007FF6F8319322
  329. .text:00007FF6F8319322                            loc_7FF6F8319322:                       ; CODE XREF: sub_7FF6F8319130+1E↑j
  330. .text:00007FF6F8319322                                                                    ; sub_7FF6F8319130+1E3↑j ...
  331. .text:00007FF6F8319322 32 DB                                  xor     bl, bl
  332. .text:00007FF6F8319324                            ; 111:   *(_BYTE *)(a1_0 + 10988) = v8;
  333. .text:00007FF6F8319324
  334. .text:00007FF6F8319324                            loc_7FF6F8319324:                       ; CODE XREF: sub_7FF6F8319130+1F0↑j
  335. .text:00007FF6F8319324 88 9F EC 2A 00 00                      mov     [rdi+2AECh], bl
  336. .text:00007FF6F831932A                            ; 112:   v9 = 0x849F1772;
  337. .text:00007FF6F831932A 41 BB 72 17 9F 84                      mov     r11d, 849F1772h
  338. .text:00007FF6F8319330                            ; 113:   v10 = 0;
  339. .text:00007FF6F8319330 0F 57 C9                               xorps   xmm1, xmm1
  340.  
  341.  
  342. --------------------------------------------------------------
  343. sample of the beginning of two random opaque predicates. note the registers chosen vary, so a sig for these isn't very useful.
  344.  
  345. .text:00007FF6F682740F 8B 41 28                               mov     eax, [rcx+28h]
  346. .text:00007FF6F6827412 45 33 C0                               xor     r8d, r8d
  347. .text:00007FF6F6827415 65 48 8B 0C 25 30 00 00 00             mov     rcx, gs:30h
  348. .text:00007FF6F682741E 41 B9 E6 2F 39 28                      mov     r9d, 28392FE6h
  349. .text:00007FF6F6827424 44 8B 51 60                            mov     r10d, [rcx+60h]
  350. .text:00007FF6F6827428 B9 2F 32 A3 6E                         mov     ecx, 6EA3322Fh
  351. .text:00007FF6F682742D 0F 1F 00                               nop     dword ptr [rax]
  352. .text:00007FF6F6827430
  353. .text:00007FF6F6827430                            loc_7FF6F6827430:                       ; CODE XREF: sub_7FF6F6827400+1C8↓j
  354. .text:00007FF6F6827430 41 81 F9 8B 03 12 51                   cmp     r9d, 5112038Bh
  355. .text:00007FF6F6827437 0F 87 F5 00 00 00                      ja      loc_7FF6F6827532
  356. .text:00007FF6F682743D 0F 84 C6 00 00 00                      jz      loc_7FF6F6827509
  357. .text:00007FF6F6827443 41 81 F9 E0 A4 64 00                   cmp     r9d, 64A4E0h
  358. .text:00007FF6F682744A 0F 84 AB 00 00 00                      jz      loc_7FF6F68274FB
  359. .text:00007FF6F6827450 41 81 F9 D8 CD 3F 0F                   cmp     r9d, 0F3FCDD8h
  360. .text:00007FF6F6827457 0F 84 8E 00 00 00                      jz      loc_7FF6F68274EB
  361. .text:00007FF6F682745D 41 81 F9 E6 2F 39 28                   cmp     r9d, 28392FE6h
  362. .text:00007FF6F6827464 74 60                                  jz      short loc_7FF6F68274C6
  363. .text:00007FF6F6827466 41 81 F9 FF CF A6 2A                   cmp     r9d, 2AA6CFFFh
  364. .text:00007FF6F682746D 74 29                                  jz      short loc_7FF6F6827498
  365. .text:00007FF6F682746F 41 81 F9 70 2E 22 32                   cmp     r9d, 32222E70h
  366. .text:00007FF6F6827476 0F 85 42 01 00 00                      jnz     loc_7FF6F68275BE
  367. .text:00007FF6F682747C 41 69 C8 AD 0B 00 00                   imul    ecx, r8d, 0BADh
  368. .text:00007FF6F6827483 41 8B D2                               mov     edx, r10d
  369. .text:00007FF6F6827486 81 F2 7B 7C 00 00                      xor     edx, 7C7Bh
  370. .text:00007FF6F682748C 03 D1                                  add     edx, ecx
  371. .text:00007FF6F682748E B9 E5 10 49 C5                         mov     ecx, 0C54910E5h
  372. .text:00007FF6F6827493 E9 22 01 00 00                         jmp     loc_7FF6F68275BA
  373. vs
  374. .text:00007FF6F695410A 44 8B 40 28                            mov     r8d, [rax+28h]
  375. .text:00007FF6F695410E 41 8B D6                               mov     edx, r14d
  376. .text:00007FF6F6954111 65 48 8B 04 25 30 00 00 00             mov     rax, gs:30h
  377. .text:00007FF6F695411A 41 B9 E6 2F 39 28                      mov     r9d, 28392FE6h
  378. .text:00007FF6F6954120 44 8B 50 60                            mov     r10d, [rax+60h]
  379. .text:00007FF6F6954124 B8 2F 32 A3 6E                         mov     eax, 6EA3322Fh
  380. .text:00007FF6F6954129 0F 1F 80 00 00 00 00                   nop     dword ptr [rax+00000000h]
  381. .text:00007FF6F6954130
  382. .text:00007FF6F6954130                            loc_7FF6F6954130:                       ; CODE XREF: sub_7FF6F69540A0+228↓j
  383. .text:00007FF6F6954130 41 81 F9 8B 03 12 51                   cmp     r9d, 5112038Bh
  384. .text:00007FF6F6954137 0F 87 F7 00 00 00                      ja      loc_7FF6F6954234
  385. .text:00007FF6F695413D 0F 84 C8 00 00 00                      jz      loc_7FF6F695420B
  386. .text:00007FF6F6954143 41 81 F9 E0 A4 64 00                   cmp     r9d, 64A4E0h
  387. .text:00007FF6F695414A 0F 84 AD 00 00 00                      jz      loc_7FF6F69541FD
  388. .text:00007FF6F6954150 41 81 F9 D8 CD 3F 0F                   cmp     r9d, 0F3FCDD8h
  389. .text:00007FF6F6954157 0F 84 8F 00 00 00                      jz      loc_7FF6F69541EC
  390. .text:00007FF6F695415D 41 81 F9 E6 2F 39 28                   cmp     r9d, 28392FE6h
  391. .text:00007FF6F6954164 74 60                                  jz      short loc_7FF6F69541C6
  392. .text:00007FF6F6954166 41 81 F9 FF CF A6 2A                   cmp     r9d, 2AA6CFFFh
  393. .text:00007FF6F695416D 74 28                                  jz      short loc_7FF6F6954197
  394. .text:00007FF6F695416F 41 81 F9 70 2E 22 32                   cmp     r9d, 32222E70h
  395. .text:00007FF6F6954176 0F 85 42 01 00 00                      jnz     loc_7FF6F69542BE
  396. .text:00007FF6F695417C 69 C2 AD 0B 00 00                      imul    eax, edx, 0BADh
  397. .text:00007FF6F6954182 41 8B CA                               mov     ecx, r10d
  398. .text:00007FF6F6954185 81 F1 7B 7C 00 00                      xor     ecx, 7C7Bh
  399. .text:00007FF6F695418B 03 C8                                  add     ecx, eax
  400. .text:00007FF6F695418D B8 E5 10 49 C5                         mov     eax, 0C54910E5h
  401. .text:00007FF6F6954192 E9 24 01 00 00                         jmp     loc_7FF6F69542BB
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement