Oke langsung aja kita mulai :
Program ini untuk yg kena virus partisi yang bandel (tidak hilang meskipun di Fdisk/Format) atau Smart Stealth Virus
Biasanya Virus Harddisk bersarang di SCS (Side,Cylinder,Sector) ini :
Posisi partisi (SCS 0,0,1) <–Virus Partisi (Jump Code)
Boot Sector (SCS 1,0,1) <–Virus Boot Sector (Jump Code)
OS area (SCS 0,0,2 s/d SCS 0,0,63) <– Virus Body (TSR Body)
Program ini betul2 menghapus partisi 100%, ini buat virus HD yg sangat susah dihilangkan (meskipun sudah di FDISK & FORMAT), selain itu program ini juga bisa mendeteksi adanya virus yg belum terdeteksi oleh Anti Viros, dan juga bisa menghilangkan partisi dual boot Linux & Windows, Cara pakai :
Compile dengan C++ (EXE/COM files), jadikan HD pasien sebagai C: (master), gabung program ini dengan diskette DOS (clean DOS), Boot PC pake disket DOS tsb, trus panggil exe program ini, pilih hapus partisi, setelah terhapus boot ulang dan gunakan FDISK untuk create partisi atau bootable CD-ROM untuk clean install.
Setelah clean install (udah ada systemnya), taruh program ini di C: panggil program ini kembali dan pilih ‘Simpan Partisi dan Boot Sector’, dengan demikian u bisa check HD anda dengan mengcompare data partisi dan boot sector dengan DAT yg sudah disimpan sehingga adanya perubahan 1 character-pun akan terdeteksi oleh program ini.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#define PARTITION 0
#define BOOTRECORD 1
unsigned char dbuf[512];unsigned char comp[512];char ch,cc;FILE *stream;
int delpar(void);int testdisk(void);
int saveall(void);int detected(void);
int compare(void);int cleanarea(void);
int diskread(int head);int diskwrite(int head);
int cleans(int sect);int buffersave(char *files);
int bufferread(char *files);
int main(void)
{printf(“\nDeathBrain Partition Protector & Recover Ver 0.0A.\n”);
printf(“(c) Copyright DeathBrain 2002.\n\n”);
printf(“[1]Simpan Partisi & Boot Sector.\n”);
printf(“[2]Samakan Partition & Boot Sector dengan DAT.\n”);
printf(“[3]Bersihkan OS Area Sector 0-0-2 to 0-0-63.\n”);
printf(“[4]Hapus semua partisi.\n”);
printf(“[5]Udahan ach…\n\n”);ch = getch();
switch(ch) {
case ’1′:saveall();break;
case ’2′:detected();break;
case ’3′:cleanarea();break;
case ’4′:delpar();break;
case ’5′:printf(“\nSelesai nyong…thx\n”);break;}
return 0;}
int delpar(void)
{int i;
printf(“\nGile luhhh serius..hapus partisi low semua ??? [y/n] “);ch = getch();
if(ch==’y'||ch==’Y')
{for(i=0;i<512;i++) {dbuf[i]=NULL;} cleans(PARTITION);
printf(“\nSemua partisi low dah kehapos, boot ulang PC low.\n”);
printf(“dan pake FDISK untuk bikin baru\n”); }else{printf(“\nBatal ni yee.\n”);}
return 0;}
int cleanarea(void)
{int i,j;
for(i=0;i<512;i++) {dbuf[i]=NULL;}
for(j=2;j<63;j++){cleans(j);}
printf(“\nOS area low sudah dibersihkan.\n”);
return 0;}
int recpar(void)
{bufferread(“PAR.DAT”);
diskwrite(PARTITION); printf(“\nPartisi low udeh diperbaharuin…\n”);
return 0;}
int recbot(void)
{bufferread(“BOOT.DAT”);
diskwrite(BOOTRECORD); printf(“\nBoot Sector low udeh diperbaharuin…\n”);
return 0;}
int saveall(void)
{diskread(PARTITION);buffersave(“PART.DAT”);
diskread(BOOTRECORD);buffersave(“BOOT.DAT”);
printf(“Partition & Boot Sector ude kesimpen\n”);
printf(“nama file PAR.DAT & BOOT.DAT\n”);
return 0;}
int detected(void)
{if (compare()==0)
{printf(“Data Partisi dan Boot Sector ente masih sama dengan DAT…\n”);}
if (compare()==1)
{printf(“Hah…partisi low berubah mann… !!!\n”);
printf(“Restore [y/n] “);ch = getch();
if(ch==’y'||ch==’Y')
{recpar();}else{printf(“Partisi tidak diperbaharui !!!\n”);}
}
if (compare()==2)
{printf(“Hah…Boot Sector ente berubah mann…!!!\n”);
printf(“Restore [y/n] “);ch = getch();
if(ch==’y'||ch==’Y')
{recbot();}else{printf(“Boot sector tidak diperbaharui..!!!\n”);}
} return 0;}
int compare(void)
{int i;
bufferread(“PART.DAT”);diskread(PARTITION);
for(i=0;i<512;i++)
{ if(dbuf[i]!=comp[i])
{return 1;}}
bufferread(“BOOT.DAT”);diskread(BOOTRECORD);
for(i=0;i<512;i++)
{ if(dbuf[i]!=comp[i])
{return 2;}}
return 0;}
int diskread(int head)
{struct diskinfo_t dinfo;int result;
dinfo.drive = 0×80;
dinfo.head = head;
dinfo.track = 0;
dinfo.sector = 1;
dinfo.nsectors = 1;
dinfo.buffer = dbuf;
result = _bios_disk(_DISK_READ, &dinfo);
if ((result & 0xff00) == 0)
{ }
else printf(“Gwa gak bisa baca drive C low nyong…, status = 0x%02x\n”, result);
return 0;}
int diskwrite(int head)
{struct diskinfo_t dinfo;int result;
dinfo.drive = 0×80;
dinfo.head = head;
dinfo.track = 0;
dinfo.sector = 1;
dinfo.nsectors = 1;
dinfo.buffer = comp;
result = _bios_disk(_DISK_WRITE, &dinfo);
if ((result & 0xff00) == 0)
{ }
else printf(“Gwa gak bisa nulis ke drive C low nyong…., status = 0x%02x\n”, result);
return 0;}
int cleans(int sect)
{struct diskinfo_t dinfo;int result;
dinfo.drive = 0×80;
dinfo.head = 0;
dinfo.track = 0;
dinfo.sector = sect;
dinfo.nsectors = 1;
dinfo.buffer = dbuf;
result = _bios_disk(_DISK_WRITE, &dinfo);
if ((result & 0xff00) == 0)
{ }
else printf(“Gwa gak bisa nulis ke drive C low, status = 0x%02x\n”, result);
return 0;}
int buffersave(char *files)
{if ((stream = fopen(files, “wb+”))== NULL)
{fprintf(stderr, “Gwa gak bisa bikin file nyong…\n”);
return 1;}
fwrite(dbuf,sizeof(dbuf), 1, stream);fclose(stream);
return 0;}
int bufferread(char *files)
{if ((stream = fopen(files, “rb+”)) == NULL)
{fprintf(stderr, “Gwa gak bisa baca file nyong…\n”);
return 1;}
fread(comp,sizeof(comp), 1, stream);fclose(stream);
return 0;}
**************
Selamat mencoba !!!
Semoga artikel ini bermanfaat..............................
************************************************************
Terima Kasih Pak Atas Infonya ..
BalasPadam