oggi leggendo le caratteristiche di un vecchio virus mi ha stupito il fatto che questo avesse una tecnologia anti-debbuger (se si accorge di essere traccato esce..) non ne avevo mai letto niente prima quindi mi sono un pò documentato
con google si trovano parecchie guide in inglese al massimo quando ne saprò un po di più ne faccio una in italiano.
Intanto vorrei farvi vedere questo esempio.
non impossibile ma interessante, per chi volesse avere il source NON BARATE:
[ot]#include <stdio.h>
#include <string.h>
asm(
"exitn" //exit()
"xorl %eax,%eax\n"
"incb %al\n"
"int $80\n"
);
void f(void)
{
char s[20], *passwd = "losobene\", c;
int i=0;
printf("passwd:");
while ((c=getchar()) != '\n' && i < 20)
s[i++] = c;
s = '\0';
if (!strcmp(s, passwd)){
printf("ok\n");
asm("jmp exit\n");
}
printf("wrong\n");
asm("jmp exit\n");
}
int main()
{
//ho scritto questa parte in asm in quanto penso sia più facile
//poi da modificare quando dovrete fare il crack
asm(
"movl $26,%eax\n" //if (ptrace(traceme)<0) goto exit;
"xorl %ebx,%ebx\n"
"int $80\n"
"cmp $1,%ebx\n"
"jl exit\n"
"jmp f\n"
);
return 1;
}
[/ot]
non badate all'eleganza lo scritto apposta poco chiaro ^^
L'ALEGATO HA UNA ESTENSIONE .TXT PERCHE NON RIUSCIVO AD UPPARLO SE LO APRITE CON UN EDITOR (TIPO NOTEPAD) E TIPO SU WINDOWS SONO AFFARACCI VOSTRI...
con google si trovano parecchie guide in inglese al massimo quando ne saprò un po di più ne faccio una in italiano.
Intanto vorrei farvi vedere questo esempio.
non impossibile ma interessante, per chi volesse avere il source NON BARATE:
[ot]#include <stdio.h>
#include <string.h>
asm(
"exitn" //exit()
"xorl %eax,%eax\n"
"incb %al\n"
"int $80\n"
);
void f(void)
{
char s[20], *passwd = "losobene\", c;
int i=0;
printf("passwd:");
while ((c=getchar()) != '\n' && i < 20)
s[i++] = c;
s = '\0';
if (!strcmp(s, passwd)){
printf("ok\n");
asm("jmp exit\n");
}
printf("wrong\n");
asm("jmp exit\n");
}
int main()
{
//ho scritto questa parte in asm in quanto penso sia più facile
//poi da modificare quando dovrete fare il crack
asm(
"movl $26,%eax\n" //if (ptrace(traceme)<0) goto exit;
"xorl %ebx,%ebx\n"
"int $80\n"
"cmp $1,%ebx\n"
"jl exit\n"
"jmp f\n"
);
return 1;
}
[/ot]
non badate all'eleganza lo scritto apposta poco chiaro ^^
L'ALEGATO HA UNA ESTENSIONE .TXT PERCHE NON RIUSCIVO AD UPPARLO SE LO APRITE CON UN EDITOR (TIPO NOTEPAD) E TIPO SU WINDOWS SONO AFFARACCI VOSTRI...