Сейчас на форуме: tyns777 (+5 невидимых) |
![]() |
eXeL@B —› Программирование —› Fatal Exit :) |
Посл.ответ | Сообщение |
|
Создано: 29 сентября 2007 01:06 · Личное сообщение · #1 Пишу криптор ![]() набросал следующий антидебаг код (c) ap0x function GetAntiDebugCode():string; begin result:=#$0F#$31; //rdtsc result:=result+#$31#$C9; //xor ecx,eax result:=result+#$01#$C1; //add ecx,eax result:=result+#$0F#$31; //rdtsc result:=result+#$29#$C8; //sub eax,ecx result:=result+#$3D#$FF#$0F#$00#$00; //cmp eax,0FFF result:=result+#$73#$05; // jnb $+5 result:=result+#$E8#$01#$00#$00#$00; //call +$6 result:=result+#$C3; //ret end; тестит время выполнения rdtsc если не равно 0FFFh то делает прыжок $+5 если равно то call через ret. Все работает нормально ![]() ![]() Если ставлю это в начале проги то все ок,а если где нить между декрипторами секций,то несрабатывает понимаю то что все ок,но ret вовращаеться только из этой процедуры,вот возникает вопрос как завершить программу без использования апи фунций ![]() ![]() |
|
Создано: 29 сентября 2007 06:39 · Личное сообщение · #2 |
|
Создано: 29 сентября 2007 06:50 · Личное сообщение · #3 |
|
Создано: 29 сентября 2007 10:24 · Личное сообщение · #4 |
|
Создано: 29 сентября 2007 11:50 · Личное сообщение · #5 Zloy пишет: function GetAntiDebugCode():string; begin result:=#$0F#$31; //rdtsc result:=result+#$31#$C9; //xor ecx,eax result:=result+#$01#$C1; //add ecx,eax result:=result+#$0F#$31; //rdtsc result:=result+#$29#$C8; //sub eax,ecx result:=result+#$3D#$FF#$0F#$00#$00; //cmp eax,0FFF result:=result+#$73#$05; // jnb $+5 result:=result+#$E8#$01#$00#$00#$00; //call +$6 result:=result+#$C3; //ret end; Что это?? ----- Security through obscurity is just an illusion ![]() |
|
Создано: 29 сентября 2007 12:30 · Личное сообщение · #6 |
|
Создано: 29 сентября 2007 15:46 · Поправил: Zloy · Личное сообщение · #7 |
|
Создано: 29 сентября 2007 17:23 · Личное сообщение · #8 |
|
Создано: 29 сентября 2007 20:04 · Личное сообщение · #9 Zloy Отреверси всю TLS в запротекченом файле протектором Elemental Protector by Smon (последней версии), там копия того, что ты пытаешься реализовать и то что ты хочешь как раз падение проги без API, большинство anti-debug вариантов в одном флаконе, короче много почерпнешь для себя как правильно делается, а распакуешь его файл, он тебе сам прот подарит ;) Все равно вы вдвоем одинаковый кодес с rdtsc откуда-то скопипастили, мода чтоли сейчас такая … PE_Kill Да ладно, чела понять и простить Вот реальный кодес для ЛОЛА int rescale(int x){ asm("test %%eax,%%eax\n\t" "pushl %%eax\n\t" "jz rescale_R\n\t" "fldlg2\n\t" "fildl (%%esp)\n\t" "fyl2x\n\t" "fldl (_scale)\n\t" "fmulp %%st,%%st(1)\n\t" "fistpl (%%esp)\n\t" "rescale_R:\n\t" "popl %%eax" : "=a" (x) : "a" (x) ); return x; } int main() { printf("test\n"); asm("movl $10, %eax\n\t" "addl $15, %eax\n\t"); return 0; } Самое интересное как до такого додумаццо надо и еще заставить и научить нешарящий народ вступать и компилировать, реально через жопу нарушая все представления о asm вставках! Поддержка этого клона компилятора СИ была прекращена, еще хрен знает когда, но его досихпор еще юзают… ЛОЛ! ![]() |
|
Создано: 30 сентября 2007 11:33 · Личное сообщение · #10 Prince[ART] пишет: а распакуешь его файл С его знаниями вряд ли ![]() Prince[ART] пишет: одинаковый кодес с rdtsc откуда-то скопипастили Неа, такого rdtsc как у него, у меня нет ![]() Zloy в топике на васме, указанном Flint - довольно интересный способ (тоже с rdtsc), да еще и с исходниками ![]() ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels ![]() |
|
Создано: 01 октября 2007 09:13 · Личное сообщение · #11 Smon пишет: Неа, такого rdtsc как у него гы, а что тут скрывать вот так выглядит тот участок кода, про который я ТопикСтартеру писал зачем его насильно заставлять, пусть он сам для себя решит воспользоваться готовым, отлаженным и проверенным на нескольких машинах/ОС кодесом ![]() /* Source UltimatumSmona[RIP] - 0x2014 */ #define RDTSC __asm _emit 0x0F __asm _emit 0x31 __asm { RDTSC mov ebx,eax mov ecx,edx RDTSC sub eax,ebx sbb edx,ecx RDTSC add eax,ebx add edx,ecx RDTSC sub eax,ebx sbb edx,ecx test edx,edx jnz deCryptoEPjmp } //end __asm {...} //Get0xCC... deCryptoEPjmp: {...} //FatalExit... //----------------------[†Private†]---- ![]() |
|
Создано: 03 октября 2007 07:47 · Личное сообщение · #12 |
|
Создано: 03 октября 2007 08:48 · Личное сообщение · #13 PE_Kill Ага, тут http://exelab.ru/f/action=vthread&forum=1&topic=7634&page= 4 ![]() ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels ![]() |
|
Создано: 03 октября 2007 19:28 · Личное сообщение · #14 |
|
Создано: 03 октября 2007 19:44 · Личное сообщение · #15 |
![]() |
eXeL@B —› Программирование —› Fatal Exit :) |