| Autor |
Beitrag |
scrooge
      
Beiträge: 200
|
Verfasst: So 21.08.05 16:04
Hi,
Ich kann in meinem Programm keine Dlls benutzen, daher auch ekine Win-Apis. Ich bräuchte aber ReadFile oder etwas ähnliches. Allerdings darf es nicht aus einer Dll sein. Hab gedacht, ich könnte einfach NTReadFile aus er ntdll nachbauen. Allerdings reicht mein Asembler nicht aus, um das übersetzen zu können.
Wollte fragen ob jemand in der LAge wäre mir das nachzubauen (mit Interupts etc (noch nichteinmal die Nummer weiß ich)).
Schonmal danke im Vorraus.
Sebastian
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 21.08.05 16:32
Jetzt beruhige dich doch bitte noch mal kurz und erzähl uns dann, was das Ganze werden soll. Jedes Programm verwendet unter Windows die WinAPI.
Oder willst Du eine COM-Datei schreiben? Das wäre dann Interrupt 21h und würde nur unter DOS funktionieren (bzw. in der DOS-VM von Windows).
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
scrooge 
      
Beiträge: 200
|
Verfasst: So 21.08.05 16:55
| Zitat: | | Jetzt beruhige dich doch bitte noch mal kurz und erzähl uns dann, was das Ganze werden soll. |
??
Ich versuche mein Programm vor ApiHooking zu sichern. Praktische Methode dagegen wäre sich die Dlls selber zu laden, sodass niemand weiß, dass diese Dlls überhaupt in meinem Speicher sind. Dazu kann ich dann natürlich keine Apis verwenden.
also hab ich mir ein Programm gebastelt, it dem ich virtuelle Section hinzufügen kann, die beschreibar und ausführbar sind: Die nutze ich dann um die Dlls dorthin zu laden.
Soweit die >Vortstellung von etwas ,was am ende wie ich schätze wohl an irgendetwas haken wird  ...
Einfacher gings natürlich wenn mir jemand noch VirtualAlloc nachbasteln könnte.
Andernfalls, um die entsprechenden Dlls in den Speicher zu laden und zu mappen, müsste ich wissen, wie man das ganze ohne apis macht. ntdll schfft das ja auch ohne weitere Dlls, müsste halt nur wissen wie.
Falls jemand meint, dass das eh nicht geht, sagt es bitte
thx für den Post
|
|
scrooge 
      
Beiträge: 200
|
Verfasst: So 21.08.05 17:08
zur Info: normalerweise funktioniert es wohl so
ntWriteFile sieht zum Beispiel so ähnlich aus:
Quelltext 1: 2: 3:
| mov eax, 0x0E mov ebx, esp int 0x2E |
Über Eax wird die Nummer des System Services übergeben. Die Nummern hab ich aber nicht und kann sie auch nicht finden. Außerdem bin ich mir nicht sicher, was sosntn och alles so in die Funktion muss.
Moderiert von Klabautermann: b-Tags durch Highlight-Tags ersetzt.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 21.08.05 18:02
Unter NT ff. wird dir das so nicht gelingen. Da direkte Hardwarezugriffe vom Betriebssystem unterbunden werden. Deine Interupts kannst du also schon mal im User Mode vergessen. Einzige Möglichkiet du schreibst dir einen eigenen Dateisystemtreiber. Aber dazu brauchst du das DDK und das Visual Studio.
|
|
scrooge 
      
Beiträge: 200
|
Verfasst: So 21.08.05 19:02
oh wusste ich nicht...dann werd ich wohl doch zumindest die IO-pOperationen per normlaer Ap machen müssen
//Edit: Ich glaube ud irrst dich Luckie: es gibt sehr wohl Sotware Interupts. Dabei wird erst in den kernelmode gewechselt. So hab ich es jedenfalls noch einmal gelesen (aus "Indide Windows 2000")
|
|
drstar
      
Beiträge: 79
Erhaltene Danke: 2
Windows 8.1/x64
Delphi 10.1
|
Verfasst: Mo 22.08.05 20:37
Stimmt so nicht. Zunächst einmal hat ein Interrupt nicht zwangsweise etwas mit direkten Hardwarezugriffen zu tun (es sei denn, man definiert den Zugriff auf den RAM auch als Hardwarezugriff...). Bestes Beispiel ist der Int 013h, er läßt z. B. im UserMode (Ring 3) sehr wohl den Zugriff auf bestimmte Funktionen zu (Floppyetc...). Es kommt zum Einen auf den Int selbst an, z. anderen aber auch auf die Funktion und die übergegebenen Parameter.
|
|
scrooge 
      
Beiträge: 200
|
Verfasst: Mo 22.08.05 21:42
lag ich doch nicht falsch (mir geths um Interupt Nummer 46 (2E)), der den System Service Dispatcher aktiviert.
thx für die Hilfe
|
|
drstar
      
Beiträge: 79
Erhaltene Danke: 2
Windows 8.1/x64
Delphi 10.1
|
Verfasst: Do 25.08.05 16:18
Also,zunächst einmal eine Frage: Soll das Programm ein reines Windows-Programm werden, oder soll es in einer DOS-Box laufen? Dann könntest Du nämlich auf die DOS-Funktionen zurückgreifen (glaube, daß die File-Funktionen dann über den INT 021h laufen müßten,Parameter kannst Du im Interrupt-Listing von Ralph Brown nachlesen, einfach mal googeln...). Ansonsten mal beschreiben, was genau für Funktionen Du brauchst...
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 25.08.05 16:23
scrooge hat folgendes geschrieben: |
Einfacher gings natürlich wenn mir jemand noch VirtualAlloc nachbasteln könnte.
|
guck dir mal die UALLCOLLECTION an
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Do 25.08.05 16:43
jep luckie hat da nicht ganz recht
du kannst die NT-APIS nachbauen, jedoch musst du wissen das unter XP z.b. sysenter unter 2k int xx usw benutz wird und diese werte von den service packs noch abhängen etc.
es ist kein problem NTCreateFile nachzubauen (sind 3 asm zeilen)
und egal was du genau vorhast, es ist kein problem rauszufinden wie du das machst dadruch wird dein programm kein bisschen sicherer
sag mal wofür du das brauchst, für nen kleinen preis würd ich dir das sogar für NT machen
CreateFile / ReadFile / VirtualAlloc
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
scrooge 
      
Beiträge: 200
|
Verfasst: Do 25.08.05 22:15
thx...danke aber Geld wollte ich eigentlich nicht dafür ausgeben ^^.
nicht sicherer, aber gegen generelles Api-Hooking schon.
Klar kann jemand mein Programm ausklinken wenn er das genau kennt, aber kein normler nicht auf mein Prog abgestimmter Api-Hook.
dnake für die Hilfe ich werd mal gucken wie ich es mache
|
|