• 31-03-2013, 14:37:35
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşlar hemen hemen çoğunuz metin2 oyununu bilirsiniz. Bu oyunun giriş uygulamasının source kodlarını internette dolanırken buldum ancak bu kodları nasıl tekrar derleyip exe haline gitirebilirim.

    NOT:Balığı direk elime vermeye kalkmayın balık tutmayı öğretin

    Kodlardan bir bölüm. Hepsini yazmadım çünkü çok uzun

    Yardım eden herkeze şimdiden teşekkür ediyorum.
    /* This file has been generated by the Hex-Rays decompiler.
       Copyright (c) 2009 Hex-Rays <info@hex-rays.com>
    
       Detected compiler: Visual C++
    */
    
    #include <windows.h>
    #include <math.h>
    #include <defs.h>
    
    #include <stdarg.h>
    
    
    //-------------------------------------------------------------------------
    // Data declarations
    
    
    extern char aApply_attbon_5[23]; // weak
    extern char aApply_attbon_6[24]; // weak
    extern char aApply_attbon_7[20]; // weak
    extern char aApply_attbon_8[22]; // weak
    extern char aApply_attbon_9[23]; // weak
    extern char aApply_mall_att[20]; // weak
    extern char aApply_mall_def[20]; // weak
    extern char aApply_mall_exp[20]; // weak
    extern char aApply_mall_ite[21]; // weak
    extern char aApply_mall_gol[21]; // weak
    extern char aApply_max_hp_p[17]; // weak
    extern char aApply_max_sp_p[17]; // weak
    extern char aApply_skill_da[25]; // weak
    extern char aApply_normal_h[30]; // weak
    extern char aApply_skill_de[25]; // weak
    extern char aApply_normal_0[30]; // weak
    extern char aApply_pc_bang_[24]; // weak
    extern char aApply_pc_ban_0[25]; // weak
    extern char aApply_resist_2[21]; // weak
    extern char aApply_resist_a[22]; // weak
    extern char aApply_resist_3[18]; // weak
    extern char aApply_resist_4[20]; // weak
    extern char aCpythonnonplay[]; // idb
    extern char aCpythonnonpl_0[]; // idb
    extern char aCpythonnonpl_1[]; // idb
    extern int (__thiscall *off_7D2BE4)(void *, char); // weak
    extern int (__thiscall *off_7D2BEC)(void *, char); // weak
    extern char aNonplayer[10]; // weak
    extern char aOn_click_event[20]; // weak
    extern char aOn_click_eve_0[22]; // weak
    extern char aOn_click_eve_1[20]; // weak
    extern char aOn_click_eve_2[20]; // weak
    extern char aOn_click_eve_3[23]; // weak
    extern char aPawn[5]; // weak
    extern char aS_pawn[7]; // weak
    extern char aKnight[7]; // weak
    extern char aS_knight[9]; // weak
    extern char aBoss[5]; // weak
    extern char aKing[5]; // weak
    extern char aRefreshstamina[15]; // weak
    extern char aBinary_guild_e[28]; // weak
    extern char aBinary_guild_4[27]; // weak
    extern char aCpythonplayerS[]; // idb
    extern char aCpythonplayerG[]; // idb
    extern char aOnchangepkmode[15]; // weak
    extern char aCpythonplaye_0[]; // idb
    extern char aBinary_actemot[18]; // weak
    extern char aStrangeSlotind[]; // idb
    extern char aFailedToFindIt[]; // idb
    extern char aCpythonplaye_1[]; // idb
    extern char aCpythonplayerE[]; // idb
    extern char aCpythonplay_13[]; // idb
    extern char aCpythonplayerA[]; // idb
    extern char aActivateskills[18]; // weak
    extern char aCpythonplayerD[]; // idb
    extern char aDeactivateskil[20]; // weak
    extern char aOncannotpickit[17]; // weak
    extern char aOncannotmining[15]; // weak
    extern char aNeed_target[12]; // weak
    extern char aOncannotshoter[18]; // weak
    extern char aKissS[]; // idb
    extern char aCpythonplayerL[]; // idb
    extern char aCpythonplayerU[]; // idb
    extern char aCpythonplaye_2[]; // idb
    extern char aCpythonplaye_3[]; // idb
    extern char aCpythonplaye_4[]; // idb
    extern char aRefreshmobile[14]; // weak
    extern char aBinary_checkga[23]; // weak
    extern int (__thiscall *off_7D336C)(void *, char); // weak
    extern int (__thiscall *off_7D3400)(void *, char); // weak
    extern int (__thiscall *off_7D3408)(void *, char); // weak
    extern int (__stdcall *off_7D3414)(int); // weak
    extern int (__thiscall *off_7D34A8)(void *, char); // weak
    extern int (__thiscall *off_7D34DC)(void *, char); // weak
    extern int (__thiscall *off_7D3504)(void *, char); // weak
    extern int (__thiscall *off_7D3544)(void *, char); // weak
    extern int (__thiscall *off_7D3584)(void *, char); // weak
    extern char aSetpctargetboa[17]; // weak
    extern char aCpythonplay_12[51]; // weak
    extern char aOnfishingwrong[20]; // weak
    extern char aOncannotuseski[17]; // weak
    extern char aOncannotshot[13]; // weak
    extern char aOncannotattack[15]; // weak
    extern char aCpythonplayerN[56]; // weak
    extern char aPlayer[7]; // weak
    extern char aLevel[6]; // weak
    extern char aVoice[6]; // weak
    extern int (__stdcall *off_7D4070)(int); // weak
    extern char aNext_exp[9]; // weak
    extern char aHp[3]; // weak
    int v5; // ebp@1
      int v6; // eax@4
      int v7; // esi@4
      int v8; // eax@5
      int v9; // eax@7
      int v10; // eax@11
      int v11; // edx@12
      int v12; // ecx@12
      int v13; // edx@13
      int v14; // edx@18
      int v15; // eax@22
      int v16; // ecx@22
      int v17; // edx@24
      int v18; // edx@26
      int result; // eax@32
      char v20; // [sp+10h] [bp-50h]@2
      char v21; // [sp+14h] [bp-4Ch]@2
      int v22; // [sp+24h] [bp-3Ch]@2
      int v23; // [sp+28h] [bp-38h]@2
      int (__thiscall **v24)(void *, char); // [sp+2Ch] [bp-34h]@2
      int v25; // [sp+5Ch] [bp-4h]@2
      int v26; // [sp+6Ch] [bp+Ch]@4
    
      v5 = a4;
      if ( *(_DWORD *)(a1 + 8) >= 0x1FFFFFFEu )
      {
        v23 = 15;
        v22 = 0;
        v21 = 0;
        sub_40C0E0((int)&v20, "map/set<T> too long", 0x13u);
        v25 = 0;
        sub_40B860((int)&v24, (int)&v20);
        v24 = &off_7B3E58;
        _CxxThrowException(&v24, &unk_801A5C);
      }
      v7 = sub_4C0C20(a5, *(_DWORD *)(a1 + 4), a4, *(_DWORD *)(a1 + 4));
      v6 = *(_DWORD *)(a1 + 4);
      ++*(_DWORD *)(a1 + 8);
      v26 = v7;
      if ( v5 == v6 )
      {
        *(_DWORD *)(v6 + 4) = v7;
        **(_DWORD **)(a1 + 4) = v7;
        v8 = *(_DWORD *)(a1 + 4);
    LABEL_10:
        *(_DWORD *)(v8 + 8) = v7;
        goto LABEL_11;
      }
      if ( !a3 )
      {
        *(_DWORD *)(v5 + 8) = v7;
        v8 = *(_DWORD *)(a1 + 4);
        if ( v5 != *(_DWORD *)(v8 + 8) )
          goto LABEL_11;
        goto LABEL_10;
      }
      *(_DWORD *)v5 = v7;
      v9 = *(_DWORD *)(a1 + 4);
      if ( v5 == *(_DWORD *)v9 )
        *(_DWORD *)v9 = v7;
    LABEL_11:
      v10 = v7 + 4;
      if ( !*(_BYTE *)(*(_DWORD *)(v7 + 4) + 20) )
      {
        do
        {
          v12 = *(_DWORD *)v10;
          v11 = *(_DWORD *)(*(_DWORD *)v10 + 4);
          if ( *(_DWORD *)v10 == *(_DWORD *)v11 )
          {
            v13 = *(_DWORD *)(v11 + 8);
            if ( *(_BYTE *)(v13 + 20) )
            {
              if ( v7 == *(_DWORD *)(v12 + 8) )
              {
                v7 = *(_DWORD *)v10;
                sub_4C0B70(v12, a1);
              }
              *(_BYTE *)(*(_DWORD *)(v7 + 4) + 20) = 1;
              *(_BYTE *)(*(_DWORD *)(*(_DWORD *)(v7 + 4) + 4) + 20) = 0;
              sub_4C0BD0(*(void **)(*(_DWORD *)(v7 + 4) + 4), a1);
            }
            else
            {
              *(_BYTE *)(v12 + 20) = 1;
              *(_BYTE *)(v13 + 20) = 1;
              *(_BYTE *)(*(_DWORD *)(*(_DWORD *)v10 + 4) + 20) = 0;
              v7 = *(_DWORD *)(*(_DWORD *)v10 + 4);
            }
          }
          else
          {
            v14 = *(_DWORD *)v11;
            if ( *(_BYTE *)(v14 + 20) )
            {
              if ( v7 == *(_DWORD *)v12 )
              {
                v7 = *(_DWORD *)v10;
                sub_4C0BD0((void *)v12, a1);
              }
              *(_BYTE *)(*(_DWORD *)(v7 + 4) + 20) = 1;
              *(_BYTE *)(*(_DWORD *)(*(_DWORD *)(v7 + 4) + 4) + 20) = 0;
              v15 = *(_DWORD *)(*(_DWORD *)(v7 + 4) + 4);
              v16 = *(_DWORD *)(v15 + 8);
              *(_DWORD *)(v15 + 8) = *(_DWORD *)v16;
              if ( !*(_BYTE *)(*(_DWORD *)v16 + 21) )
                *(_DWORD *)(*(_DWORD *)v16 + 4) = v15;
              *(_DWORD *)(v16 + 4) = *(_DWORD *)(v15 + 4);
              v17 = *(_DWORD *)(a1 + 4);
              if ( v15 == *(_DWORD *)(v17 + 4) )
              {
                *(_DWORD *)(v17 + 4) = v16;
              }
              else
              {
                v18 = *(_DWORD *)(v15 + 4);
                if ( v15 == *(_DWORD *)v18 )
                  *(_DWORD *)v18 = v16;
                else
                  *(_DWORD *)(v18 + 8) = v16;
              }
              *(_DWORD *)v16 = v15;
              *(_DWORD *)(v15 + 4) = v16;
            }
            else
            {
              *(_BYTE *)(v12 + 20) = 1;
              *(_BYTE *)(v14 + 20) = 1;
              *(_BYTE *)(*(_DWORD *)(*(_DWORD *)v10 + 4) + 20) = 0;
              v7 = *(_DWORD *)(*(_DWORD *)v10 + 4);
            }
          }
          v10 = v7 + 4;
        }
        while ( !*(_BYTE *)(*(_DWORD *)(v7 + 4) + 20) );
        v7 = v26;
      }
      *(_BYTE *)(*(_DWORD *)(*(_DWORD *)(a1 + 4) + 4) + 20) = 1;
      result = a2;
      *(_DWORD *)(a2 + 4) = v7;
      *(_DWORD *)a2 = a1;
      return result;
    }
    // 751FCB: using guessed type _DWORD __stdcall _CxxThrowException(_DWORD, _DWORD);
    // 7B3E58: using guessed type int (__thiscall *off_7B3E58)(void *, char);
    
    //----- (004C0B70) --------------------------------------------------------
    int __thiscall sub_4C0B70(int this, int a2)
    {
      int result; // eax@1
      int v3; // edx@3
      int v4; // edx@5
    
      result = *(_DWORD *)(this + 8);
      *(_DWORD *)(this + 8) = *(_DWORD *)result;
      if ( !*(_BYTE *)(*(_DWORD *)result + 21) )
        *(_DWORD *)(*(_DWORD *)result + 4) = this;
      *(_DWORD *)(result + 4) = *(_DWORD *)(this + 4);
      v3 = *(_DWORD *)(a2 + 4);
      if ( this == *(_DWORD *)(v3 + 4) )
      {
        *(_DWORD *)(v3 + 4) = result;
        *(_DWORD *)result = this;
        *(_DWORD *)(this + 4) = result;
      }
      else
      {
        v4 = *(_DWORD *)(this + 4);
        if ( this == *(_DWORD *)v4 )
        {
          *(_DWORD *)v4 = result;
          *(_DWORD *)result = this;
          *(_DWORD *)(this + 4) = result;
        }
        else
        {
          *(_DWORD *)(v4 + 8) = result;
          *(_DWORD *)result = this;
          *(_DWORD *)(this + 4) = result;
        }
      }
      return result;
    }
    
    //----- (004C0BD0) --------------------------------------------------------
    int __thiscall sub_4C0BD0(void *this, int a2)
    {
      int result; // eax@1
      int v3; // edx@1
      int v4; // edx@3
      int v5; // edx@5
    
      result = *(_DWORD *)this;
      *(_DWORD *)this = *(_DWORD *)(*(_DWORD *)this + 8);
      v3 = *(_DWORD *)(result + 8);
      if ( !*(_BYTE *)(v3 + 21) )
        *(_DWORD *)(v3 + 4) = this;
      *(_DWORD *)(result + 4) = *((_DWORD *)this + 1);
      v4 = *(_DWORD *)(a2 + 4);
      if ( this == *(void **)(v4 + 4) )
      {
        *(_DWORD *)(v4 + 4) = result;
        *(_DWORD *)(result + 8) = this;
        *((_DWORD *)this + 1) = result;
      }
      else
      {
        v5 = *((_DWORD *)this + 1);
        if ( this == *(void **)(v5 + 8) )
        {
          *(_DWORD *)(v5 + 8) = result;
          *(_DWORD *)(result + 8) = this;
          *((_DWORD *)this + 1) = result;
        }
        else
        {
          *(_DWORD *)v5 = result;
          *(_DWORD *)(result + 8) = this;
          *((_DWORD *)this + 1) = result;
        }
      }
      return result;
    }
    
    //----- (004C0C20) --------------------------------------------------------
    int __userpurge sub_4C0C20<eax>(int a1<esi>, int a2, int a3, int a4)
    {
      int result; // eax@1
    
      result = sub_4C0DA0(1u);
      if ( result )
      {
        *(_DWORD *)result = a2;
        *(_DWORD *)(result + 4) = a3;
        *(_DWORD *)(result + 8) = a4;
        *(_DWORD *)(result + 12) = *(_DWORD *)a1;
        *(_DWORD *)(result + 16) = *(_DWORD *)(a1 + 4);
        *(_BYTE *)(result + 20) = 0;
        *(_BYTE *)(result + 21) = 0;
      }
      return result;
    }
    
    //----- (004C0CD0) --------------------------------------------------------
    int __usercall sub_4C0CD0<eax>(int a1<esi>)
    {
      int v1; // eax@3
      int result; // eax@4
      int v3; // ecx@6
    
      if ( !*(_DWORD *)a1 )
        _invalid_parameter_noinfo();
      v1 = *(_DWORD *)(a1 + 4);
      if ( *(_BYTE *)(v1 + 21) )
      {
        result = *(_DWORD *)(v1 + 8);
        *(_DWORD *)(a1 + 4) = result;
        if ( *(_BYTE *)(result + 21) )
          result = _invalid_parameter_noinfo();
      }
      else
      {
        v3 = *(_DWORD *)v1;
        if ( *(_BYTE *)(*(_DWORD *)v1 + 21) )
        {
          for ( result = *(_DWORD *)(v1 + 4); !*(_BYTE *)(result + 21); result = *(_DWORD *)(result + 4) )
          {
            if ( *(_DWORD *)(a1 + 4) != *(_DWORD *)result )
              break;
            *(_DWORD *)(a1 + 4) = result;
          }
          if ( *(_BYTE *)(*(_DWORD *)(a1 + 4) + 21) )
            result = _invalid_parameter_noinfo();
          else
            *(_DWORD *)(a1 + 4) = result;
        }
        else
        {
          for ( result = *(_DWORD *)(v3 + 8); !*(_BYTE *)(result + 21); result = *(_DWORD *)(result + 8) )
            v3 = result;
          *(_DWORD *)(a1 + 4) = v3;
        }
      }
      return result;
    }
    
    //----- (004C0DA0) --------------------------------------------------------
    int __fastcall sub_4C0DA0(unsigned int a1)
    {
      int v2; // [sp+0h] [bp-10h]@2
      int (__thiscall **v3)(void *, char); // [sp+4h] [bp-Ch]@3
    
      if ( 0xFFFFFFFF / a1 < 0x18 )
      {
        v2 = 0;
        std__exception__exception(&v2);
        v3 = &off_7B3E34;
        _CxxThrowException(&v3, &unk_801A94);
      }
      return operator new(24 * a1);
    }
    // 7481B6: using guessed type _DWORD __stdcall std__exception__exception(_DWORD);
    // 751FCB: using guessed type _DWORD __stdcall _CxxThrowException(_DWORD, _DWORD);
    // 7B3E34: using guessed type int (__thiscall *off_7B3E34)(void *, char);
    
    //----- (004C0E40) --------------------------------------------------------
    int __stdcall sub_4C0E40(int a1)
    {
      unsigned int v1; // ebx@1
      int v2; // esi@1
      int v3; // eax@1
      int v4; // eax@1
      int v5; // eax@1
      int v6; // eax@1
      unsigned int v8; // [sp+10h] [bp-1Ch]@1
      char v9; // [sp+14h] [bp-18h]@2
      int v10; // [sp+28h] [bp-4h]@1
    
      v2 = a1;
      dword_897F20 = a1;
      v1 = 0;
      v10 = 0;
      *(_DWORD *)a1 = &off_7D9964;
      v3 = sub_4C4550();
      *(_DWORD *)(a1 + 8) = v3;
      *(_BYTE *)(v3 + 21) = 1;
      *(_DWORD *)(*(_DWORD *)(v2 + 8) + 4) = *(_DWORD *)(v2 + 8);
      **(_DWORD **)(v2 + 8) = *(_DWORD *)(v2 + 8);
      *(_DWORD *)(*(_DWORD *)(v2 + 8) + 8) = *(_DWORD *)(v2 + 8);
      *(_DWORD *)(a1 + 12) = 0;
      LOBYTE(v10) = 1;
      v4 = sub_408360();
      *(_DWORD *)(a1 + 20) = v4;
      *(_BYTE *)(v4 + 21) = 1;
      *(_DWORD *)(*(_DWORD *)(v2 + 20) + 4) = *(_DWORD *)(v2 + 20);
      **(_DWORD **)(v2 + 20) = *(_DWORD *)(v2 + 20);
      *(_DWORD *)(*(_DWORD *)(v2 + 20) + 8) = *(_DWORD *)(v2 + 20);
      *(_DWORD *)(a1 + 24) = 0;
      LOBYTE(v10) = 2;
      v5 = sub_413FF0();
      *(_DWORD *)(a1 + 32) = v5;
      *(_BYTE *)(v5 + 17) = 1;
      *(_DWORD *)(*(_DWORD *)(v2 + 32) + 4) = *(_DWORD *)(v2 + 32);
      **(_DWORD **)(v2 + 32) = *(_DWORD *)(v2 + 32);
      *(_DWORD *)(*(_DWORD *)(v2 + 32) + 8) = *(_DWORD *)(v2 + 32);
      *(_DWORD *)(a1 + 36) = 0;
      *(_DWORD *)(a1 + 64) = 15;
      *(_DWORD *)(a1 + 60) = 0;
      *(_BYTE *)(a1 + 44) = 0;
      LOBYTE(v10) = 4;
      v6 = sub_4C4900();
      *(_DWORD *)(a1 + 72) = v6;
      *(_BYTE *)(v6 + 37) = 1;
      *(_DWORD *)(*(_DWORD *)(v2 + 72) + 4) = *(_DWORD *)(v2 + 72);
      **(_DWORD **)(v2 + 72) = *(_DWORD *)(v2 + 72);
      *(_DWORD *)(*(_DWORD *)(v2 + 72) + 8) = *(_DWORD *)(v2 + 72);
      *(_DWORD *)(a1 + 76) = 0;
      LOBYTE(v10) = 5;
      _mkdir("mark");
      v8 = 0;
      do
      {
        sub_411C30(a1 + 28, (int)&v9, (int)&v8);
        ++v1;
        v8 = v1;
      }
      while ( v1 < 0x1900 );
      return a1;
    }
    // 7D9964: using guessed type int (__thiscall *off_7D9964)(void *, char);
    // 897F20: using guessed type int dword_897F20;
    
    //----- (004C0F70) --------------------------------------------------------
    void *__thiscall sub_4C0F70(void *this, char a2)
    {
      void *v2; // esi@1
    
      v2 = this;
      sub_4C0FB0((int)this);
      if ( a2 & 1 )
        j__free(v2);
      return v2;
    }
    
    //----- (004C0FB0) --------------------------------------------------------
    int __thiscall sub_4C0FB0(int this)
    {
      int v1; // ebx@1
      int v2; // ebp@1
      int v3; // edi@1
      int v4; // esi@1
  • 31-03-2013, 15:00:04
    #2
    c++ kodları bunlar, devc++ indirip orada derleyebilirsiniz....
  • 31-03-2013, 15:27:10
    #3
    devveloper adlı üyeden alıntı: mesajı görüntüle
    c++ kodları bunlar, devc++ indirip orada derleyebilirsiniz....
    İndirdim deniyorum derle&çalıştır diyorum bekletiyor bekliyorum sonra ne ortada exe dosyası var ne bişey.
  • 31-03-2013, 15:50:22
    #4
    bu kodları bu şekilde derleyemezsiniz, tekrar elden geçirilmesi gerekli
  • 31-03-2013, 16:45:30
    #5
    anladığım kadarıyla adamlar projeyi decompile etmişler sonra kodlarını vermişler... bunu derlemen baya zor gibi
  • 31-03-2013, 23:10:43
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Muhtemelen birçok kütüphane eksiği vardır. Yani kodun tamamını verdiklerini sanmıyorum. Eğer tam olduklarını düşünüyorsan sadece derleme yap. Derleme sonucunda hata almazsan exe dosyası zaten otomatik oluşur.
  • 01-04-2013, 16:41:44
    #7
    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    anladığım kadarıyla adamlar projeyi decompile etmişler sonra kodlarını vermişler... bunu derlemen baya zor gibi
    Aynen öyle kardeşim decompile edilmiş kodlar bunlar
  • 01-04-2013, 16:53:42
    #8
    uğraşma o zaman derlenmez o.. decompilerlar kendileri değer atıyor alamadıkları değişken isimlerine/sınıf isimlerine/türlerine v.s. hele cpp gibi bir dil için çözemezsin. bunun tek bir faydası olur, işleyişi anlayabilirsin.. bir projede takıldığın bir yer olur da o programları decompile ederek ilgili işin nasıl yapıldığı hakkında fikir edinebilirsin, onun dışında decompile ile olmaz bu işler.. .net reflector de bile gui de sıkıntı çıkıyor gerçi hallediliyor ama yine de çoğu zaman problem oluyor kaldı ki .net native olarak derlenmemiş..

    kısacası vazgeç bu sevdadan
  • 01-04-2013, 18:09:24
    #9
    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    uğraşma o zaman derlenmez o.. decompilerlar kendileri değer atıyor alamadıkları değişken isimlerine/sınıf isimlerine/türlerine v.s. hele cpp gibi bir dil için çözemezsin. bunun tek bir faydası olur, işleyişi anlayabilirsin.. bir projede takıldığın bir yer olur da o programları decompile ederek ilgili işin nasıl yapıldığı hakkında fikir edinebilirsin, onun dışında decompile ile olmaz bu işler.. .net reflector de bile gui de sıkıntı çıkıyor gerçi hallediliyor ama yine de çoğu zaman problem oluyor kaldı ki .net native olarak derlenmemiş..

    kısacası vazgeç bu sevdadan
    Sağlık olsun napalım herkese yardımları için teşekkür ediyorum konu kilitlenebilir.