Gå til innhold

Hvilket program for å lage dette?


Anbefalte innlegg

Heisann!

 

Har noe C/C++ kode jeg vil gjerne ha laget program av.

Men jeg vet ikke helt hvordan jeg skal gjøre det, altså hvor jeg skal paste den. Jeg har Visual Studio, og startet et "MFC Application" under Visual C++, men det kom opp så forferdelig mye underdeler av programmet som:

6acd7ba97eb2a730cc3f4d28f905bdee.png

 

Så jeg aner ikke hvor jeg skal paste koden jeg har. Aner ikke om jeg bruker riktig prosjekttype (MFC Application) heller :p

 

Noen tips? :)

 

Takker for svar!

Endret av Lami
Lenke til kommentar
Videoannonse
Annonse

Hva gjør c/c++ koden din ? Skal den åpne vinduer ? Skal det kjøres ifra kommandolinje ?

 

Hvor er koden ifra ? Er du sikker på den er platformuavhengig evt. skal den være lagd for Windows ?

Er det bare en fil ? eller mange ?

 

MFC = Microsoft Foundation Classes og brukes av programmer som skal åpne windows vinduer. Og det ser ut som du har valgt at den skal lage et eksempel program.

 

Et prosjekt basert på "Win32 Console application" er antagelig mer hensiktsmessig å starte med.

Lenke til kommentar

Usikker :p

 

Her er koden.

#include <windows.h>
#include <iostream>
#include <conio.h>
using namespace std;
void readregistry();
char* spoofmac();
int main(int argc, char* argv[])
{
readregistry();
spoofmac();
}
char* spoofmac()
{
   char buffer[60];
   unsigned long size = sizeof(buffer);
   HKEY software;
   LPCTSTR location;
   char adapternum[10]="";
   char numbers[11]="0123456789";
   char editlocation[]="System\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002bE10318}\\0000";
   char macaddress[60];
   cout << "\n//\nPlease Enter number of Network Adapter to Spoof or type 'E' to Exit.\nE.g. 6\n\nNumber: ";
   cin >> adapternum;
   if (adapternum[0]=='E')
   {
    exit(0);
   }
   if (strlen(adapternum)==2)
   {
    editlocation[strlen(editlocation)-2]=adapternum[0];
    editlocation[strlen(editlocation)-1]=adapternum[1];
   }
   if (strlen(adapternum)==1)
   {
    editlocation[strlen(editlocation)-1]=adapternum[0];
   }
   if (strlen(adapternum)!=1 && strlen(adapternum)!=2)
   {
    cout << "Invalid Network Adapter Selected\n\n";
    exit(0);
   }
   cout << "Please enter the desired Spoofed Mac Address\nE.g. 02113A0D4D66\n\nNew Mac Address: ";
   cin >> macaddress;
   location = editlocation;
   strcpy(buffer,macaddress);
   size=sizeof(buffer);
   RegCreateKey(HKEY_LOCAL_MACHINE,location,&software);
   RegSetValueEx(software,"NetworkAddress",0,REG_SZ,(LPBYTE)buffer,size);
   RegCloseKey(software);
   cout << "\nMac Address Successfully Spoofed.\n\n";
   cout << "**\n";
   cout << "**Written by C code champ **\n";
   cout << "**\n";
   getch();
}
void readregistry ()
{
   char driver[60]="";
   char mac[60]="";
   char numbers[11]="0123456789";
   char editlocation[]="System\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002bE10318}\\0000";
   unsigned long driversize = sizeof(driver);
   unsigned long macsize = sizeof(mac);
   DWORD type;
   HKEY software;
   LPCTSTR location;
   int tenscount=0;
   int onescount=0;
   for (int x =0;x<=19; x+=1)
   {
    strcpy(driver,"");
    driversize=sizeof(driver);
    strcpy(mac,"");
    macsize=sizeof(mac);
    if (editlocation[strlen(editlocation)-1]=='9')
    {
	    tenscount+=1;
	    onescount=0;
	    editlocation[strlen(editlocation)-2]=numbers[tenscount];
    }
    editlocation[strlen(editlocation)-1]=numbers[onescount];
    location=editlocation;
    RegCreateKey(HKEY_LOCAL_MACHINE,location,&software);
    RegQueryValueEx(software,"DriverDesc",0,&type,(LPBYTE)driver,&driversize);
    RegQueryValueEx(software,"NetworkAddress",0,&type,(LPBYTE)mac,&macsize);
    RegCloseKey(software);
    cout << x << ": " << driver << "| Mac: " << mac << "\n";
    onescount+=1;
   }
}

 

Denne koden er for Mac address spoofing i Windows som leser nettverksadapterne og viser dem numerisk rekkefølge.

 

Hva tror du?

Lenke til kommentar

Tror dette er en simpel regedit, ettersom jeg ha utført den manuelt.

Spesiell grunn til at du har valgt Cpp til denne oppgaven? Kan vel også løses som en .reg-fil.

 

Ser ikke helt hva som skal løses, men antar at det er lettere valg for å spoofe MAC'en?

Lag en listbox for å velge hvilken nettverksadapter.

En tekstboks får å skrive inn ønsket MAC.

