Vinnaren i pepparkakshustävlingen!
2022-03-13, 09:51
  #1
Medlem
Hej!
Inget märkvärdigt med detta inlägg, men fortfarande en kul grej.
Jag jobbbade på ett "crack-me" program och valde att skapa en junkcode generator för att komplicera det lite för ögonen.

Planerar att släppa programmet när jag är helt klar.

Varför är mitt program unikt? Varför inte använda något som redan finns?
Mitt program använder sig av olika mönster inom programmering för att förvirra "decompilers" och producera komplicerad output för sådanna.

Exempel
Kod:
int __cdecl main(int _Argc,char **_Argv,char **_Env)

{
  basic_ostream<char,std::char_traits<char>_> *this;
  int iVar1;
  uchar *unaff_EDI;
  undefined4 *puVar2;
  code *pcVar3;
  
  puVar2 = (undefined4 *)&stack0xfffffffc;
  for (iVar1 = 0; iVar1 != 0; iVar1 = iVar1 + -1) {
    *puVar2 = 0xcccccccc;
    puVar2 = puVar2 + 1;
  }
  __CheckForDebuggerJustMyCode(unaff_EDI);
  弗Й比Й吉艾吉屁gLjq艾哦儿VИЫ吉P();
  ЬД屁ЖПlЗcJГ哦БЩYR艾屁吾ЫЬ();
  吉BTe屁IЮw吾ud伊dzIЭ吉Й吉Г();
  kШ吉弗h吾JЮu哦Щr西ЛVЫUЁЮБ();
  哦艾ЛПJ儿I吾PsSb吉OUЛZb吉艾();
  西AC屁Oy伊吉ЦЮlk艾rooEh儿Ц();
  艾cЁB艾Y吉屁Z艾d弗ЖwГ哦吉ohЗ();
  屁Ykqc儿БXЮrЁ弗ИЪ西伊qAI吾();
  伊Lp伊cЗ弗XX艾比Ф西Зsv弗哦艾屁();
  艾ЭgumlЩ吾xxU吉ЩЗЪ艾vsi比();
  吾P西吉吉吉弗B吾k艾哦aNDm艾哦m弗();
  艾DЯЯpL哦o伊艾AhЦ艾F伊ЭЬ儿И();
  ЗШAi儿ДЦГДP吉zbЁ吉艾oЙTv();
  伊lKCjЦjmIh艾dI吉ЩИDZzU();
  uoT艾弗iEI屁SNLkXЛGД伊吉Ё();
  GLgIjwrj艾Ъ吉k艾吉BЁRkJB();
  ИZЖ吾S迪吉比ЧЛDFadNЫdLИc();
  pcVar3 = std::endl<char,std::char_traits<char>_>;
  this = std::operator<<<std::char_traits<char>_>
                   ((basic_ostream<char,std::char_traits<char>_> *)cout_exref,"Hello World");
  std::basic_ostream<char,struct_std::char_traits<char>_>::operator<<
            ((basic_ostream<char,struct_std::char_traits<char>_> *)this,pcVar3);
  _RTC_CheckEsp();
  iVar1 = 0;
  _RTC_CheckEsp();
  return iVar1;
}

Kod:
int __cdecl ИZЖ吾S迪吉比ЧЛDFadNЫdLИc(void)

