1

enter image description hereHow can I use the 16 byte xxtea byte as python I found the password directly but I want to change the bytecode of the password with 16 bytes as in the picture

enter image description here

_BYTE *__fastcall sub_D4CA64(__int64 a1, unsigned int a2, __int64 a3, _DWORD *a4)
{
  unsigned int v4; // w25
  unsigned int v5; // w27
  int v6; // w22
  _BOOL4 v11; // w26
  _DWORD *v12; // x20
  __int64 v13; // x8
  __int64 v14; // x9
  __int64 v15; // x13
  char v16; // w12
  int v17; // w11
  _QWORD *v18; // x0
  _DWORD *v19; // x21
  int v20; // w8
  __int64 v21; // x9
  int v22; // w10
  __int64 v23; // x12
  int v24; // w10
  __int64 v25; // x8
  unsigned int v26; // w9
  unsigned int v27; // w12
  unsigned int v28; // w13
  __int64 v29; // x14
  __int64 v30; // x15
  unsigned int v31; // w16
  int v32; // w0
  __int64 v33; // x1
  int v34; // w16
  int v35; // w17
  __int64 v36; // x24
  _BYTE *v37; // x23
  _BYTE *v38; // x0
  __int64 v39; // x8
  __int64 v40; // x8
  int v41; // w9
  __int64 v42; // x10
  unsigned int v43; // w11
  _BYTE *v44; // x13
  unsigned int v45; // w12
  unsigned int v46; // w11
  int v47; // w9
  char v48; // w11

  v4 = a2 >> 2;
  if ( (a2 & 3) != 0 )
    v5 = v4 + 1;
  else
    v5 = a2 >> 2;
  v6 = 4 * v5;
  v11 = (a2 & 3) != 0;
  v12 = malloc(4 * v5);
  memset(v12, 0, 4 * v5);
  if ( a2 )
  {
    v13 = 0LL;
    v14 = 0LL;
    do
    {
      v15 = (unsigned int)v14 >> 2;
      v16 = v13 & 0x18;
      v13 += 8LL;
      v17 = (*(unsigned __int8 *)(a1 + v14++) << v16) | v12[v15];
      v12[v15] = v17;
    }
    while ( 8LL * a2 != v13 );
  }
  v18 = malloc(0x10u);
  v19 = v18;
  v20 = 0;
  v21 = 0LL;
  *v18 = 0LL;
  v18[1] = 0LL;
  do
  {
    v22 = *(unsigned __int8 *)(a3 + v21);
    v23 = 4LL * ((unsigned int)v21++ >> 2);
    v24 = (v22 << (v20 & 0x18)) | *(_DWORD *)((char *)v18 + v23);
    v20 += 8;
    *(_DWORD *)((char *)v18 + v23) = v24;
  }
  while ( v21 != 16 );
  v25 = v5 - 1;
  if ( v5 != 1 )
  {
    v26 = -1640531527 * (0x34 / v5) - 1253254570;
    if ( -1640531527 * (0x34 / v5) != 1253254570 )
    {
      v27 = *v12;
      do
      {
        v28 = (v26 >> 2) & 3;
        v29 = v4 + v11 - 2;
        v30 = v5 - 1;
        do
        {
          v31 = v12[v29];
          v32 = ((v31 >> 5) ^ (4 * v27)) + ((16 * v31) ^ (v27 >> 3));
          v33 = v30;
          v34 = v19[v30 & 3 ^ v28] ^ v31;
          v35 = v12[v30--];
          v27 = v35 - (v32 ^ (v34 + (v27 ^ v26)));
          --v29;
          v12[v33] = v27;
        }
        while ( (_DWORD)v30 );
        v27 = *v12
            - ((((v12[v25] >> 5) ^ (4 * v27)) + ((16 * v12[v25]) ^ (v27 >> 3))) ^ ((v19[v28] ^ v12[v25]) + (v27 ^ v26)));
        v26 += 1640531527;
        *v12 = v27;
      }
      while ( v26 );
    }
  }
  v36 = (unsigned int)v12[v25];
  v37 = 0LL;
  if ( (unsigned int)v36 >= v6 - 7 && (unsigned int)v36 <= v6 - 4 )
  {
    v38 = malloc((int)v36 + 1);
    v37 = v38;
    if ( !(_DWORD)v36 )
    {
      v40 = 0LL;
LABEL_27:
      v38[v40] = 0;
      *a4 = v36;
      goto LABEL_28;
    }
    if ( (_DWORD)v36 == 1 )
    {
      v39 = 0LL;
    }
    else
    {
      v41 = 0;
      v42 = 0LL;
      v39 = (unsigned int)v36 & 0xFFFFFFFE;
      do
      {
        v43 = v12[(unsigned int)v42 >> 2];
        v44 = &v38[v42];
        v42 += 2LL;
        v45 = v43 >> (v41 & 0x10);
        v46 = v43 >> (v41 & 0x10 | 8);
        v41 += 16;
        *v44 = v45;
        v44[1] = v46;
      }
      while ( v39 != v42 );
      if ( v39 == v36 )
        goto LABEL_26;
    }
    v47 = 8 * v39;
    do
    {
      v48 = v47 & 0x18;
      v47 += 8;
      v38[v39] = v12[(unsigned int)v39 >> 2] >> v48;
      ++v39;
    }
    while ( v36 != v39 );
LABEL_26:
    v40 = v36;
    goto LABEL_27;
  }
LABEL_28:
  free(v12);
  free(v19);
  return v37;
}
1
  • up please please help me with this i really need it
    – sessizbyu
    Sep 13 at 10:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.