[原创]ios逆向初探-ag真人国际厅网站

__int64 __fastcall sub_100091fac(__int64 result, __int64 a2, __int64 *key2)

  int v3; // w9

  signed int i; // [xsp 14h] [xbp-6ch]

  signed int k; // [xsp 14h] [xbp-6ch]

  signed int l; // [xsp 14h] [xbp-6ch]

  signed int m; // [xsp 14h] [xbp-6ch]

  signed int n; // [xsp 14h] [xbp-6ch]

  signed int ii; // [xsp 14h] [xbp-6ch]

  int j; // [xsp 18h] [xbp-68h]

  __int64 key2_1; // [xsp 20h] [xbp-60h]

  char v12; // [xsp 48h] [xbp-38h]

  char v13; // [xsp 49h] [xbp-37h]

  char v14; // [xsp 4ah] [xbp-36h]

  char v15; // [xsp 4bh] [xbp-35h]

  char v16; // [xsp 4ch] [xbp-34h]

  char v17; // [xsp 4dh] [xbp-33h]

  char v18; // [xsp 4eh] [xbp-32h]

  char v19; // [xsp 4fh] [xbp-31h]

  char v20; // [xsp 50h] [xbp-30h]

  char v21; // [xsp 51h] [xbp-2fh]

  char v22; // [xsp 52h] [xbp-2eh]

  char v23; // [xsp 53h] [xbp-2dh]

  char v24; // [xsp 54h] [xbp-2ch]

  char v25; // [xsp 55h] [xbp-2bh]

  char v26; // [xsp 56h] [xbp-2ah]

  char v27; // [xsp 57h] [xbp-29h]

  char v28; // [xsp 58h] [xbp-28h]

  char v29; // [xsp 59h] [xbp-27h]

  char v30; // [xsp 5ah] [xbp-26h]

  char v31; // [xsp 5bh] [xbp-25h]

  char v32; // [xsp 5ch] [xbp-24h]

  char v33; // [xsp 5dh] [xbp-23h]

  char v34; // [xsp 5eh] [xbp-22h]

  char v35; // [xsp 5fh] [xbp-21h]

  char v36; // [xsp 60h] [xbp-20h]

  char v37; // [xsp 61h] [xbp-1fh]

  char v38; // [xsp 62h] [xbp-1eh]

  char v39; // [xsp 63h] [xbp-1dh]

  char v40; // [xsp 64h] [xbp-1ch]

  char v41; // [xsp 65h] [xbp-1bh]

  char v42; // [xsp 66h] [xbp-1ah]

  char v43; // [xsp 67h] [xbp-19h]

  unsigned __int8 v44; // [xsp 68h] [xbp-18h]

  unsigned __int8 v45; // [xsp 69h] [xbp-17h]

  unsigned __int8 v46; // [xsp 6ah] [xbp-16h]

  unsigned __int8 v47; // [xsp 6bh] [xbp-15h]

  unsigned __int8 v48; // [xsp 6ch] [xbp-14h]

  unsigned __int8 v49; // [xsp 6dh] [xbp-13h]

  unsigned __int8 v50; // [xsp 6eh] [xbp-12h]

  unsigned __int8 v51; // [xsp 6fh] [xbp-11h]

  unsigned __int8 v52; // [xsp 70h] [xbp-10h]

  unsigned __int8 v53; // [xsp 71h] [xbp-fh]

  unsigned __int8 v54; // [xsp 72h] [xbp-eh]

  unsigned __int8 v55; // [xsp 73h] [xbp-dh]

  unsigned __int8 v56; // [xsp 74h] [xbp-ch]

  unsigned __int8 v57; // [xsp 75h] [xbp-bh]

  unsigned __int8 v58; // [xsp 76h] [xbp-ah]

  unsigned __int8 v59; // [xsp 77h] [xbp-9h]

 

  key2_1 = *key2;

  v3 = *(key2 4) (*(key2 4) < 0 ? 0x1f : 0);

  for ( i = 0; i < 16; i )

    *(&v44 i) = (byte_106ef9068[*(key2_1 i) & 0xf ^ 16 * (*(result i) & 0xf)] >> 4) & 0xf ^ 16

                                                                                                * ((byte_106ef9068[(*(key2_1 i) >> 4) & 0xf ^ 16 * ((*(result i) >> 4) & 0xf)] >> 4) & 0xf);

  for ( j = 1; j < (v3 >> 5) 6; j )       

  {

    v28 = dword_106ef9168[v44] >> 24;

    v29 = dword_106ef9168[v44] >> 16;

    v30 = loword(dword_106ef9168[v44]) >> 8;

    v31 = dword_106ef9168[v44];

    v32 = dword_106ef9168[v48] >> 24;

    v33 = dword_106ef9168[v48] >> 16;

    v34 = loword(dword_106ef9168[v48]) >> 8;

    v35 = dword_106ef9168[v48];

    v36 = dword_106ef9168[v52] >> 24;

    v37 = dword_106ef9168[v52] >> 16;

    v38 = loword(dword_106ef9168[v52]) >> 8;

    v39 = dword_106ef9168[v52];

    v40 = dword_106ef9168[v56] >> 24;

    v41 = dword_106ef9168[v56] >> 16;

    v42 = loword(dword_106ef9168[v56]) >> 8;

    v43 = dword_106ef9168[v56];

    v12 = dword_106ef9568[v49] >> 24;         

    v13 = dword_106ef9568[v49] >> 16;

    v14 = loword(dword_106ef9568[v49]) >> 8;

    v15 = dword_106ef9568[v49];

    v16 = dword_106ef9568[v53] >> 24;

    v17 = dword_106ef9568[v53] >> 16;

    v18 = loword(dword_106ef9568[v53]) >> 8;

    v19 = dword_106ef9568[v53];

    v20 = dword_106ef9568[v57] >> 24;

    v21 = dword_106ef9568[v57] >> 16;

    v22 = loword(dword_106ef9568[v57]) >> 8;

    v23 = dword_106ef9568[v57];

    v24 = dword_106ef9568[v45] >> 24;

    v25 = dword_106ef9568[v45] >> 16;

    v26 = loword(dword_106ef9568[v45]) >> 8;

    v27 = dword_106ef9568[v45];

    for ( k = 0; k < 16; k )

      *(&v28 k) = (byte_106ef9968[*(&v12 k) & 0xf ^ 16 * (*(&v28 k) & 0xf)] >> 4) & 0xf ^ 16

                                                                                              * ((byte_106ef9968[(*(&v12 k) >> 4) & 0xf ^ 16 * ((*(&v28 k) >> 4) & 0xf)] >> 4) & 0xf);

    v12 = dword_106ef9a68[v54] >> 24;

    v13 = dword_106ef9a68[v54] >> 16;

    v14 = loword(dword_106ef9a68[v54]) >> 8;

    v15 = dword_106ef9a68[v54];

    v16 = dword_106ef9a68[v58] >> 24;

    v17 = dword_106ef9a68[v58] >> 16;

    v18 = loword(dword_106ef9a68[v58]) >> 8;

    v19 = dword_106ef9a68[v58];

    v20 = dword_106ef9a68[v46] >> 24;

    v21 = dword_106ef9a68[v46] >> 16;

    v22 = loword(dword_106ef9a68[v46]) >> 8;

    v23 = dword_106ef9a68[v46];

    v24 = dword_106ef9a68[v50] >> 24;

    v25 = dword_106ef9a68[v50] >> 16;

    v26 = loword(dword_106ef9a68[v50]) >> 8;

    v27 = dword_106ef9a68[v50];

    for ( l = 0; l < 16; l )

      *(&v28 l) = (byte_106ef9968[*(&v12 l) & 0xf ^ 16 * (*(&v28 l) & 0xf)] >> 4) & 0xf ^ 16

                                                                                              * ((byte_106ef9968[(*(&v12 l) >> 4) & 0xf ^ 16 * ((*(&v28 l) >> 4) & 0xf)] >> 4) & 0xf);

    v12 = dword_106ef9e68[v59] >> 24;

    v13 = dword_106ef9e68[v59] >> 16;

    v14 = loword(dword_106ef9e68[v59]) >> 8;

    v15 = dword_106ef9e68[v59];

    v16 = dword_106ef9e68[v47] >> 24;

    v17 = dword_106ef9e68[v47] >> 16;

    v18 = loword(dword_106ef9e68[v47]) >> 8;

    v19 = dword_106ef9e68[v47];

    v20 = dword_106ef9e68[v51] >> 24;

    v21 = dword_106ef9e68[v51] >> 16;

    v22 = loword(dword_106ef9e68[v51]) >> 8;

    v23 = dword_106ef9e68[v51];

    v24 = dword_106ef9e68[v55] >> 24;

    v25 = dword_106ef9e68[v55] >> 16;

    v26 = loword(dword_106ef9e68[v55]) >> 8;

    v27 = dword_106ef9e68[v55];

    for ( m = 0; m < 16; m )

      *(&v28 m) = (byte_106ef9968[*(&v12 m) & 0xf ^ 16 * (*(&v28 m) & 0xf)] >> 4) & 0xf ^ 16

                                                                                              * ((byte_106ef9968[(*(&v12 m) >> 4) & 0xf ^ 16 * ((*(&v28 m) >> 4) & 0xf)] >> 4) & 0xf);

    for ( n = 0; n < 16; n )

      *(&v44 n) = (byte_106ef9968[*(key2_1 n 16 * j) & 0xf ^ 16 * (*(&v28 n) & 0xf)] >> 4) & 0xf ^ 16 * ((byte_106ef9968[(*(key2_1 n 16 * j) >> 4) & 0xf ^ 16 * ((*(&v28 n) >> 4) & 0xf)] >> 4) & 0xf);

  }

  v28 = byte_106efa268[v44];

  v29 = byte_106efa268[v49];

  v30 = byte_106efa268[v54];

  v31 = byte_106efa268[v59];

  v32 = byte_106efa268[v48];

  v33 = byte_106efa268[v53];

  v34 = byte_106efa268[v58];

  v35 = byte_106efa268[v47];

  v36 = byte_106efa268[v52];

  v37 = byte_106efa268[v57];

  v38 = byte_106efa268[v46];

  v39 = byte_106efa268[v51];

  v40 = byte_106efa268[v56];

  v41 = byte_106efa268[v45];

  v42 = byte_106efa268[v50];

  v43 = byte_106efa268[v55];

  for ( ii = 0; ii < 16; ii )

    *(a2 ii) = (byte_106efa368[*(key2_1 ii 16 * j) & 0xf ^ 16 * (*(&v28 ii) & 0xf)] >> 4) & 0xf ^ 16 * ((byte_106efa368[(*(key2_1 ii 16 * j) >> 4) & 0xf ^ 16 * ((*(&v28 ii) >> 4) & 0xf)] >> 4) & 0xf);

  return result;

原文链接:https://bbs.kanxue.com/thread-277552.htm

网络摘文,本文作者:15h,如若转载,请注明出处:https://www.15cov.cn/2023/08/27/原创ios逆向初探-变种aes加密的分析与还原/

发表评论

邮箱地址不会被公开。 必填项已用*标注

网站地图