{
  void *pvVar1;
  int iVar2;
  _RTC_framedesc *extraout_EDX;
  _RTC_framedesc *extraout_EDX_00;
  _RTC_framedesc *extraout_EDX_01;
  _RTC_framedesc *extraout_EDX_02;
  _RTC_framedesc *extraout_EDX_03;
  _RTC_framedesc *extraout_EDX_04;
  _RTC_framedesc *extraout_EDX_05;
  _RTC_framedesc *extraout_EDX_06;
  _RTC_framedesc *extraout_EDX_07;
  _RTC_framedesc *p_Var3;
  undefined4 *puVar4;
  int **in_FS_OFFSET;
  undefined4 local_f0 [29];
  int local_7c;
  undefined local_6d;
  char local_61;
  int local_58;
  int local_4c;
  basic_string<char,std::char_traits<char>,std::allocator<char>_> local_40;
  undefined local_19;
  uchar *local_14;
  int *local_10;
  undefined *puStack12;
  undefined4 local_8;
  
  local_8 = 0xffffffff;
  puStack12 = &LAB_00427ecd;
  local_10 = *in_FS_OFFSET;
  puVar4 = local_f0;
  for (iVar2 = 0x38; iVar2 != 0; iVar2 = iVar2 + -1) {
    *puVar4 = 0xcccccccc;
    puVar4 = puVar4 + 1;
  }
  local_14 = (uchar *)(__security_cookie ^ (uint)&stack0xfffffffc);
  *in_FS_OFFSET = (int *)&local_10;
                    /* static local (stored at 00415cec) <NoType> 
                       static local (stored at 00415ce0) <NoType> 
                       static local (stored at 00415cd8) <NoType> 
                       static local (stored at 00415cec) <NoType> 
                       static local (stored at 00415ce0) <NoType> 
                       static local (stored at 00415cd8) <NoType> */
  __CheckForDebuggerJustMyCode(local_14);
  iVar2 = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                    (0x37,0x939);
  local_19 = 200 < iVar2;
  iVar2 = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                    (0x2d6,0x24de);
  local_19 = 200 < iVar2;
  std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
  basic_string<char,std::char_traits<char>,std::allocator<char>_>(&local_40,"eph???JeJ???lyM??ckd");
  local_8 = 0;
  iVar2 = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                    (0x2d6,0x24de);
  local_19 = 200 < iVar2;
  local_4c = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                       (0x54,0x24b9);
  iVar2 = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                    (0x2d6,0x24de);
  local_19 = 200 < iVar2;
  if (local_4c == 0xf79) {
    local_58 = 0x19f7;
    iVar2 = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                      (0x2d6,0x24de);
    local_19 = 200 < iVar2;
    if (local_4c == 0xf79) {
      local_58 = local_58 + 1;
      iVar2 = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                        (0x45,0x1625);
      local_61 = 200 < iVar2;
      iVar2 = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                        (0x2d6,0x24de);
      local_19 = 200 < iVar2;
      if (local_4c == 0xf79) {
        local_58 = local_58 + 1;
        if (local_61 == '\x01') {
          iVar2 = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                            (0x46,0x421);
          local_6d = 200 < iVar2;
          iVar2 = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                            (0x2d6,0x24de);
          local_19 = 200 < iVar2;
          if (local_4c == 0xf79) {
            local_58 = local_58 + 1;
            if (local_61 == '\x01') {
              iVar2 = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                                (0x1d5,0x1ff4);
              local_6d = 200 < iVar2;
              local_7c = 0x1922;
              iVar2 = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                                (0x2d6,0x24de);
              local_19 = 200 < iVar2;
              if (local_4c == 0xf79) {
                local_58 = local_58 + 1;
                if (local_61 == '\x01') {
                  iVar2 = P屁Ш艾M艾ЬФUhG吉弗吉艾wY伊ЫШnSC屁伊艾A吉z弗Пw艾吾Qr吾m弗pЖcЭzB艾ЭПoИt艾艾ЁЖ吾弗t吾X艾z吉c屁Ж儿LqOz儿伊弗Jetj比JlЮbae迪艾ШЖUykФ屁吉伊Шb儿r  
                                    (0x1d5,0x1ff4);
                  local_6d = 200 < iVar2;
                  local_7c = local_7c + 1;
                  local_8 = 0xffffffff;
                  std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
                  ~basic_string<char,std::char_traits<char>,std::allocator<char>_>(&local_40);
                  pvVar1 = (void *)0x0;
                  p_Var3 = extraout_EDX_07;
                }
                else {
                  local_8 = 0xffffffff;
                  std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
                  ~basic_string<char,std::char_traits<char>,std::allocator<char>_>(&local_40);
                  pvVar1 = (void *)0x0;
                  p_Var3 = extraout_EDX_06;
                }
              }
              else {
                local_8 = 0xffffffff;
                std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
                ~basic_string<char,std::char_traits<char>,std::allocator<char>_>(&local_40);
                pvVar1 = (void *)0x1b56;
                p_Var3 = extraout_EDX_05;
              }
            }
            else {
              local_8 = 0xffffffff;
              std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
              ~basic_string<char,std::char_traits<char>,std::allocator<char>_>(&local_40);
              pvVar1 = (void *)0x0;
              p_Var3 = extraout_EDX_04;
            }
          }
          else {
            local_8 = 0xffffffff;
            std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
            ~basic_string<char,std::char_traits<char>,std::allocator<char>_>(&local_40);
            pvVar1 = (void *)0x1b56;
            p_Var3 = extraout_EDX_03;
          }
        }
        else {
          local_8 = 0xffffffff;
          std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
          ~basic_string<char,std::char_traits<char>,std::allocator<char>_>(&local_40);
          pvVar1 = (void *)0x0;
          p_Var3 = extraout_EDX_02;
        }
      }
      else {
        local_8 = 0xffffffff;
        std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
        ~basic_string<char,std::char_traits<char>,std::allocator<char>_>(&local_40);
        pvVar1 = (void *)0x1b56;
        p_Var3 = extraout_EDX_01;
      }
    }
    else {
      local_8 = 0xffffffff;
      std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
      ~basic_string<char,std::char_traits<char>,std::allocator<char>_>(&local_40);
      pvVar1 = (void *)0x1b56;
      p_Var3 = extraout_EDX_00;
    }
  }
  else {
    local_8 = 0xffffffff;
    std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
    ~basic_string<char,std::char_traits<char>,std::allocator<char>_>(&local_40);
    pvVar1 = (void *)0x1b56;
    p_Var3 = extraout_EDX;
  }
  _RTC_CheckStackVars(pvVar1,p_Var3);
  *in_FS_OFFSET = local_10;
  __security_check_cookie((uint)local_14 ^ (uint)&stack0xfffffffc);
  local_8 = 0x415cd4;
  _RTC_CheckEsp();
  return (int)pvVar1;
}

Screenshot
https://i.imgur.com/exyJXvQ.png

Om ni har några frågor får ni gärna ställa dom
Cya
Citera
2022-03-13, 10:18
  #2
Moderator
Pontiac-Garages avatar
Citat:
Ursprungligen postat av 0x56
Om ni har några frågor får ni gärna ställa dom

Ok, men vad ska diskuteras?
Citera
2022-03-13, 11:58
  #3
Medlem
Citat:
Ursprungligen postat av Pontiac-Garage
Ok, men vad ska diskuteras?
Fan vet jag, om någon har frågor kring koden och hur den fungerar?
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback