Jumat, 27 Januari 2017

Membuat Program Tidak Bisa Di-Kill Task Manager dengan LIBAK (Anti Kill Library)

Program firewall dan antivirus bukan hanya harus melindungi komputer klien dari virus. Itu saja masih belum cukup, ia harus bisa melindungi dirinya sendiri dari serangan virus itu sendiri. Kadang kala, virus jahil bisa mencoba membunuh proses antivirus sebelum si antivirus dapat membasminya.


LIBAK (Anti Kill Library) adalah shared library/dynamic link library yang baru saja dikembangkan oleh Komputoo untuk mengatasi permasalahan ini. Dengan sedikit bumbu rahasia, LIBAK dapat membantu program firewall anda dari serangan musuh.

LIBAK API
LIBAK sangat sederhana, namun handal, hanya ada 2 fungsi dan satu buah struktur data yang harus anda pahami untuk melindungi program anda.

PROTECTDATA Structure
Data ini berguna untuk menyimpan sesi proteksi yang telah dilakukan. Tidak penting untuk mengetahui isi struktur data ini, karena ini berkaitan dengan sistem kerja internal LIBAK.

typedef struct {
DWORD magic;
char oldtkprivs[0x1000];
} PROTECTDATA;

Protect() Function
Fungsi ini akan membuat program anda terlindungi dari pemberhentian paksa (kill), baik itu dari task manager ataupun dari metode lainnya.

BOOL Protect(PROTECTDATA *p);

Fungsi ini membutuhkan sebuah parameter berupa pointer ke PROTECTDATA yang sudah disediakan sebelumnya. Jika fungsi berhasil, akan dihasilkan return value selain 0. Begitu sebaliknya.

Unprotect() Function
Kebalikan dari fungsi Protect(), fungsi ini akan mengembalikan state program anda ke keadaan normal.

BOOL Unprotect(PROTECTDATA *p);

Parameter yang diperlukan adalah struktur ke PROTECTDATA yang sebelumnya sudah digunakan pada saat pemanggilan Protect(). Jika berhasil, nilai return value adalah selain 0.

EXAMPLE
Berikut contoh program sederhana yang mencoba mengimplemenasikan LIBAK API.

/** *
  * LIBAK demo
  * Build with : gcc test.c libak.dll -o test.exe
  * **/
#include <stdio.h>
#include <conio.h>
#include "libak.h"

PROTECTDATA pd;
int main(){
if( !Protect(&pd) ){
printf("Protect failed\n");
exit(0);
}
printf("Now kill me if you can!\n");
getch();
if( !Unprotect(&pd) ){
printf("Unprotect failed\n");
exit(0);
}
printf("Now you can kill me\n");
getch();
}



NOTES
  • Unprotect() HARUS dipanggil sebelum keluar program. Jika tidak, BSOD.
  • Untuk menggunakan LIBAK, program anda harus berjalan sebagai administrator.
  • LIBAK hanya tersedia untuk keperluan non-komersil, penggunaannya harus disertai dengan teks lisensi.
  • Untuk keperluan komersil dan distribusi selain dalam bentuk dynamic link library (misal static library yang di-embed bersama program), harap hubungi admin.
  • Versi non-komersil hanya menyediakan header dan contoh untuk C.
  • Versi non-komersil hanya tersedia untuk Windows 7/8/8.1/10;
DOWNLOAD
LIBAK 1.0 (Free)
Password: komputoo


Load disqus comments

0 comments