| Посл.ответ | 
Сообщение | 
 Ранг: 7.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 26 октября 2005 12:20   · Личное сообщение ·  #1 
я новичек в реверсинге и столкнулся с программой писаной на foxpro.
 Декомпилил. Нашел то место в программе где надо править.
 Вопрос как ее битхаком сломать? Среды просто нет. пере собрать не могу.
 Или просче для нее кейген написать. Провера вроде как несложная.
   | Сообщение посчитали полезным:  | 
 | 
 Ранг: 45.1 (посетитель) Активность: 0.03↘0 Статус: Участник 
 
 | 
Создано: 26 октября 2005 13:16   · Личное сообщение ·  #2 
т.к. FoxPro интерпритатор то там VM - а это уже геморно 
 Если ты декомпильнул и знаешь где проверка происходит так пиши кнейген
 А вообще ссылку хорошо-бы, может там всё просто ...
   | Сообщение посчитали полезным:  | 
 Ранг: 7.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 26 октября 2005 19:18   · Личное сообщение ·  #3 
Спасибо за ответ. Буду пробовать писать keygen.
 Ссылку не дал намеренно. Личные счеты. ;)
 Если будет совсем туго тогда пришлью.
   | Сообщение посчитали полезным:  | 
 Ранг: 7.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 18 ноября 2005 16:00   · Личное сообщение ·  #4 
Невышло   . 
 Прошу помощи.
 Вобщем незнаю либо я в математике слаб либо либо лыжи не едут   
webfile.ru/640658
 webfile.ru/640687
 webfile.ru/640712
 webfile.ru/640734
   | Сообщение посчитали полезным:  | 
 Ранг: 75.0 (постоянный) Активность: 0.04↘0 Статус: Участник 
 
 | 
Создано: 18 ноября 2005 18:18   · Личное сообщение ·  #5 
xoy
файл не найден webfile.ru/640712
   | Сообщение посчитали полезным:   | 
 Ранг: 6.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 20 ноября 2005 19:36   · Личное сообщение ·  #6 
xoy
Какие проблемы - CORSO 5.2 - покажет тебе все содержимое, также можешь поменять байтики и сохранить. Если не сможешь найти - пиши - вышлю.
   | Сообщение посчитали полезным:   | 
 Ранг: 7.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 23 ноября 2005 13:05   · Личное сообщение ·  #7 
От линк на прогу
 s37.yousendit.com/d.aspx?id=0L9U628JVO10D2Y0ORWBMAHQMR
 попробовал я corso ну что то он не показывает комманды фокса в нормальном русском языке
 а я не понимать на языке для виртуальной машины фохпро
 или опять я что-то нетак сделал ?
   | Сообщение посчитали полезным:  | 
 Ранг: 6.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 23 ноября 2005 21:58   · Личное сообщение ·  #8 
Я лично ковырялся с ФоксПро и скажу тебе честно - лучшее средство, ReFox 9 - меняешь что надо и обратно компилишь, лучше купи диск с Фоксом - проще будет в 100 раз.
   | Сообщение посчитали полезным:  | 
 Ранг: 7.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 12 декабря 2005 12:02   · Личное сообщение ·  #9 
люди купил се среду
 спомощю refox декомпельнул main.fpx 
 отредактировал что надо
 как теперь его запихнуть назат в в экзешник.
 полность декомпельнуть и собрать снова не удалось
 refox всетоки дастает из exe не все   
  | Сообщение посчитали полезным:  | 
 Ранг: 160.1 (ветеран) Активность: 0.07↘0 Статус: Участник 
 
 | 
Создано: 12 декабря 2005 12:32   · Личное сообщение ·  #10 
фоксовски exe - это контейнер с откомпиленными модулями fxp/scp а также таблицы, иконки, картинки и прочее. Если ты сумел пересобрать main.fxp то надо разложить основной exe на кусочки, заменить нужный и собрать все назад.
   | Сообщение посчитали полезным:  | 
 Ранг: 7.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 12 декабря 2005 17:30   · Личное сообщение ·  #11 
да и посредстом чего?
   | Сообщение посчитали полезным:  | 
 Ранг: 160.1 (ветеран) Активность: 0.07↘0 Статус: Участник 
 
 | 
