Autor Beitrag
scrooge
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 200



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 200



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 200



BeitragVerfasst: So 21.08.05 17:08 
zur Info: normalerweise funktioniert es wohl so

ntWriteFile sieht zum Beispiel so ähnlich aus:

ausblenden 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 user profile iconKlabautermann: b-Tags durch Highlight-Tags ersetzt.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 200



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 79
Erhaltene Danke: 2

Windows 8.1/x64
Delphi 10.1
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 200



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 79
Erhaltene Danke: 2

Windows 8.1/x64
Delphi 10.1
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Do 25.08.05 16:23 
user profile iconscrooge hat folgendes geschrieben:

Einfacher gings natürlich wenn mir jemand noch VirtualAlloc nachbasteln könnte.

guck dir mal die Suche in: Delphi-Forum, Delphi-Library UALLCOLLECTION an

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 200



BeitragVerfasst: 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