Посл.ответ |
Сообщение |
Ранг: 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
Я понял что мнехотят помоч.
Но я не гуру - не понял, что с этим делать?
| Сообщение посчитали полезным: |