2022-03-13, 09:51
  #1
Medlem
Hej!
Inget mrkvrdigt med detta inlgg, men fortfarande en kul grej.
Jag jobbbade p ett "crack-me" program och valde att skapa en junkcode generator fr att komplicera det lite fr gonen.

Planerar att slppa programmet nr jag r helt klar.

Varfr r mitt program unikt? Varfr inte anvnda ngot som redan finns?
Mitt program anvnder sig av olika mnster inom programmering fr att frvirra "decompilers" och producera komplicerad output fr sdanna.

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 ngra frgor fr ni grna stlla dom
Cya
Citera
2022-03-13, 10:18
  #2
Moderator
Pontiac-Garages avatar
Citat:
Ursprungligen postat av 0x56
Om ni har ngra frgor fr ni grna stlla 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 ngon har frgor kring koden och hur den fungerar?
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in