under construction
Ist richtig, aber sehr unverständlich ausgedrückt. Der Parameter ist ein Pointer zu unserem Path der Dll, den wir in den Speicher des andern Programmes geschrieben haben.Quote:
lpParameter: Hier übergeben wir das Ergebnis von VirtualAllocEx, damit LoadLibrary auch mal ein Parameter abbekommt.
Wie wärs mit GetPID? Stichwort TlHelp32. Process snapen und dann per First/Next sein Glück versuchen :>Quote:
Was ist, wenn der Prozess kein Fenster hat?
Die paar Bytes? Aber okay.Quote:
Und warum gibst du den alloziierten Speicher nicht wieder frei oder erwaehnst es zumindest?
Und weiter? Die Syntax bleibt Delphi, ob WinAPI oder nicht ;oQuote:
Ausserdem sind das alles WinAPI-Funktionen, heisst sie werden nicht von Delphi bereitgestellt, sondern vom OS.
Das soll auch kein in-depth Tutorial sein, es gibt eine Leute die sowas besser erklären können als ich. Aber das was ich da oberflächlich ankratze reicht für einen eigenen Injector.Quote:
Du erklaerst die Parameter teilweise falsch oder ueberhaupt nicht, sondern drueckst dich mit Ausreden davor, und den eigentlichen Vorgang einer Dll-Injection erklaerst du ebenso nicht, die von dir gewaehlte Methode auch nur sporadisch, da du eigentlich nur die benoetigten API-Funktionen beschreibst.
Boardsuche findet nichts zum Thema Delphi und Dll-Injection.Quote:
Desweiteren gibt es zu diesem Thema halt schon viele Tutorials, die 1. alle oder mehrere Methoden abdecken, 2. das Thema intensiver behandeln, 3. Beispielcode bereitstellen und ueber Google auch sehr leicht zu finden sind..
Du ich bin zwar kein Delphi-Guru aber ich glaube um das Thema zu meistern reicht es gerade noch :)Quote:
Ich weiss, dass du wohl mit deinem Tutorial nur helfen moechtest, aber mir scheint irgendwie, dass du selber nicht wirklich Ahnung davon hast..
Ganz ehrlich? Weil ich die Funktion für meine eigenen Programme nutzte. Mag egoistisch sein, aber naja ...Quote:
"Wie wärs mit GetPID? [...]"
Wieso schreibst du dazu dann nichts in deinem Tutorial?
Ja ich habs ja verstanden ;)Quote:
"Die paar Bytes? [...]"
Ist auf jeden Fall unsauber, auch wenn es nur ein paar Bytes sind
Nein. Ich verstehe was du meinst aber da muss ich dir widersprechen. Nicht in jeder Programmiersprache gibt es Lokalisierungen von dieser und jener API und wenn es welche gibt, so sind sie Lokalisierungen einer API in der Sprache X, also stellt Sprache X sie bereit.Quote:
"[...] Die Syntax bleibt Delphi, ob WinAPI oder nicht ;o"
Was hat das mit der Syntax zu tun?
Sicherlich ist die Syntax der Funktionsdeklarationen die von Delphi, diese Funktionsheader sind ja schließlich dazu da, seinem Programm, das man in Delphi schreibt, die Funktionen bekannt zu machen
Letztlich hat die Funktionsdeklaration dennoch nichts mit der Funktion an sich zu tun. Es ist nun mal eine Funktion, die von Windows bereit gestellt wird, was unter dem Begriff WinAPI zusammengefasst wird.
Somit ist "Dazu gibt es in Delphi die schöne Function OpenProcess" und "aber leider gibt es dafür in Delphi mal wieder eine wundertolle Function" falsch.
Okay evtl. editiere ich es noch ... Das Tutotrial hatte ich mal für ein anderes Umfeld geschrieben, bei dem ich davon ausging das es Ahnung von dem Thema hat. Aus purer Faulheit hab ich nicht viel geändert, wollte es euch dennoch nciht vorenthalten. Dachte vllt. interessiert es ja den ein oder anderen.Quote:
"Das soll auch kein in-depth Tutorial sein [...]"
Wenn man etwas programmiert, allerdings gar nicht versteht, was es eigentlich macht bzw. wie es funktioniert, hört sich das eher nach Copy and Paste an, und wenn du so etwas erreichen möchtest, kannst du dein Post nicht als Tutorial bezeichnen und hättest auch eigentlich direkt 'nen fertigen Code zur Verfügung stellen können.
Erkläre doch einfach die Dinge soweit es von Nöten ist und verweise auf weiterführende Informationen. Und das mit dem 'von Nöten' finde ich kommt bei dir zu kurz. Wenn du nämlich einfach mal hier oder da einen Parameter nicht erklärst/auslässt, hat man die Funktion im Endeffekt nicht vollständig verstanden, was irgendwie auch teilweise mit Copy and Paste gleichkommt.
Google findet viel ;oQuote:
"Boardsuche findet nichts zum Thema Delphi und Dll-Injection."
1. meinte ich jetzt auch eher über Google nach Tutorials suchen und weniger auf elitepvpers
2. [Only registered and activated users can see links. Click Here To Register...]
Benutzt zwar nicht Delphi, aber da du keinen Beispielcode gepostet hast, hat dein Tutorial außer nil jetzt auch nicht viel mit Delphi zu tun.
true wordsQuote:
"Ich will jetzt nicht defensiv klingen [...]"
Arguing on the internet is like running in the Special Olympics. Even if you win, you're still retarded. :P
Ist ja schon krass, wie sehr du auf Delphi eingegangen bist.Quote:
"Tutorial"
Nicht nur in Delphi (da Funktion der WinAPI).Quote:
Dazu gibt es in Delphi die schöne Function OpenProcess.
Jo, in C++ auch, welch' Überraschung.Quote:
Ich würde euch ja jetzt gerne damit quälen dass ihr das selbst machen müsst, aber leider gibt es dafür in Delphi mal wieder eine wundertolle Function: WriteProcessMemory.
Nerdbonzen scheißen auf die paar Bytes, link.Quote:
Und warum gibst du den alloziierten Speicher nicht wieder frei oder erwaehnst es zumindest?
Du hast nicht verstanden, worauf link hinauswollte.Quote:
Und weiter? Die Syntax bleibt Delphi, ob WinAPI oder nicht ;o
Wenn du es so siehst, hättest du es gleich sein lassen können.Quote:
es gibt eine Leute die sowas besser erklären können als ich.
So kann man sich natürlich auch herausreden (welchen Grund dazu du auch immer haben magst).Quote:
Achja und @Beispielsource: Ich unterstütze keine Copypasta ...
Wie alt bist du eigentlich? Und viel wichtiger: Was erhoffst du dir davon? Dass, nur weil du diese Möglichkeit nicht ansprichst, niemand darauf kommen wird und dein Programm ganz doll besonders bleibt?Quote:
Ganz ehrlich? Weil ich die Funktion für meine eigenen Programme nutzte. Mag egoistisch sein, aber naja ...
Wow.Quote:
Das Tutotrial hatte ich mal für ein anderes Umfeld geschrieben, bei dem ich davon ausging das es Ahnung von dem Thema hat.
Was ist daran denn nicht nachzuvollziehen? Es ist doch offensichtlich, dass mit leichten (ausschließlich syntaktischen?) Abänderungen dein "Tutorial" auf eine andere Programmiersprache portierbar ist et vice versa.Quote:
Und zu letzterem: Kann ich nicht ganz nachvollziehen.
Okay, leuchtet mir ein. Aber ist schön ein bisschen Erbsen-gezählt, oder? :pQuote:
Es ist falsch zu sagen, dass Delphi z.B. WriteProcessMemory bereit stellt.
Da der Funktionsheader dem Linker lediglich sagt, dass ein Eintrag in der Import Table anzulegen ist, um die Funktion aus den Windows Dlls zu importieren.
Diese Deklaration für Compiler und Linker könntest du dir aber auch einfach selber schreiben, wenn sie jetzt nicht in den Delphi-Includes vorhanden sein sollte.
Die Funktion an sich hat also nichts mit Delphi zu tun und jede Sprache, die als PE Datei läuft (bei Skriptsprachen wäre das dann der Interpreter, der die Funktionen importiert oder zumindest GetProcAddress) kann auf diese Funktion zugreifen.
Achso ok. Jaah, mag sein ...Quote:
"Und zu letzterem: Kann ich nicht ganz nachvollziehen."
Damit nahm ich Bezug auf "Boardsuche findet nichts zum Thema Delphi und Dll-Injection." und wollte sagen, dass es sein kann, dass du nichts zu Dll-Injection in Verbindung mit Delphi gefunden hast, aber halt was zu Dll-Injection, und dass dein Tutorial jetzt auch nicht sehr Delphi-spezifisch ist, außer halt nil und die PAnsiChar-Casts
Quote:
ein Tutorial doch einfach noch etwas aus, indem du evtl. noch schreibst, was zu tun ist, wenn kein Fenster vorhanden ist, Erklärungen für die ausgelassenen Parameter nachholst und einen Beispielcode dazu packst, der dann nicht so komplett ist, dass C&P reicht, oder der ein, zwei kleine Fehler enthält, die man schnell entdeckt, wenn man das Tutorial wirklich durchgegangen ist
Jo ihr habt Recht, werde ich wohl bei Gelegenheit machen. Und danke für den Tipp für den Aufbau @link :)Quote:
Wenn du dein ersten Post noch mal überarbeitest und noch andere Methoden hinzufügst, kannste dein Tutorial retten.
Nein, Delphi stellt die Funktion nicht bereit und basta :pQuote:
Okay, leuchtet mir ein. Aber ist schön ein bisschen Erbsen-gezählt, oder?