| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: C/C++ Shellcode per Parameter übergeben im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Heyho, ich schreibe gerade ein Mini-Funktion, die die Aufgabe hat Shellcode auszuführen. Der Code soll einfach als Parameter übergeben ...
![]() |
| | #1 (permalink) |
| Registriert seit: 28.03.10 ![]() Likes: 0 | Anzeige Heyho, ich schreibe gerade ein Mini-Funktion, die die Aufgabe hat Shellcode auszuführen. Der Code soll einfach als Parameter übergeben werden. Hier ist der Code: Code: int main(int argc, char *argv[] ) {
void (*code)() = (void(*)())argv[1];
code();
return 0;
} Code: programm /x00/x00/x00/x00(Mein Shellcode) PS: Achja ich hab' nicht den geringsten Schimmer von C/C++. Ich hab' mir den Code nur zusammengereimt. |
| | |
| | #2 (permalink) | |
| Registriert seit: 27.12.07 ![]() Likes: 39 | Zitat:
__________________ You shoot yourself in somebody else's foot.|Dann gabs da noch den Mathematiker der P?=NP in O(1) erklärte. |[A]| = p(·,|[A]|)+1 | |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 28.03.10 ![]() Likes: 0 | Das witzige ist, dass alles glatt geht, wenn ich den Shellcode direkt imProgramm behalte. Vll. klappt es ja, wenn ich den Code von einer Txt einlesen lasse. Danke schonmal |
| | |
| | #4 (permalink) |
| Member of Honour ![]() Registriert seit: 02.04.05 ![]() ![]() ![]() Likes: 76 | Die Kommandozeile ist ein String. /x00 wird also zu 0x2F 0x78 0x30 |
| | |
| | #5 (permalink) | |
| Themenstarter Registriert seit: 28.03.10 ![]() Likes: 0 | Ok das klärt einiges! ![]() Mmh und wie kann ich die Leerzeichen wieder in Backslashes umwandeln? Code: #include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <cstring>
using namespace std;
int main() {
ifstream fin;
string buffer;
buffer.clear();
fin.open("datei.txt");
getline(fin,buffer,'\n');
std::replace(buffer, buffer + ::strlen(buffer), ' ', '\');
void (*code)() = (void(*)())buffer.c_str();
code();
fin.close();
return 0;
} Zitat:
Code: std::replace(buffer, buffer + ::strlen(buffer), ' ', '\'); ? | |
| | |
| | #6 (permalink) |
| Registriert seit: 27.12.07 ![]() Likes: 39 | strlen ist für alte C-Strings ausgelegt. Du kannst strlen(buffer.c_str()) nutzen. Besser ist es aber das von std::string bereitgestellte buffer.size() zu benutzen. Generell sollte man alte C-Funktionen vermeiden, wenn man C++ Code schreiben will.
__________________ You shoot yourself in somebody else's foot.|Dann gabs da noch den Mathematiker der P?=NP in O(1) erklärte. |[A]| = p(·,|[A]|)+1 |
| | |
![]() |
| Stichworte |
| c++, exe, opcode, shellcode |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| C und Parameter an Funktionen übergeben | Diokhan | Code Kitchen | 8 | 16.09.11 01:21 |
| ASM cdecl-shellcode | 90nop | Code Kitchen | 2 | 23.02.10 18:43 |
| Einem Timer in VB6 Parameter übergeben?? | the.mole | Code Kitchen | 8 | 17.10.05 11:18 |
| Shellcode | KDSBest | Code Kitchen | 3 | 24.12.03 13:25 |
| Shellcode | (In)security allgemein | 1 | 17.11.03 15:54 | |