|
|
|
|
|
|
Krümelmonster
Registrierungsdatum: Mar 2006
Ort: Sesamstraße
Beiträge: 404
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Danke für eure Hilfe , ich habs jetz so halbwegs richtig !
Bis auf die Ecken funktioniert alles ! (Falls noch jemand Ideen hätte wie ich das lösen könnte , PN)
Nochmals fettes thx @ all of you !
lg Hofi
Geändert von Hofi-1992 (23. 12. 2007 um 13:37 Uhr).
|
23. 12. 2007, 12:11
|
#76
|
|
Fuck-o
Registrierungsdatum: Feb 2007
Ort: Auf dem String
Beiträge: 332
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Hi,
ich habe seit gestern ein C++ Buch für Anfänger vom Markt+Technik Verlag. Mein Problem fängt damit an das sich das DosFenster immer wieder schließt, ziemlich schnell. Ich schreibe mein Problem hier rein. Weil es bestimmt nix aussergewöhnliches ist und ich die Sufu schon benutzt hab.
Mein Compiler ist Bloodshed Dev-C++, mein Betriebssystem Vista 64bit.
Code:
#include <iostream.h>
//Funktion DemonstrationFunction
//gibt eine Meldung aus
void DemonstrationFunction()
{
cout << "In DemonstrationFunction\n";
}
//Funktion main - gibt eine Meldung aus, ruft
//dann DemonstrationFunction auf, gibt danach
//eine zweite Meldung aus.
int main()
{
cout << "In main\n";
DemonstrationFunction();
cout << "Zurueck in main\n";
return 0;
}
Wenn mir jemand helfen kann Danke! Vielleicht muss ich was am Compiler ändern.
Der Compiler spuckt auch den Fehler aus;
Code:
32:2 C:\Dev-Cpp\include\c++\3.4.2\backward\backward_warning.h #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
|
03. 01. 2008, 15:23
|
#77
|
|
Mitglied
Registrierungsdatum: Feb 2007
Beiträge: 378
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Hallo allerseits,
ich habe ein kleines Problem mit C. Und zwar habe ich keine Ahnung davon... Ich kann zwar C# GUI zeugs und so, aber dieses C Konsolenprogramm kann ich nicht Compilen und ich weiß nicht warum... es ist ein Code der mir mein Steam-Passwort wiederherstellt...
Code:
/*
Copyright 2005,2006,2007 Luigi Auriemma
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
http://www.gnu.org/licenses/gpl.txt
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <windows.h>
#include <sys/stat.h>
#define VER "0.1.1"
#define FIND "Phrase" "\x01\x50"
#define STEAMDLL "STEAM.DLL"
#define STEAMDLL_OFFSET 0x252397
uint8_t *steampwd(uint8_t *pwdenc);
uint8_t *fd_read(uint8_t *name, int *fdlen);
uint8_t *find_data(uint8_t *buff, int buffsz, uint8_t *str);
void wait_exit(int ret);
void std_err(void);
int firsttime = 1;
int main(int argc, char *argv[]) {
uint32_t len;
int fdsize;
uint16_t nlen;
uint8_t *fdbuff,
*fdnext,
*phrase,
*pwdenc,
*pwd,
*p;
setbuf(stdout, NULL);
fputs("\n"
"Steam password decoder "VER"\n"
"by Luigi Auriemma\n"
"e-mail: aluigi@autistici.org\n"
"web: aluigi.org\n"
"\n", stdout);
if(argc < 2) {
printf("\n"
"Usage: %s <ClientRegistry.blob/password>\n"
"\n"
" NOTE: this password recovery tool works ONLY on the same computer in which\n"
" was located the ClientRegistry.blob file!\n"
"\n", argv[0]);
wait_exit(1);
}
fdbuff = fd_read(argv[1], &fdsize);
fdnext = fdbuff;
redo:
if(fdnext) {
phrase = find_data(fdnext, fdsize, FIND);
if(!phrase) {
if(!firsttime) goto quit;
printf("\n"
"- Password not found, probably you have not saved it or have disabled the\n"
" storing of the local account informations through the Settings menu of Steam\n");
wait_exit(1);
}
p = phrase; p += 30;
nlen = *(uint16_t *)p; p += 2;
len = *(uint32_t *)p; p += 4 + nlen;
p[len] = 0;
pwdenc = p;
} else {
pwdenc = argv[1];
}
printf("\nEncoded: %s\n", pwdenc);
pwd = steampwd(pwdenc);
printf("\nPassword: %s\n", pwd);
free(pwd);
if(fdbuff) {
firsttime = 0;
fdsize -= (pwdenc - fdnext);
fdnext = pwdenc;
goto redo;
}
quit:
if(fdbuff) free(fdbuff);
wait_exit(0);
return(0);
}
uint8_t *steampwd(uint8_t *pwdenc) {
HINSTANCE hLib;
static uint8_t *pwd;
int (*steam_dll_pwd)(const uint8_t *phrase, const int len, const void *ps);
struct {
uint32_t boh1; // 0
uint8_t *pass; // password
uint32_t boh2; // 0
uint32_t boh3; // 0
uint32_t boh4; // 0
uint32_t passlen; // length of the password
uint32_t boh5; // length of the binary encoded password?
uint8_t boh6[40]; // needed with newer steam.dll files
} steam_pwd;
if(firsttime) printf("\n- load the local %s file\n", STEAMDLL);
hLib = LoadLibrary(STEAMDLL);
if(!hLib) std_err();
steam_dll_pwd = (void *)hLib + STEAMDLL_OFFSET;
memset(&steam_pwd, 0, sizeof(steam_pwd));
if(firsttime) printf("\n"
"NOTE: now if the tool crashes means the password cannot be recovered since the\n"
" ClientRegistry.blob file has not been created on this computer (Steam\n"
" uses a ProductID based key).\n"
" Remember that you MUST use the STEAM.DLL file located in the steampwd\n"
" package (which is the original dll of some versions ago) or is not\n"
" possible to recover the password!\n");
steam_dll_pwd(pwdenc, strlen(pwdenc), &steam_pwd);
pwd = strdup(steam_pwd.pass);
FreeLibrary(hLib);
return(pwd);
}
uint8_t *fd_read(uint8_t *name, int *fdlen) {
struct stat xstat;
FILE *fd;
uint8_t *buff;
printf("- open file %s\n", name);
fd = fopen(name, "rb");
if(!fd) {
perror("\nAlert");
printf("- I handle it as an encoded password\n");
return(NULL);
}
fstat(fileno(fd), &xstat);
buff = malloc(xstat.st_size);
if(!buff) std_err();
fread(buff, xstat.st_size, 1, fd);
fclose(fd);
*fdlen = xstat.st_size;
return(buff);
}
uint8_t *find_data(uint8_t *buff, int buffsz, uint8_t *str) {
int strsz;
uint8_t *limit;
strsz = strlen(str);
limit = buff + buffsz - strsz;
for(; buff <= limit; buff++) {
if(!memcmp(buff, str, strsz)) return(buff);
}
return(NULL);
}
void wait_exit(int ret) {
printf("\n Press RETURN to exit\n");
fgetc(stdin);
exit(ret);
}
void std_err(void) {
perror("\nError");
wait_exit(1);
}
Wie gesagt, der Button um das Teil zu Compilen bleibt deaktiviert. Ich benutze MS Visual Studio und habe nur die datei "steampwd.c"
|
03. 01. 2008, 16:12
|
#78
|
|
Greenkeeper
Registrierungsdatum: Jul 2007
Beiträge: 60
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
@breed1023
es ist nicht die beste möglichkeit, aber es geht auch mit
|
03. 01. 2008, 16:17
|
#79
|
|
Fuck-o
Registrierungsdatum: Feb 2007
Ort: Auf dem String
Beiträge: 332
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Aber das muss ich ja vor der } einfügen. Nun ist es immer noch nicht gegangen. Kann es vllt. eine Compiler einstellung sein?
|
03. 01. 2008, 16:22
|
#80
|
|
...
Registrierungsdatum: Sep 2006
Beiträge: 779
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
@Breed1023:
Wo hast du es denn eingefügt? Vor oder nach 'return 0'?
Und wenn du die Fehlermeldung durchliest, siehst du auch was er noch zu bemängeln hat:
"...or <iostream> instead of the deprecated header <iostream.h>."
|
03. 01. 2008, 16:37
|
#81
|
|
Fuck-o
Registrierungsdatum: Feb 2007
Ort: Auf dem String
Beiträge: 332
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
habs leider hinter return0 gesetzt. Jetzt hab ichs ausgebessert. Aber da muss es doch eine einfachere lösung geben, oder nicht?
|
03. 01. 2008, 16:51
|
#82
|
|
Mitglied
Registrierungsdatum: Dec 2004
Beiträge: 1.357
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Zitat:
|
Zitat von Breed1023
habs leider hinter return0 gesetzt. Jetzt hab ichs ausgebessert. Aber da muss es doch eine einfachere lösung geben, oder nicht?
|
Was meinst du mit einfacher?
Andere Wege findest du über die Suchfunktion.
|
03. 01. 2008, 22:37
|
#83
|
|
Mitglied
Registrierungsdatum: Dec 2005
Beiträge: 383
|
[C] - Teilstring abschneiden
Soweit ich bis jetzt in Erfahrung bringen konnte, gibt es keine direkte C-Funktion der Standardbibliotheken, mit der man einen Teilstring bis zum Auftreten eines bestimmten Zeichens abschneiden kann.
Ich möchte zum Beispiel vom String "ich bins" das ich inklusive Leerzeichen abtrennen, sodass nur noch bins übrigbleibt. Könnte mir da jemand weiterhelfen?
|
05. 01. 2008, 18:04
|
#84
|
|
Nerd
Registrierungsdatum: Oct 2007
Ort: Im Ozean
Beiträge: 3.158
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
|
05. 01. 2008, 18:08
|
#85
|
|
Mitglied
Registrierungsdatum: Dec 2005
Beiträge: 383
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Gut, soweit ich das jetzt verstanden habe, müsste der Funktionsaufruf in meinem Fall so aussehen:
strtok("ich bins", " ")
Das gibt mir als Return Wert allerdings nur "ich" aus. Wie kann ich dafür sorgen, dass mir der zweite Teil ausgespuckt wird?
|
05. 01. 2008, 18:52
|
#86
|
|
Mitglied
Registrierungsdatum: Dec 2004
Beiträge: 1.357
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Zitat:
|
Zitat von Kintaro
Gut, soweit ich das jetzt verstanden habe, müsste der Funktionsaufruf in meinem Fall so aussehen:
strtok("ich bins", " ")
Das gibt mir als Return Wert allerdings nur "ich" aus. Wie kann ich dafür sorgen, dass mir der zweite Teil ausgespuckt wird?
|
http://cppreference.com/stdstring/strtok.html
|
05. 01. 2008, 19:15
|
#87
|
|
Nerd
Registrierungsdatum: Oct 2007
Ort: Im Ozean
Beiträge: 3.158
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
PHP-Code:
#include <stdio.h>
int main(int argc, char** argv) {
char c[] = "ich bins wirklich, ja, toll";
strtok(c," ");
char* p = (char*)strtok(0,"\0");
printf("%s***%s\n",c,p);
}
Output: ich***bins wirklich, ja, toll
|
05. 01. 2008, 19:26
|
#88
|
|
Mitglied
Registrierungsdatum: Dec 2005
Beiträge: 383
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Danke, funzt einwandfrei!
|
05. 01. 2008, 19:51
|
#89
|
|
asexueller Pessimist
Registrierungsdatum: Nov 2006
Beiträge: 1.101
|
[C++] Arrays
hallo!
ich lerne grad c++, bin gerade dabei, mein erstes c++ programm zu schreiben und komme an einem punkt nicht weiter. wie vielleicht manche von euch wissen, bist es in php zB befehle, die einen String an das ende oder an den anfang eines arrays "anketten". sowas bräuchte ich jetzt
und nein, die anzahl der felder ist unbekannt , sonst würd ich ja nicht fragen
danke für jegliche hilfe!
|
07. 01. 2008, 19:20
|
#90
|
|
Mitglied
Registrierungsdatum: Oct 2007
Beiträge: 481
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Wenn die Länge unbekannt ist, solltest du dich eher nach Listen umsehen.
|
07. 01. 2008, 19:28
|
#91
|
|
Mitglied
Registrierungsdatum: Dec 2004
Beiträge: 1.357
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Dafür gibts die Container Klassen in der STL, wie z.B. vector.
|
07. 01. 2008, 19:47
|
#92
|
|
asexueller Pessimist
Registrierungsdatum: Nov 2006
Beiträge: 1.101
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Zitat:
|
Zitat von Tropi
Wenn die Länge unbekannt ist, solltest du dich eher nach Listen umsehen. 
|
was? wo? wie? listen? welche listen?
Zitat:
|
Dafür gibts die Container Klassen in der STL, wie z.B. vector.
|
hmm, so weit sollte ich nach meinem buch doch gar nicht sein und können kann ich das erst recht nicht. naja, dann wird wohl nichts aus meinem selbstgeschriebenem programm.
danke für die antworten
|
07. 01. 2008, 20:37
|
#93
|
|
Mitglied
Registrierungsdatum: Dec 2007
Beiträge: 1
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
erstma Hallo is mein erster Post ;P
Kann mir einer einen Link geben bzw eine Anleitung geben die mir erklärt wie ich Youcryptjunior in mein eigenes Programm einbinden kann. Bzw ich denke mal es ist für eine bestimmte Plugin API entwickelt, funktioniert ja in mehrer Downloader. Also ich bräuchte nur eine erklärung wie das Plugin aufgebaut ist, einbinden und alles drumherum schaff ich schon.
TheP
|
10. 01. 2008, 19:55
|
#94
|
|
Mitglied
Registrierungsdatum: Jan 2007
Beiträge: 4
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
[JAVA]
Ich hab das mal ne Frage und zwar:
Hängt der Speicherplatzbedarf der Instanz eines komplexen Datentyps in Java von der Anzahl
der im Typ deklarierten Methoden ab?
Für mich ist ein komplexer Datentyp z.B. der vordef. String. Dieser hat eine festgelegte Groesse wie byte, short etc. . Oder versteh ich das etwas grundlegendes total falsch. Weil mir meine Antwort auf die Frage einfach zu spontan und einfach erscheint
Gruß
K0n0s
|
13. 01. 2008, 18:02
|
#95
|
|
Mitglied
Registrierungsdatum: Nov 2007
Beiträge: 5
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Hallo, ich wollt mal ein Programm schreiben, dass mir auf Anfrage die Steuerzeichen für die Ausgabe mit printf() ausgibt. Leider krieg ich das nicht auf die Reihe, die kurzen Strings in ein Array zu packen.
Hier ist erst mal der Code:
PHP-Code:
#include <stdio.h>
//##############################################
//# Steuerzeichen für die Ausgabe mit Printf() #
//##############################################
//erzeuge eigenen Datentyp
struct steuerzeichen {
char str[];
};
int main(int argc, char *argv[])
{
struct steuerzeichen sz[16];
// = {'d', 'ld', 'hd', 'u', 'lu', 'hu', 'e', 'f', 'lf', 'g', 'lg', 'o', 'p', 's', 'x', 'X' } //Idee Nr. 2
//Zuweisungen
sz[0].str = 'd';
sz[1].str = 'ld';
sz[2].str = 'hd';
sz[3].str = 'u';
sz[4].str = 'lu';
sz[5].str = 'hu';
sz[6].str = 'e';
sz[7].str = 'f';
sz[8].str = 'lf';
sz[9].str = 'g';
sz[10].str = 'lg';
sz[11].str = 'o';
sz[12].str = 'p';
sz[13].str = 's';
sz[14].str = 'x';
sz[15].str = 'X';
printf("test: %s", sz[0].str);
return 0;
}
Ich hoffe jemand kann mir mal ein paar Tipps geben.
|
16. 01. 2008, 20:27
|
#96
|
|
lange Rede oft kein Sinn
Registrierungsdatum: Jun 2006
Ort: im Haus
Beiträge: 454
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
wenn ich das richtig sehe, weist du einem element im char-Array folgendes zu: 'xx' (x durch deine buchstaben ersetzen). Ein Char kann nur EIN Zeichen Speichern, nicht mehr.
|
16. 01. 2008, 20:33
|
#97
|
|
Mitglied
Registrierungsdatum: Nov 2007
Beiträge: 5
|
Re: [Sammelthread] Codeschnippsel und kurze Fragen
Du hast schon recht, aber nehmen wir mal an, ich hätte das Array im Konstrukt mit drei Feldern definiert, dann würde das Programm immer noch nicht laufen.
PHP-Code:
//erzeuge eigenen Datentyp
struct steuerzeichen {
char str[3]; //vorher char str[]
};
Am liebsten wäre mir, wenn ich ein Array mit verschiedenen Zeichenketten füllen könnte. Naja, vielleicht findet sich ja eine Lösung. Aber schon mal danke für die schnelle Antwort.
|
16. 01. 2008, 20:54
|
#98
|
|