raklogger amz

TokyoQq

Новичок
Автор темы
15
5
ida pro:
.text:5D3F9870 ; __unwind { // loc_5D8ADD39
.text:5D3F9870                 push    ebx
.text:5D3F9871                 mov     ebx, esp
.text:5D3F9873                 sub     esp, 8
.text:5D3F9876                 and     esp, 0FFFFFFF8h
.text:5D3F9879                 add     esp, 4
.text:5D3F987C                 push    ebp
.text:5D3F987D                 mov     ebp, [ebx+4]
.text:5D3F9880                 mov     [esp+0Ch+var_8], ebp
.text:5D3F9884                 mov     ebp, esp
.text:5D3F9886                 push    0FFFFFFFFh
.text:5D3F9888                 push    offset loc_5D8ADD39
.text:5D3F988D                 mov     eax, large fs:0
.text:5D3F9893                 push    eax
.text:5D3F9894                 push    ecx
.text:5D3F9895                 push    ebx
.text:5D3F9896                 sub     esp, 258h
.text:5D3F989C                 mov     eax, ___security_cookie
.text:5D3F98A1                 xor     eax, ebp
.text:5D3F98A3                 mov     [ebp-1Ch], eax
.text:5D3F98A6                 push    esi
.text:5D3F98A7                 push    edi
.text:5D3F98A8                 push    eax
.text:5D3F98A9                 lea     eax, [ebp-0Ch]
.text:5D3F98AC                 mov     large fs:0, eax
.text:5D3F98B2                 mov     [ebp-10h], esp
.text:5D3F98B5                 mov     edi, ecx
.text:5D3F98B7                 mov     [ebp-140h], edi
.text:5D3F98BD                 cmp     byte ptr [edi], 0
.text:5D3F98C0                 mov     [ebp-164h], edi
.text:5D3F98C6                 jz      loc_5D3FB147
.text:5D3F98CC                 mov     eax, dword_5E063C7C
.text:5D3F98D1                 push    0
.text:5D3F98D3                 push    3
.text:5D3F98D5                 mov     ecx, [eax]
.text:5D3F98D7                 call    sub_5D320EA0
.text:5D3F98DC                 call    sub_5D532800
.text:5D3F98E1                 push    1
.text:5D3F98E3                 sub     esp, 0Ch
.text:5D3F98E6                 mov     ecx, esp
.text:5D3F98E8                 mov     [esp+294h+var_28C], 41880000h
.text:5D3F98F0                 mov     dword ptr [ecx], offset aRobotomonoregu ; "RobotoMonoRegular"
.text:5D3F98F6                 mov     dword ptr [ecx+4], 11h
.text:5D3F98FD                 mov     ecx, eax
.text:5D3F98FF                 call    sub_5D534360
.text:5D3F9904                 push    eax
.text:5D3F9905                 call    sub_5D481880
.text:5D3F990A                 push    0
.text:5D3F990C                 call    sub_5D48FBB0
.text:5D3F9911                 push    0
.text:5D3F9913                 push    0
.text:5D3F9915                 push    offset aAmazingRaklogg ; "Amazing Raklogger"
.text:5D3F991A                 call    sub_5D474190
.text:5D3F991F                 mov     eax, large fs:2Ch
.text:5D3F9925                 add     esp, 14h
.text:5D3F9928                 mov     ecx, TlsIndex
.text:5D3F992E                 mov     ecx, [eax+ecx*4]
.text:5D3F9931                 mov     eax, dword_5E07D898
.text:5D3F9936                 cmp     eax, [ecx+4]
.text:5D3F993C                 jg      loc_5D3FB165

psevdocode:
_DWORD *__usercall sub_5D3F9870@<eax>(_BYTE *a1@<ecx>, int a2@<ebp>)
{
  _DWORD *result; // eax
  _BYTE *v3; // edi
  int v4; // eax
  const char *v5; // eax
  int v6; // eax
  int v7; // ecx
  volatile signed __int32 *v8; // esi
  int *v9; // eax
  int *v10; // esi
  int *v11; // edi
  int v12; // ecx
  int v13; // esi
  int v14; // ecx
  _DWORD *v15; // eax
  __int128 *v16; // esi
  int v17; // ecx
  int *v18; // eax
  int v19; // ecx
  int v20; // eax
  int v21; // ecx
  _DWORD *v22; // esi
  const char *v23; // edx
  int v24; // eax
  char v25; // al
  int v26; // esi
  char v27; // al
  unsigned __int8 *v28; // edi
  int v29; // eax
  int v30; // eax
  int v31; // esi
  int v32; // eax
  unsigned __int8 v33; // cl
  _DWORD *v34; // esi
  unsigned int v35; // eax
  unsigned int v36; // eax
  __int128 *v37; // edi
  unsigned int v38; // ecx
  unsigned int v39; // eax
  __int128 *v40; // eax
  __int128 *v41; // eax
  int v42; // edx
  int v43; // ecx
  int v44; // eax
  int v45; // eax
  int v46; // esi
  int v47; // eax
  unsigned __int8 v48; // cl
  _DWORD *v49; // esi
  int v50; // eax
  unsigned int v51; // eax
  __int128 *v52; // edi
  unsigned int v53; // ecx
  unsigned int v54; // eax
  __int128 *v55; // eax
  __int128 *v56; // eax
  int v57; // eax
  _BYTE *v58; // edi
  int v59; // eax
  int v60; // esi
  int v61; // eax
  _DWORD *v62; // esi
  int v63; // eax
  unsigned int v64; // eax
  __int128 *v65; // edi
  unsigned int v66; // ecx
  unsigned int v67; // eax
  __int128 *v68; // eax
  __int128 *v69; // eax
  int v70; // eax
  unsigned int v71; // ecx
  unsigned int v72; // edi
  unsigned int v73; // eax
  int v74; // esi
  _BYTE *v75; // edx
  __int128 *v76; // esi
  int v77; // edi
  __int128 *v78; // eax
  __m128i *v79; // eax
  __m128i v80; // xmm1
  __int64 v81; // xmm0_8
  __int128 *v82; // ecx
  int v83; // eax
  __int32 v84; // edx
  int v85; // edx
  int v86; // edx
  int *v87; // esi
  __int128 *v88; // ecx
  bool v89; // zf
  int v90; // eax
  int v91; // ecx
  int v92; // eax
  volatile signed __int32 *v93; // esi
  int v94; // edx
  int v95; // esi
  unsigned int v96; // edi
  unsigned int v97; // esi
  int v98; // eax
  int v99; // esi
  unsigned int v100; // edi
  int *v101; // eax
  int v102; // ecx
  int v103; // ecx
  volatile signed __int32 *v104; // esi
  int v105; // esi
  _DWORD *v106; // edi
  char v107; // al
  int v108; // edx
  const char *v109; // eax
  int v110; // edx
  char v111; // dl
  const char *v112; // ecx
  int *v113; // esi
  int *v114; // eax
  _DWORD *v115; // eax
  bool v116; // cc
  __int32 v117; // edx
  unsigned int v118; // esi
  unsigned int v119; // eax
  __int128 *v120; // eax
  int v121; // ecx
  __int128 *v122; // eax
  _DWORD *v123; // eax
  _DWORD *v124; // ecx
  _DWORD *v125; // eax
  __int32 v126; // edx
  int v127; // edx
  int v128; // edx
  unsigned int v129; // ecx
  int *v130; // esi
  int *v131; // edi
  unsigned int v132; // ecx
  int v133; // eax
  unsigned int v134; // ecx
  int *v135; // eax
  unsigned int v136; // ecx
  int v137; // [esp-4h] [ebp-290h]
  int v138; // [esp-4h] [ebp-290h]
  int v139; // [esp-4h] [ebp-290h]
  int v140; // [esp+0h] [ebp-28Ch]
  int v141; // [esp+0h] [ebp-28Ch]
  int v142; // [esp+0h] [ebp-28Ch]
  int v143; // [esp+0h] [ebp-28Ch]
  float v144; // [esp+4h] [ebp-288h]
  unsigned int v145; // [esp+4h] [ebp-288h]
  _BYTE *v146; // [esp+4h] [ebp-288h]
  _BYTE *v147; // [esp+4h] [ebp-288h]
  float v148; // [esp+4h] [ebp-288h]
  int v149; // [esp+8h] [ebp-284h] BYREF
  int v150; // [esp+18h] [ebp-274h] BYREF
  int v151; // [esp+24h] [ebp-268h] BYREF
  int v152; // [esp+34h] [ebp-258h] BYREF
  _DWORD v153[9]; // [esp+40h] [ebp-24Ch] BYREF
  char v154; // [esp+64h] [ebp-228h]
  __int64 v155; // [esp+74h] [ebp-218h] BYREF
  int v156; // [esp+7Ch] [ebp-210h]
  char v157; // [esp+80h] [ebp-20Ch]
  char v158; // [esp+84h] [ebp-208h]
  unsigned __int64 v159; // [esp+88h] [ebp-204h]
  __int64 v160; // [esp+98h] [ebp-1F4h] BYREF
  int v161; // [esp+A0h] [ebp-1ECh]
  _DWORD v162[2]; // [esp+A4h] [ebp-1E8h] BYREF
  int v163; // [esp+ACh] [ebp-1E0h]
  _DWORD v164[2]; // [esp+B0h] [ebp-1DCh] BYREF
  int v165; // [esp+B8h] [ebp-1D4h]
  _DWORD v166[2]; // [esp+BCh] [ebp-1D0h] BYREF
  int v167; // [esp+C4h] [ebp-1C8h]
  __int128 v168; // [esp+C8h] [ebp-1C4h] BYREF
  __int128 v169; // [esp+D8h] [ebp-1B4h] BYREF
  int v170; // [esp+E8h] [ebp-1A4h]
  __int128 v171; // [esp+ECh] [ebp-1A0h] BYREF
  int v172; // [esp+FCh] [ebp-190h]
  int *v173; // [esp+100h] [ebp-18Ch] BYREF
  int v174; // [esp+104h] [ebp-188h]
  int v175; // [esp+108h] [ebp-184h] BYREF
  _DWORD *v176; // [esp+10Ch] [ebp-180h]
  int v177; // [esp+110h] [ebp-17Ch]
  _BYTE *v178; // [esp+11Ch] [ebp-170h]
  int *v179; // [esp+120h] [ebp-16Ch] BYREF
  unsigned int v180; // [esp+124h] [ebp-168h]
  int *v181; // [esp+128h] [ebp-164h] BYREF
  int *v182; // [esp+12Ch] [ebp-160h]
  __int128 *v183; // [esp+130h] [ebp-15Ch] BYREF
  __int64 v184; // [esp+134h] [ebp-158h] BYREF
  int *v185; // [esp+13Ch] [ebp-150h]
  _BYTE *v186; // [esp+140h] [ebp-14Ch] BYREF
  int *v187; // [esp+144h] [ebp-148h] BYREF
  unsigned int v188; // [esp+148h] [ebp-144h]
  unsigned int v189; // [esp+14Ch] [ebp-140h] BYREF
  _BYTE v190[7]; // [esp+150h] [ebp-13Ch] BYREF
  unsigned __int8 v191; // [esp+157h] [ebp-135h] BYREF
  int v192; // [esp+158h] [ebp-134h] BYREF
  __int128 v193; // [esp+170h] [ebp-11Ch] BYREF
  __int64 v194; // [esp+180h] [ebp-10Ch]
  __int128 v195; // [esp+188h] [ebp-104h] BYREF
  unsigned int v196; // [esp+198h] [ebp-F4h]
  unsigned int v197; // [esp+19Ch] [ebp-F0h]
  __int128 v198; // [esp+1A0h] [ebp-ECh] BYREF
  int v199; // [esp+1B0h] [ebp-DCh]
  unsigned int v200; // [esp+1B4h] [ebp-D8h]
  __int128 v201; // [esp+1B8h] [ebp-D4h] BYREF
  unsigned int v202; // [esp+1C8h] [ebp-C4h]
  unsigned int v203; // [esp+1CCh] [ebp-C0h]
  char v204[16]; // [esp+1D0h] [ebp-BCh] BYREF
  __int64 v205; // [esp+1E0h] [ebp-ACh] BYREF
  __m128i v206; // [esp+1E8h] [ebp-A4h] BYREF
  __int64 v207; // [esp+1F8h] [ebp-94h]
  __int128 v208; // [esp+204h] [ebp-88h] BYREF
  _BYTE *v209; // [esp+214h] [ebp-78h]
  unsigned int v210; // [esp+218h] [ebp-74h]
  __int128 v211; // [esp+21Ch] [ebp-70h] BYREF
  unsigned int v212; // [esp+22Ch] [ebp-60h]
  unsigned int v213; // [esp+230h] [ebp-5Ch]
  __int128 v214; // [esp+234h] [ebp-58h] BYREF
  int v215; // [esp+244h] [ebp-48h]
  unsigned int v216; // [esp+248h] [ebp-44h]
  _BYTE v217[15]; // [esp+261h] [ebp-2Bh] BYREF
  int *v218; // [esp+270h] [ebp-1Ch]
  _DWORD v219[2]; // [esp+274h] [ebp-18h] BYREF
  int v220; // [esp+27Ch] [ebp-10h]
  int v221[2]; // [esp+280h] [ebp-Ch] BYREF
  int v222; // [esp+288h] [ebp-4h] BYREF
  int retaddr; // [esp+28Ch] [ebp+0h]

  v221[0] = a2;
  v221[1] = retaddr;
  v220 = -1;
  v219[1] = &loc_5D8ADD39;
  v219[0] = NtCurrentTeb()->NtTib.ExceptionList;
  *(_DWORD *)&v217[11] = &v222;
  result = v219;
  v218 = &v149;
  v3 = a1;
  v186 = a1;
  v89 = *a1 == 0;
  v178 = a1;
  if ( !v89 )
  {
    sub_5D320EA0(*(void **)dword_5E063C7C, 3, 0);
    sub_5D532800();
    v4 = sub_5D534360("RobotoMonoRegular", 17, 1099431936, 1);
    sub_5D481880(v4);
    sub_5D48FBB0(0);
    sub_5D474190((int)v221, "Amazing Raklogger", 0, 0);
    if ( dword_5E07D898 > *(_DWORD *)(*((_DWORD *)NtCurrentTeb()->ThreadLocalStoragePointer + TlsIndex) + 4) )
      sub_5D80924F(&dword_5E07D898);
    v89 = v3[1] == 0;
    v5 = "pause";
    v187 = 0;
    if ( v89 )
      v5 = "start";
    v188 = 0;
    if ( (unsigned __int8)sub_5D4A93C0(v5, &v187) )
      v3[1] = v3[1] == 0;
    sub_5D484450(0, -1082130432);
    v187 = 0;
    v188 = 0;
    if ( (unsigned __int8)sub_5D4A93C0("clear", &v187) )
    {
      v6 = *((_DWORD *)v3 + 1);
      v7 = *((_DWORD *)v3 + 2);
      if ( v6 != v7 )
      {
        sub_5D285760(v6, v7);
        *((_DWORD *)v3 + 2) = *((_DWORD *)v3 + 1);
      }
      v8 = (volatile signed __int32 *)dword_5E07D85C;
      dword_5E07D858 = 0;
      dword_5E07D85C = 0;
      if ( v8 )
      {
        if ( !_InterlockedExchangeAdd(v8 + 1, 0xFFFFFFFF) )
        {
          (**(void (__thiscall ***)(volatile signed __int32 *))v8)(v8);
          if ( !_InterlockedExchangeAdd(v8 + 2, 0xFFFFFFFF) )
            (*(void (__thiscall **)(volatile signed __int32 *))(*v8 + 4))(v8);
        }
      }
    }
    if ( dword_5E07D89C > *(_DWORD *)(*((_DWORD *)NtCurrentTeb()->ThreadLocalStoragePointer + TlsIndex) + 4) )
      sub_5D80924F(&dword_5E07D89C);
    if ( dword_5E07D8A0 > *(_DWORD *)(*((_DWORD *)NtCurrentTeb()->ThreadLocalStoragePointer + TlsIndex) + 4) )
      sub_5D80924F(&dword_5E07D8A0);
    sub_5D4A9C50("Incoming", &byte_5DF34D30);
    sub_5D484450(0, -1082130432);
    sub_5D4A9C50("Outcoming", &byte_5DF34D31);
    sub_5D4A9C50("Packets", &byte_5DF34D32);
    sub_5D484450(0, -1082130432);
    sub_5D4A9C50(&word_5DBF7614, &byte_5DF34D33);
    sub_5D484450(0, -1082130432);
    sub_5D4A9C50("Amazing", &byte_5DF34D34);
    v9 = &dword_5DF34B40;
    if ( (unsigned int)dword_5DF34B54 > 0xF )
      v9 = (int *)dword_5DF34B40;
    if ( (unsigned __int8)sub_5D4AFDE0("Filter ids", v9, dword_5DF34B50, 0x40000, sub_5D3F92C0, &dword_5DF34B40) )
    {
      if ( dword_5E07D860 != dword_5E07D864 )
        dword_5E07D864 = dword_5E07D860;
      LODWORD(v193) = &dword_5DF34B40;
      v10 = &dword_5DF34B40;
      BYTE4(v193) = 44;
      if ( (unsigned int)dword_5DF34B54 > 0xF )
        v10 = (int *)dword_5DF34B40;
      LOBYTE(v194) = 0;
      sub_5D3F8820(&v189, &v193);
      LOBYTE(v185) = 0;
      LOBYTE(v176) = 0;
      v188 = v189;
      LOBYTE(v183) = 0;
      v187 = v10;
      sub_5D3F8840(&v179, &v187, (char *)&v193 + 4, v183, v176, v185);
      v187 = v179;
      v188 = v180;
      sub_5D3F88B0(&v187);
      sub_5D3F8DC0(&v193, v10, DWORD2(v193), HIDWORD(v193));
      v215 = v172;
      v214 = v171;
      sub_5D3FB710(&v206);
      v11 = (int *)HIDWORD(v214);
      v12 = DWORD2(v214);
      v13 = DWORD1(v214);
LABEL_24:
      v185 = (int *)v12;
      while ( v13 != v206.m128i_i32[1] || (_BYTE)v215 != (_BYTE)v207 )
      {
        v14 = v12 - v13;
        v220 = 0;
        v199 = 0;
        v198 = 0i64;
        v200 = 0;
        if ( v13 == v13 + v14 )
        {
          v199 = 0;
          v200 = 15;
          LOBYTE(v198) = 0;
        }
        else
        {
          sub_5D262330(v13, v14);
        }
        LOBYTE(v220) = 1;
        v15 = (_DWORD *)sub_5D86A71D();
        v16 = &v198;
        v176 = v15;
        if ( v200 > 0xF )
          v16 = (__int128 *)v198;
        *v15 = 0;
        v17 = sub_5D86E895(v16, &v183, 10);
        v189 = v17;
        if ( v16 == v183 )
          sub_5D7F1142("invalid stoi argument");
        if ( *v176 == 34 )
          sub_5D7F1182("stoi argument out of range");
        LOBYTE(v220) = 0;
        if ( v200 > 0xF )
        {
          sub_5D261C90(&v198, v198, v200);
          v17 = v189;
        }
        if ( v17 <= 255 )
        {
          v191 = v17;
          if ( dword_5E07D864 == dword_5E07D868 )
            sub_5D3F88E0(dword_5E07D864, &v191);
          else
            *(_BYTE *)dword_5E07D864++ = v17;
        }
        v220 = -1;
        v18 = *(int **)v214;
        v19 = *(_DWORD *)v214;
        if ( *(_DWORD *)(*(_DWORD *)v214 + 20) > 0xFu )
          v19 = *v18;
        v20 = v19 + v18[4];
        v12 = (int)v185;
        v13 = (int)v185;
        if ( v185 != (int *)v20 )
        {
          v13 = (int)v11;
          if ( v11 == (int *)v20 )
          {
            v12 = (int)v11;
            LOBYTE(v215) = 1;
            DWORD2(v214) = v11;
            HIDWORD(v214) = v11;
          }
          else
          {
            LOBYTE(v177) = 0;
            LOBYTE(v180) = 0;
            v174 = v20;
            LOBYTE(v188) = 0;
            v173 = v11;
            sub_5D3F8840(&v184, &v173, v214 + 4, v188, v180, v177);
            v11 = (int *)HIDWORD(v184);
            v12 = v184;
            *((_QWORD *)&v214 + 1) = v184;
          }
          goto LABEL_24;
        }
        LOBYTE(v215) = 0;
      }
      v3 = v186;
    }
    sub_5D484450(0, -1082130432);
    sub_5D4B7530(&unk_5DBF322C, v140);
    if ( (unsigned __int8)sub_5D47C1D0(0) )
    {
      sub_5D476A90();
      v144 = sub_5D47A170() * 35.0;
      sub_5D481FD0(LODWORD(v144));
      sub_5D4B7980("Use a ',' as separator", 0);
      sub_5D4817C0();
      sub_5D4790B0();
    }
    sub_5D484450(0, -1082130432);
    sub_5D4A9C50("Inverted", &byte_5E07D8A4);
    v184 = COERCE_UNSIGNED_INT(*(float *)sub_5D47A0B0(&v173) * 0.40000001) | 0x43FA000000000000i64;
    sub_5D4761B0("ChildL", &v184, 1, 2048);
    HIDWORD(v205) = 0;
    v206.m128i_i32[3] = (__int32)(v3 + 4);
    LOBYTE(v207) = v191;
    v206.m128i_i32[0] = 0;
    v206.m128i_i8[4] = 0;
    v206.m128i_i32[2] = -1;
    sub_5D3F8C40((char *)&v205 + 4);
    memset(&v153[6], 0, 12);
    v154 = 0;
    sub_5D3F8C40(v21);
    sub_5D3F9730((char *)&v171 + 4);
    v22 = (_DWORD *)DWORD1(v171);
    DWORD1(v168) = &v155;
    v185 = (int *)DWORD1(v171);
    v178 = *(_BYTE **)(HIDWORD(v155) + 4);
    if ( (_BYTE *)DWORD1(v171) != v178 )
    {
      while ( 1 )
      {
        sub_5D4819A0(*v22);
        v23 = "Incoming";
        v89 = *(_BYTE *)*v22 == 0;
        v214 = 0i64;
        if ( v89 )
          v23 = "Outcoming";
        v215 = 0;
        v216 = 0;
        sub_5D262330(v23, strlen(v23));
        v24 = *v22;
        v220 = 3;
        v25 = *(_BYTE *)(v24 + 1);
        if ( v25 )
        {
          if ( v25 == 1 )
          {
            sub_5D2616A0(" RPC", 4);
          }
          else if ( v25 == 2 )
          {
            sub_5D2616A0(" amazing_packet", 15);
          }
        }
        else
        {
          sub_5D2616A0(" packet", 7);
        }
        v26 = *v22;
        v27 = *(_BYTE *)(v26 + 1);
        v28 = (unsigned __int8 *)(v26 + 2);
        if ( v27 )
        {
          if ( v27 == 1 )
          {
            v44 = *(_DWORD *)(sub_5D2C99B0((char *)&v169 + 8, v26 + 2) + 8);
            if ( !*(_BYTE *)(v44 + 13) && *v28 >= *(_BYTE *)(v44 + 16) )
            {
              sub_5D2C99B0(v164, v26 + 2);
              v45 = v165;
              if ( *(_BYTE *)(v165 + 13) || *v28 < *(_BYTE *)(v165 + 16) )
              {
                if ( dword_5E07D880 == 97612893 )
                  goto LABEL_251;
                v46 = dword_5E07D87C;
                v173 = &dword_5E07D87C;
                LOBYTE(v220) = 6;
                v174 = 0;
                v47 = sub_5D808E7C(44);
                v48 = *v28;
                LOBYTE(v220) = 3;
                v174 = 0;
                *(_BYTE *)(v47 + 16) = v48;
                *(_OWORD *)(v47 + 20) = 0i64;
                *(_DWORD *)(v47 + 36) = 0;
                *(_DWORD *)(v47 + 40) = 15;
                v142 = v164[1];
                *(_BYTE *)(v47 + 20) = 0;
                v138 = v164[0];
                *(_DWORD *)v47 = v46;
                *(_DWORD *)(v47 + 4) = v46;
                *(_DWORD *)(v47 + 8) = v46;
                *(_WORD *)(v47 + 12) = 0;
                v45 = sub_5D2A1A50(v138, v142, v47);
              }
              v49 = (_DWORD *)(v45 + 20);
              v50 = *(_DWORD *)(v45 + 36);
              v186 = (_BYTE *)v50;
              if ( v50 == 0x7FFFFFFF )
                goto LABEL_250;
              if ( v49[5] > 0xFu )
                v49 = (_DWORD *)*v49;
              v51 = v50 + 1;
              v52 = &v195;
              v53 = 15;
              v188 = v51;
              v195 = 0i64;
              if ( v51 > 0xF )
              {
                v54 = v51 | 0xF;
                if ( v54 <= 0x7FFFFFFF )
                {
                  if ( v54 < 0x16 )
                    v54 = 22;
                }
                else
                {
                  v54 = 0x7FFFFFFF;
                }
                v189 = v54;
                v55 = (__int128 *)sub_5D262470(&v195, &v189);
                v53 = v189;
                v52 = v55;
                v51 = v188;
                LODWORD(v195) = v52;
              }
              v146 = v186;
              v197 = v53;
              v196 = v51;
              *(_BYTE *)v52 = 32;
              sub_5D85F6B0((char *)v52 + 1, v49, v146);
              v186[(_DWORD)v52 + 1] = 0;
              v56 = &v195;
              if ( v197 > 0xF )
                v56 = (__int128 *)v195;
              LOBYTE(v220) = 7;
              sub_5D2616A0(v56, v196);
              LOBYTE(v220) = 3;
              if ( v197 > 0xF )
                sub_5D261C90(&v195, v195, v197);
            }
          }
          else if ( v27 == 2 )
          {
            v57 = *(_DWORD *)(sub_5D2C99B0((char *)&v168 + 4, v26 + 2) + 8);
            if ( !*(_BYTE *)(v57 + 13) )
            {
              v191 = *v28;
              if ( v191 >= *(_BYTE *)(v57 + 16) )
              {
                v58 = (_BYTE *)(v26 + 2);
                sub_5D2C99B0(v162, v26 + 2);
                v59 = v163;
                if ( *(_BYTE *)(v163 + 13) || v191 < *(_BYTE *)(v163 + 16) )
                {
                  if ( dword_5E07D890 == 97612893 )
LABEL_251:
                    sub_5D2A1D30();
                  v60 = dword_5E07D88C;
                  v182 = &dword_5E07D88C;
                  LOBYTE(v220) = 8;
                  v183 = 0;
                  v61 = sub_5D3F96D0(1);
                  v143 = v162[1];
                  *(_BYTE *)(v61 + 16) = *v58;
                  v139 = v162[0];
                  *(_OWORD *)(v61 + 20) = 0i64;
                  *(_DWORD *)(v61 + 36) = 0;
                  *(_DWORD *)(v61 + 40) = 15;
                  *(_BYTE *)(v61 + 20) = 0;
                  *(_DWORD *)v61 = v60;
                  *(_DWORD *)(v61 + 4) = v60;
                  *(_DWORD *)(v61 + 8) = v60;
                  LOBYTE(v220) = 3;
                  *(_WORD *)(v61 + 12) = 0;
                  v183 = 0;
                  v59 = sub_5D2A1A50(v139, v143, v61);
                }
                v62 = (_DWORD *)(v59 + 20);
                v63 = *(_DWORD *)(v59 + 36);
                v186 = (_BYTE *)v63;
                if ( v63 == 0x7FFFFFFF )
LABEL_250:
                  sub_5D25E660();
                if ( v62[5] > 0xFu )
                  v62 = (_DWORD *)*v62;
                v64 = v63 + 1;
                v65 = &v211;
                v66 = 15;
                v188 = v64;
                v211 = 0i64;
                if ( v64 > 0xF )
                {
                  v67 = v64 | 0xF;
                  if ( v67 <= 0x7FFFFFFF )
                  {
                    if ( v67 < 0x16 )
                      v67 = 22;
                  }
                  else
                  {
                    v67 = 0x7FFFFFFF;
                  }
                  v189 = v67;
                  v68 = (__int128 *)sub_5D262470(&v211, &v189);
                  v66 = v189;
                  v65 = v68;
                  v64 = v188;
                  LODWORD(v211) = v65;
                }
                v147 = v186;
                v213 = v66;
                v212 = v64;
                *(_BYTE *)v65 = 32;
                sub_5D85F6B0((char *)v65 + 1, v62, v147);
                v186[(_DWORD)v65 + 1] = 0;
                v69 = &v211;
                if ( v213 > 0xF )
                  v69 = (__int128 *)v211;
                LOBYTE(v220) = 9;
                sub_5D2616A0(v69, v212);
                LOBYTE(v220) = 3;
                if ( v213 > 0xF )
                  sub_5D261C90(&v211, v211, v213);
              }
            }
          }
        }
        else
        {
          v29 = *(_DWORD *)(sub_5D2C99B0(&v150, v26 + 2) + 8);
          if ( !*(_BYTE *)(v29 + 13) && *v28 >= *(_BYTE *)(v29 + 16) )
          {
            sub_5D2C99B0(v166, v26 + 2);
            v30 = v167;
            if ( *(_BYTE *)(v167 + 13) || *v28 < *(_BYTE *)(v167 + 16) )
            {
              if ( dword_5E07D888 == 97612893 )
                goto LABEL_251;
              v31 = dword_5E07D884;
              LODWORD(v184) = &dword_5E07D884;
              LOBYTE(v220) = 4;
              HIDWORD(v184) = 0;
              v32 = sub_5D808E7C(44);
              v33 = *v28;
              LOBYTE(v220) = 3;
              HIDWORD(v184) = 0;
              *(_BYTE *)(v32 + 16) = v33;
              *(_OWORD *)(v32 + 20) = 0i64;
              *(_DWORD *)(v32 + 36) = 0;
              *(_DWORD *)(v32 + 40) = 15;
              v141 = v166[1];
              *(_BYTE *)(v32 + 20) = 0;
              v137 = v166[0];
              *(_DWORD *)v32 = v31;
              *(_DWORD *)(v32 + 4) = v31;
              *(_DWORD *)(v32 + 8) = v31;
              *(_WORD *)(v32 + 12) = 0;
              v30 = sub_5D2A1A50(v137, v141, v32);
            }
            v34 = (_DWORD *)(v30 + 20);
            v35 = *(_DWORD *)(v30 + 36);
            v189 = v35;
            if ( v35 == 0x7FFFFFFF )
              goto LABEL_250;
            if ( v34[5] > 0xFu )
              v34 = (_DWORD *)*v34;
            v36 = v35 + 1;
            v37 = &v201;
            v38 = 15;
            v188 = v36;
            v201 = 0i64;
            if ( v36 > 0xF )
            {
              v39 = v36 | 0xF;
              if ( v39 <= 0x7FFFFFFF )
              {
                if ( v39 < 0x16 )
                  v39 = 22;
              }
              else
              {
                v39 = 0x7FFFFFFF;
              }
              v186 = (_BYTE *)v39;
              v40 = (__int128 *)sub_5D262470(&v201, &v186);
              v38 = (unsigned int)v186;
              v37 = v40;
              v36 = v188;
              LODWORD(v201) = v37;
            }
            v145 = v189;
            v203 = v38;
            v202 = v36;
            *(_BYTE *)v37 = 32;
            sub_5D85F6B0((char *)v37 + 1, v34, v145);
            *((_BYTE *)v37 + v189 + 1) = 0;
            v41 = &v201;
            if ( v203 > 0xF )
              v41 = (__int128 *)v201;
            LOBYTE(v220) = 5;
            sub_5D2616A0(v41, v202);
            LOBYTE(v220) = 3;
            if ( v203 > 0xF )
            {
              v42 = v201;
              if ( v203 + 1 >= 0x1000 )
              {
                v42 = *(_DWORD *)(v201 - 4);
                v43 = v203 + 36;
                if ( (unsigned int)(v201 - v42 - 4) > 0x1F )
                  goto LABEL_252;
              }
              sub_5D808EAC(v42);
            }
          }
        }
        v70 = sub_5D269CB0(v217, *(unsigned __int8 *)(*v185 + 2));
        v188 = v70;
        v209 = 0;
        v210 = 0;
        v208 = 0i64;
        if ( (_BYTE *)v70 == v217 )
        {
          v71 = 15;
          v209 = 0;
          v210 = 15;
          LOBYTE(v208) = 0;
        }
        else
        {
          v72 = (unsigned int)&v217[-v70];
          if ( (unsigned int)&v217[-v70] > 0x7FFFFFFF )
            goto LABEL_250;
          if ( v72 > 0xF )
          {
            v73 = v72 | 0xF;
            if ( (v72 | 0xF) <= 0x7FFFFFFF )
            {
              if ( v73 < 0x16 )
                v73 = 22;
            }
            else
            {
              v73 = 0x7FFFFFFF;
            }
            v189 = v73;
            v74 = sub_5D262470(&v208, &v189);
            LODWORD(v208) = v74;
            v209 = (_BYTE *)v72;
            v210 = v189;
            sub_5D85F6B0(v74, v188, v72);
            *(_BYTE *)(v74 + v72) = 0;
          }
          else
          {
            v209 = &v217[-v70];
            v210 = 15;
            sub_5D85F6B0(&v208, v70, &v217[-v70]);
            *((_BYTE *)&v208 + v72) = 0;
          }
          v71 = v210;
        }
        v75 = v209;
        LOBYTE(v220) = 10;
        if ( v71 - (unsigned int)v209 < 2 )
        {
          v78 = (__int128 *)sub_5D27A250(2, v188, 0, " (", 2);
        }
        else
        {
          v76 = &v208;
          if ( v71 > 0xF )
            v76 = (__int128 *)v208;
          v209 += 2;
          if ( v76 >= (__int128 *)"" || &v75[(int)v76] < " (" )
          {
            v77 = 2;
          }
          else if ( v76 > (__int128 *)" (" )
          {
            v77 = (char *)v76 - " (";
          }
          else
          {
            v77 = 0;
          }
          sub_5D85F6B0((char *)v76 + 2, v76, v75 + 1);
          sub_5D85F6B0(v76, " (", v77);
          sub_5D85F6B0((char *)v76 + v77, &asc_5DBF7E4C[v77 + 2], 2 - v77);
          v78 = &v208;
        }
        v194 = 0i64;
        v193 = 0i64;
        v193 = *v78;
        v194 = *((_QWORD *)v78 + 2);
        *((_DWORD *)v78 + 5) = 15;
        LOBYTE(v220) = 11;
        *((_DWORD *)v78 + 4) = 0;
        *(_BYTE *)v78 = 0;
        v79 = (__m128i *)sub_5D2616A0(")", 1);
        v81 = v79[1].m128i_i64[0];
        v206 = *v79;
        v80 = v206;
        v207 = v81;
        LOBYTE(v220) = 12;
        v82 = (__int128 *)&v206;
        v79[1].m128i_i32[0] = 0;
        v79[1].m128i_i32[1] = 15;
        v79->m128i_i8[0] = 0;
        v83 = _mm_cvtsi128_si32(v80);
        if ( HIDWORD(v207) > 0xF )
          v82 = (__int128 *)v83;
        sub_5D2616A0(v82, v207);
        LOBYTE(v220) = 11;
        if ( HIDWORD(v207) > 0xF )
        {
          v84 = v206.m128i_i32[0];
          if ( (unsigned int)(HIDWORD(v207) + 1) >= 0x1000 )
          {
            v84 = *(_DWORD *)(v206.m128i_i32[0] - 4);
            v43 = HIDWORD(v207) + 36;
            if ( (unsigned int)(v206.m128i_i32[0] - v84 - 4) > 0x1F )
              goto LABEL_252;
          }
          sub_5D808EAC(v84);
        }
        LOBYTE(v220) = 10;
        if ( HIDWORD(v194) > 0xF )
        {
          v85 = v193;
          if ( (unsigned int)(HIDWORD(v194) + 1) >= 0x1000 )
          {
            v85 = *(_DWORD *)(v193 - 4);
            v43 = HIDWORD(v194) + 36;
            if ( (unsigned int)(v193 - v85 - 4) > 0x1F )
              goto LABEL_252;
          }
          sub_5D808EAC(v85);
        }
        v194 = 0xF00000000i64;
        LOBYTE(v193) = 0;
        LOBYTE(v220) = 3;
        if ( v210 > 0xF )
        {
          v86 = v208;
          if ( v210 + 1 >= 0x1000 )
          {
            v86 = *(_DWORD *)(v208 - 4);
            v43 = v210 + 36;
            if ( (unsigned int)(v208 - v86 - 4) > 0x1F )
              goto LABEL_252;
          }
          sub_5D808EAC(v86);
        }
        v87 = v185;
        v88 = &v214;
        v175 = 0;
        v89 = *v185 == dword_5E07D858;
        v176 = 0;
        if ( v216 > 0xF )
          v88 = (__int128 *)v214;
        if ( (unsigned __int8)sub_5D4B41C0(v88, v89, 0, &v175) )
        {
          v90 = v87[1];
          if ( v90 )
            _InterlockedIncrement((volatile signed __int32 *)(v90 + 4));
          v91 = v87[1];
          v92 = *v87;
          v93 = (volatile signed __int32 *)dword_5E07D85C;
          dword_5E07D858 = v92;
          dword_5E07D85C = v91;
          if ( v93 )
          {
            if ( !_InterlockedExchangeAdd(v93 + 1, 0xFFFFFFFF) )
            {
              (**(void (__thiscall ***)(volatile signed __int32 *))v93)(v93);
              if ( !_InterlockedExchangeAdd(v93 + 2, 0xFFFFFFFF) )
                (*(void (__thiscall **)(volatile signed __int32 *))(*v93 + 4))(v93);
            }
          }
        }
        sub_5D481650();
        v220 = -1;
        if ( v216 > 0xF )
        {
          v94 = v214;
          if ( v216 + 1 >= 0x1000 )
          {
            v94 = *(_DWORD *)(v214 - 4);
            v43 = v216 + 36;
            if ( (unsigned int)(v214 - v94 - 4) > 0x1F )
              goto LABEL_252;
          }
          sub_5D808EAC(v94);
        }
        v95 = *(_DWORD *)(v172 + 32);
        v96 = v172 + 28;
        v188 = v172 + 44;
        v177 = v172 + 16;
        v97 = *(_DWORD *)(v95 + 4);
        v98 = sub_5D3F91A0((char *)&v171 + 4);
        LOBYTE(v180) = 0;
        v159 = __PAIR64__(v96, v97);
        sub_5D3F8A30(&v160, *(_QWORD *)v98, *(_DWORD *)(v98 + 8), v97);
        HIDWORD(v171) = v161;
        *(_QWORD *)((char *)&v171 + 4) = v160;
        if ( (_BYTE *)v160 == v178 )
          break;
        v22 = (_DWORD *)DWORD1(v171);
        v185 = (int *)DWORD1(v171);
      }
    }
    if ( byte_5E07D8A5 )
    {
      v206.m128i_i32[3] = v156;
      LOBYTE(v207) = v157;
      v205 = 0i64;
      BYTE4(v207) = v158;
      memset(v204, 0, 13);
      v206.m128i_i8[0] = 0;
      *(__int64 *)((char *)v206.m128i_i64 + 4) = v155;
      sub_5D3F8BA0(v204);
      sub_5D3F8BA0(&v192);
      sub_5D3F8BA0(v204);
      v153[5] = 1;
      v99 = 1;
      v170 = 1;
      v100 = *(_DWORD *)(v153[1] + 4);
      DWORD2(v169) = &v152;
      HIDWORD(v169) = &v151;
      *(_QWORD *)&v169 = __PAIR64__(v153, v100);
      sub_5D3F9730((char *)&v171 + 4);
      while ( v99 && v100 != DWORD1(v171) )
      {
        v168 = v169;
        v101 = *(int **)sub_5D3F9220(&v168);
        v102 = v101[1];
        if ( v102 )
          _InterlockedIncrement((volatile signed __int32 *)(v102 + 4));
        v103 = v101[1];
        v104 = (volatile signed __int32 *)dword_5E07D85C;
        dword_5E07D858 = *v101;
        dword_5E07D85C = v103;
        if ( v104 )
        {
          if ( !_InterlockedExchangeAdd(v104 + 1, 0xFFFFFFFF) )
          {
            (**(void (__thiscall ***)(volatile signed __int32 *))v104)(v104);
            if ( !_InterlockedExchangeAdd(v104 + 2, 0xFFFFFFFF) )
              (*(void (__thiscall **)(volatile signed __int32 *))(*v104 + 4))(v104);
          }
        }
        sub_5D3F9220(&v169);
        v100 = v169;
        v99 = --v170;
      }
      v148 = sub_5D47A9F0();
      sub_5D485040(LODWORD(v148));
    }
    sub_5D478970();
    sub_5D484450(0, -1082130432);
    v184 = 0x43FA000000000000i64;
    sub_5D4761B0("ChildR", &v184, 1, 2048);
    v105 = dword_5E07D858;
    if ( !dword_5E07D858 )
      goto LABEL_243;
    v106 = (_DWORD *)(dword_5E07D858 + 3);
    v190[0] = *(_BYTE *)(dword_5E07D858 + 2);
    v107 = *(_BYTE *)(dword_5E07D858 + 1);
    v188 = v190[0];
    if ( v107 )
    {
      if ( v107 == 1 )
      {
        v110 = *(_DWORD *)(sub_5D2C99B0((char *)&v168 + 4, v190) + 8);
        if ( !*(_BYTE *)(v110 + 13) && *(_BYTE *)(v105 + 2) >= *(_BYTE *)(v110 + 16) )
          goto LABEL_188;
      }
    }
    else
    {
      v108 = *(_DWORD *)(sub_5D2C99B0((char *)&v168 + 4, v190) + 8);
      if ( !*(_BYTE *)(v108 + 13) && *(_BYTE *)(v105 + 2) >= *(_BYTE *)(v108 + 16) )
      {
LABEL_188:
        v109 = (const char *)sub_5D3F90D0(v190);
        if ( *((_DWORD *)v109 + 5) > 0xFu )
          v109 = *(const char **)v109;
        v105 = dword_5E07D858;
LABEL_195:
        v111 = *(_BYTE *)(v105 + 1);
        if ( v111 )
        {
          if ( v111 == 1 )
          {
            v112 = (const char *)&word_5DBF7614;
          }
          else
          {
            v112 = "Amazing packet";
            if ( v111 != 2 )
              v112 = (const char *)&unk_5DED1924;
          }
        }
        else
        {
          v112 = "Packet";
        }
        sub_5D4B74B0("%s %s id %d", v112, v109, v188);
        sub_5D4B74B0("Size %d bytes", (*v106 + 7) >> 3);
        sub_5D4B46C0();
        sub_5D4B74B0("Parameters:");
        v180 = v106[2];
        sub_5D3F76A0(&v181, *(_BYTE *)(dword_5E07D858 + 1), *(_BYTE *)(dword_5E07D858 + 2), v106);
        v113 = v181;
        v220 = 13;
        v188 = (unsigned int)v182;
        if ( v181 != v182 )
        {
          do
          {
            v114 = v113;
            if ( (unsigned int)v113[5] > 0xF )
              v114 = (int *)*v113;
            v115 = (_DWORD *)sub_5D325DF0(&v206, v114, v113[4]);
            v116 = v115[5] <= 0xFu;
            LOBYTE(v220) = 14;
            if ( !v116 )
              v115 = (_DWORD *)*v115;
            sub_5D4B74B0(v115);
            LOBYTE(v220) = 13;
            if ( HIDWORD(v207) > 0xF )
            {
              v117 = v206.m128i_i32[0];
              if ( (unsigned int)(HIDWORD(v207) + 1) >= 0x1000 )
              {
                v117 = *(_DWORD *)(v206.m128i_i32[0] - 4);
                v43 = HIDWORD(v207) + 36;
                if ( (unsigned int)(v206.m128i_i32[0] - v117 - 4) > 0x1F )
                  goto LABEL_252;
              }
              sub_5D808EAC(v117);
            }
            v113 += 6;
          }
          while ( v113 != (int *)v188 );
        }
        sub_5D4B46C0();
        sub_5D4B74B0("Unreaded bits %d", *v106 - v106[2]);
        sub_5D4B74B0("Dump:");
        v118 = v180;
        v119 = *v106 - v180;
        v106[2] = v180;
        sub_5D268600((int)(v119 + 7) >> 3, 0);
        v120 = &v211;
        v121 = *v106 - v106[2];
        if ( v213 > 0xF )
          v120 = (__int128 *)v211;
        LOBYTE(v220) = 15;
        sub_5D321C50(v120, v121, 1);
        v106[2] = v118;
        v122 = &v211;
        if ( v213 > 0xF )
          v122 = (__int128 *)v211;
        v123 = (_DWORD *)sub_5D3FB230(&v201, v122, v212);
        v116 = v123[5] <= 0xFu;
        v124 = v123;
        LOBYTE(v220) = 16;
        if ( !v116 )
          v124 = (_DWORD *)*v123;
        v125 = (_DWORD *)sub_5D325DF0(&v206, v124, v123[4]);
        v116 = v125[5] <= 0xFu;
        LOBYTE(v220) = 17;
        if ( !v116 )
          v125 = (_DWORD *)*v125;
        sub_5D4B74B0(v125);
        LOBYTE(v220) = 16;
        if ( HIDWORD(v207) > 0xF )
        {
          v126 = v206.m128i_i32[0];
          if ( (unsigned int)(HIDWORD(v207) + 1) >= 0x1000 )
          {
            v126 = *(_DWORD *)(v206.m128i_i32[0] - 4);
            v43 = HIDWORD(v207) + 36;
            if ( (unsigned int)(v206.m128i_i32[0] - v126 - 4) > 0x1F )
              goto LABEL_252;
          }
          sub_5D808EAC(v126);
        }
        v207 = 0xF00000000i64;
        v206.m128i_i8[0] = 0;
        LOBYTE(v220) = 15;
        if ( v203 <= 0xF )
          goto LABEL_227;
        v127 = v201;
        if ( v203 + 1 < 0x1000
          || (v127 = *(_DWORD *)(v201 - 4), v43 = v203 + 36, (unsigned int)(v201 - v127 - 4) <= 0x1F) )
        {
          sub_5D808EAC(v127);
LABEL_227:
          v202 = 0;
          v203 = 15;
          LOBYTE(v201) = 0;
          LOBYTE(v220) = 13;
          if ( v213 > 0xF )
          {
            v128 = v211;
            if ( v213 + 1 >= 0x1000 )
            {
              v128 = *(_DWORD *)(v211 - 4);
              v129 = v213 + 36;
              if ( (unsigned int)(v211 - v128 - 4) > 0x1F )
                goto LABEL_253;
            }
            sub_5D808EAC(v128);
          }
          v130 = v181;
          v212 = 0;
          v213 = 15;
          LOBYTE(v211) = 0;
          v220 = -1;
          if ( !v181 )
          {
LABEL_243:
            sub_5D478970();
            sub_5D4A9C50("Auto select latest", &byte_5E07D8A5);
            sub_5D4815E0();
            return (_DWORD *)sub_5D478730();
          }
          v131 = v182;
          if ( v181 != v182 )
          {
            do
            {
              v132 = v130[5];
              if ( v132 > 0xF )
              {
                v133 = *v130;
                v134 = v132 + 1;
                if ( v134 >= 0x1000 )
                {
                  v129 = v134 + 35;
                  if ( (unsigned int)(v133 - *(_DWORD *)(v133 - 4) - 4) > 0x1F )
                    goto LABEL_253;
                  v133 = *(_DWORD *)(v133 - 4);
                }
                sub_5D808EAC(v133);
              }
              v130[4] = 0;
              v130[5] = 15;
              *(_BYTE *)v130 = 0;
              v130 += 6;
            }
            while ( v130 != v131 );
            v130 = v181;
          }
          v135 = v130;
          v136 = 24 * (((char *)v183 - (char *)v130) / 24);
          if ( v136 < 0x1000
            || (v130 = (int *)*(v130 - 1), v129 = v136 + 35, (unsigned int)((char *)v135 - (char *)v130 - 4) <= 0x1F) )
          {
            sub_5D808EAC(v130);
            v181 = 0;
            v182 = 0;
            v183 = 0;
            goto LABEL_243;
          }
LABEL_253:
          sub_5D8636AF(v129);
        }
LABEL_252:
        sub_5D8636AF(v43);
      }
    }
    v109 = "unknown";
    goto LABEL_195;
  }
  return result;
}
что тут именно надо для открытия меню раклоггера, и как вообще получить оффсет может кто объяснить я 0 в реверсинге
 
  • Ха-ха
Реакции: ssska

Receiver

leet-cheats 👑
Модератор
639
949
Понял! Вы хотите изменить состояние окна ImGui (например, открыть или закрыть его) путем модификации байтов в скомпилированной программе. Это требует анализа кода и поиска места, где управляется состояние окна.
Как это сделать:

  1. Поиск состояния окна:
    • В декомпилированном коде ищите переменные или флаги, которые управляют видимостью окна. Обычно это булевы переменные (например, bool isWindowOpen = true;).
    • В ассемблерном коде такие переменные могут быть представлены как 0 (false) или 1 (true) в регистрах или памяти.
  2. Анализ кода:
    • В вашем декомпилированном коде есть вызовы функций, связанных с ImGui, например:
      Код:
      sub_5D474190((int)v221, "Amazing Raklogger", 0, 0);
      Это может быть связано с созданием или управлением окном.
    • Ищите вызовы функций, которые управляют окнами, например ImGui::Begin, ImGui::End, или аналогичные.
  3. Поиск байтов:
    • В ассемблерном коде ищите инструкции, которые управляют состоянием окна. Например:
      • cmp (сравнение) с булевым значением.
      • mov (перемещение) значения в переменную, которая управляет видимостью окна.
    • Например, если окно управляется флагом isWindowOpen, то в ассемблере это может выглядеть так:
      Код:
      mov byte ptr [isWindowOpen], 1 ; Открыть окно mov byte ptr [isWindowOpen], 0 ; Закрыть окно
  4. Изменение байтов:
    • Используйте инструменты для редактирования бинарных файлов (например, Cheat Engine, x64dbg, IDA Pro или HxD).
    • Найдите адрес в памяти, где хранится флаг состояния окна.
    • Измените значение этого байта (например, с 0 на 1, чтобы открыть окно).
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Пример поиска и изменения:

  1. Поиск в декомпилированном коде:
    • В вашем коде есть вызовы, связанные с окнами, например:
      Код:
      sub_5D474190((int)v221, "Amazing Raklogger", 0, 0);
      Это может быть функция, которая создает окно. Найдите, где она вызывается, и проверьте, какие параметры передаются.
  2. Поиск в ассемблере:
    • В ассемблерном коде ищите инструкции, которые управляют состоянием окна. Например:
      Код:
      cmp byte ptr [edi], 0 jz loc_5D3FB147
      Здесь [edi] может быть флагом, который управляет видимостью окна.
  3. Изменение байтов:
    • Используйте Cheat Engine или x64dbg, чтобы найти адрес переменной, которая управляет окном.
    • Измените значение этой переменной (например, с 0 на 1).
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Советы:

  • Если вы не уверены, какая переменная управляет окном, попробуйте поставить брейкпоинт на вызовы функций, связанных с ImGui, и проанализировать, какие данные передаются.
  • Используйте IDA Pro или Ghidra для более детального анализа кода.
Если вы уточните, какое именно окно вы хотите открыть (например, его название или функционал), я смогу помочь более конкретно!