Создано: 13 декабря 2005 01:15   · Личное сообщение ·  #12 
/dev/head и /dev/hands вестимо
 
 void __fastcall TForm2::SplitEXEClick(TObject *Sender)
 {
   int in;
   AnsiString name="Split", tm;
   SetCurrentDir(Target->Text);
   if( (in=FileOpen(Src->Text, fmOpenRead)) == -1 )
   {
     Application->MessageBox("Can't open source file",Form2->Caption.c_str(),MB_OK | MB_ICONERROR);
     return;
   }
   FileSeek(in,0,2); // seek at the end
   inEXE ie;
   ie.totalLen=1;
   int i=0,out;
   FileSeek(in,-(int)sizeof(inEXE),1);
   while(ie.totalLen>0)
   {
     i++;
     FileRead(in,&ie,sizeof(inEXE));
     if( ie.totalLen>0 )
     {
       FileSeek(in,-(int)ie.totalLen,1);
       int dataSize=ie.totalLen-sizeof(inEXE);
       unsigned char *buf = new unsigned char [dataSize];
       FileRead(in,buf,dataSize);
       tm=name+AnsiString(i)+AnsiString(".dat");
       if( (out=FileCreate(tm)) == -1 )
       {
         delete buf;
         FileClose(in);
         Application->MessageBox("Can't open destination file",Form2->Caption.c_str(),MB_OK | MB_ICONERROR);
         return;
       }
       FileWrite(out,buf,dataSize);
       FileClose(out);
       delete buf;
       FileSeek(in,-(int)ie.totalLen,1);
     }
   }
   FileClose(in);
   Application->MessageBox("Splitting done",Form2->Caption.c_str(),MB_OK | MB_ICONINFORMATION);
 }
 
  | Сообщение посчитали полезным:  | 
 Ранг: 160.1 (ветеран) Активность: 0.07↘0 Статус: Участник 
 
 | 
Создано: 13 декабря 2005 01:15   · Личное сообщение ·  #13 
 void __fastcall TForm2::SplitAPPClick(TObject *Sender)
 {
   int in, out;
   SetCurrentDir(Target->Text);
   if( (in=FileOpen(Src->Text, fmOpenRead)) == -1 )
   {
     Application->MessageBox("Can't open source file",Form2->Caption.c_str(),MB_OK | MB_ICONERROR);
     return;
   }
   header6 hdr;
   FileRead(in, &hdr, sizeof(hdr) );
   int cs=Tools->checksum((unsigned char *)&hdr, sizeof(hdr)-4) & 0xFFFF;
   if( hdr.checksum != cs )
     Application->MessageBox("Wrong header checksum",Form2->Caption.c_str(),MB_OK | MB_ICONINFORMATION);
   FileSeek(in, __int64(hdr.nameOffset), 0);
   byte *names = new byte[hdr.nameLen];
   FileRead(in, names, hdr.nameLen);
   tbl6 *tbl = new tbl6[hdr.tableSize19h];
   FileSeek(in, __int64(hdr.tableOffset), 0);
   FileRead(in, tbl, hdr.tableSize19h*sizeof(tbl6));
   Text->Items->Clear();
   for( int i=0; i<hdr.tableSize19h; i++ )
   {
     AnsiString type=" ";
     switch(tbl[i].type)
     {
       case 0:
         type+="FXP";
         break;
       case 1:
         type+="??? 1";
         break;
       case 2:
         type+="??? 2";
         break;
       case 3:
         type+="VCT, FRT, SCT";
         break;
       case 4:
         type+="??? 4";
         break;
       case 5:
         type+="??? 5";
         break;
       case 6:
         type+="OTHER";
         break;
       case 7:
         type+="??? 7";
         break;
       case 8:
         type+="VCX";
         break;
       case 9:
         type+="SCX";
         break;
       case 10:
         type+="FRX";
         break;
       default:
         type+=" =uknown= ";
         break;
     }
     AnsiString name, path="";
     char *ptr;
     ptr = names+tbl[i].nameOffset;
     name = AnsiString(ptr);         // can be incorrect !!!
     if( tbl[i].pathOffset )
     {
       ptr = names+tbl[i].pathOffset;
       path = AnsiString(ptr);
     }
     Text->Items->Add(path+name+type);
     if( (out=FileCreate(name)) != -1 )
     {
       int len=tbl[i].nextPos-tbl[i].filePos;
       byte *buf = new byte[len];
       FileSeek(in, __int64(tbl[i].filePos), 0);
       FileRead(in, buf, len);
       FileWrite(out, buf, len);
       FileClose(out);
       delete buf;
     }
   }
   FileClose(in);
   delete names, tbl;
 }
 
ну и так далее...
   | Сообщение посчитали полезным:   | 
 Ранг: 7.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 14 декабря 2005 09:28   · Личное сообщение ·  #14 
Я понял что мнехотят помоч.
 Но я не гуру - не понял, что с этим делать?
   | Сообщение посчитали полезным:  |