En knapp som feeder spoofmac-funksjonen med ønsket MAC (fra tekstboksen).

 

Alt dette er vel enkle ting du lett kan finne her;

http://bit.ly/TNekXT

Lenke til kommentar
Har noe C/C++ kode jeg vil gjerne ha laget program av.

Tror du forklarer deg litt dårlig og at det er GUI(graphical user interface) du mener.

Kan skive en rask demo,så ser du mere hvordan dette kan se ut.

Tar og skriver om første del som leser en registeroppføring,bruker Python/Wxpyhon da dette er mye raskere for meg enn og knote med MFC.

http://pastebin.com/n2H9akrj

Her et skjermblide så du slipper og kjøre koden.

macg.jpg

 

Som sakt bruker jeg her Wxpython og velger MultiChoiceDialog for valg av adapters,for C++ heter GUI verktøyet wxWidgets

De to andre store GUI vektøyene for C++ heter Qt og GTK+(gtkmm)

Dette er kryssplateform GUI verktøy som kan være lettere og jobbe med enn MFC.

Nå kan det hende at jeg bommet på hva du mente,da får du si ifra.

Endret av SNIPPSAT
Lenke til kommentar
  • 3 uker senere...

Det er link i posten min til pastebin der er alt jeg har skrevet,og du ser resultatene på skjermbildet.

Jeg skrev om første del av koden som en demo hvordan dette kunne se ut.

 

Det er jo opp til og skrive dette ferdig,jeg vet ikke en gang om dette er din kode.

Det er kanskje noe kode du har funnet på nettet som du ønsker og lage GUI til?

Endret av SNIPPSAT
Lenke til kommentar
  • 3 uker senere...
Gjest Gjest slettet-ld9eg7s96q

Takker for svar folkens.

 

Prøvde wxWidgets men skjønte ikke mye. Har lastet prosjektene inn i Visual Basic, men så sier det stopp :p

 

Kunne du, SNIPPSAT, lastet opp prosjektet for meg så kunne jeg sett? :)

 

Glem MFC og glem WxWidgets (MFC er forferdelig utdatert, WxWindows har vel ikke akkurat fått noen oppmerksomhet på en stund det heller) hvis du vil lære deg GUI programmering i C++. Selv om MFC er forferdelig rotete og innfløkt bruker begge rammeverkene events for å styre programmets oppførsel og jeg synes personlig dette er en forferdelig tungvint måte å programmere i, spesielt i C++

 

Jeg anbefaler deg heller å se på QT, mye enklere å programmere. Istedenfor events bruker QT et signal slot system, jeg synes nå det er hundre ganger enklere å forholde seg til og det er mye enklere å lære.

 

QT har en egen klasse som du kan bruke for å manipulere registeret og avhengig av om du kompilerer dette for Windows eller en annen plattform (eks Linux) fungerer dette på begge plattformer (klassen lager en egen setting fil under ~/ hvis man kjører det på linux iirc). Jeg vet også at WxWindows legger opp til plattform uavhengighet men jeg vet ikke om det er like trivielt å manipulere registeret med det og om dette fungerer like smertefritt. Det er en del år siden jeg programmerte med WxWindows

Lenke til kommentar
WxWindows har vel ikke akkurat fått noen oppmerksomhet på en stund det heller

Stemmer vel ikke helt både DropBox og og Google Drive bruker WxWindows(begge er skrevet i Wxpython).

https://support.goog...&answer=1716931

http://wxpython.org/...tegory/toocool/

 

Jeg anbefaler deg heller å se på QT, mye enklere å programmere. Istedenfor events bruker QT et signal slot system, jeg synes nå det er hundre ganger enklere å forholde seg til og det er mye enklere å lære.

Ja QT er bra har brukt det en god del, da igjennom PyQt eller berede Pyside(som har LGPL lisens For QT)

Vil ikke si at QT er noe lettere og lære seg en WxWindows.

 

Nå er nok denne oppgaven er litt håpløst for @Lami,når utgangspunktet er et C++ program han/hun har funnet på nettet og visste ikke at det kalles GUI før denne posten.

Lenke til kommentar
Gjest Gjest slettet-ld9eg7s96q
Vil ikke si at QT er noe lettere og lære seg en WxWindows.

 

Nå er nok denne oppgaven er litt håpløst for @Lami,når utgangspunktet er et C++ program han/hun har funnet på nettet og visste ikke at det kalles GUI før denne posten.

 

Jeg vil påstå at QT er mye lettere å lære seg enn WxWindows hvis man absolutt skal bruke C++ til GUI programmering. WxWindows er noe likt MFC og det er etter hva jeg kan huske også tanken, da det var meningen opprinnelig å gjøre overgangen lett for programmerere som kom fra det horrible helvete som er MFC. IMO er også QT mye bedre dokumentert. Tredjeparts WxWidgets bindinger blir forsåvidt et annet tema.

 

Det er i alle fall mitt råd hvis OP ønsker å bevege seg ut i dette terrenget, men det er jo selvfølgelig en forutsetning at han lærer seg grunnleggende programmering før han gir seg i kast med dette. Da er ikke python et dumt veivalg.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...