maddin Geschrieben 25. Oktober 2001 Teilen Geschrieben 25. Oktober 2001 hallo, ich habe mir gedacht, es wäre doch sehr schön, wenn ich es schaffen könnte direkt in den speicher zu schreiben oder zu lesen. so zum beispiel auch die daten von den schnittstellen. problem ist bloß, das windows 2k da was gegen hat und mir vorwirft nicht genügend rechte zu haben. weiß einer von euch vielleicht einen weg, wie ich an diese rechte kommen kann. und bitte keine diskussion darüber, das es doch eigentlich gut ist, das win2k die ressourcen schützt, bla bla bla. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gugelhupf Geschrieben 25. Oktober 2001 Teilen Geschrieben 25. Oktober 2001 schau mal einfach unter dem stichwort "protected mode" für intel prozessoren nach; aber vielleicht verstehe ich dich auch nicht ganz *ggg* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maddin Geschrieben 25. Oktober 2001 Autor Teilen Geschrieben 25. Oktober 2001 ich weiß auch nicht genau aber denke das das eher mit windows zu tun hat und nicht mit irgendwelchen prozessoren. und ich will ja direkt auf die ressourcen zugreifen. ohne schutz von win Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SirLizium Geschrieben 25. Oktober 2001 Teilen Geschrieben 25. Oktober 2001 Vielleicht solltest du dich dazu ein wenig mit Assembler auseinander setzen. (Wobei ich mir allerdings auch nicht ganz sicher bin ob man damit das BS umgehen kann) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maddin Geschrieben 25. Oktober 2001 Autor Teilen Geschrieben 25. Oktober 2001 ich habe es mit assembler versucht. es geht damit nicht. ich habe bloß gedacht, das man sich irgendwie die rechte besorgen kann. zum herunterfahren des rechners braucht man ja auch gewisse rechte, die man nicht standardmäßig hat. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TingleTangle Geschrieben 25. Oktober 2001 Teilen Geschrieben 25. Oktober 2001 Hi maddin, Wie genau greifst du zu, und wie ist die Windowsmeldung die dein Progie verursacht? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
RDJ Geschrieben 25. Oktober 2001 Teilen Geschrieben 25. Oktober 2001 werd ma ne dumme antwort rausgeben .... du hast keine Rechte du hast NUR PFLICHTEN Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maddin Geschrieben 25. Oktober 2001 Autor Teilen Geschrieben 25. Oktober 2001 der code, den ich versucht habe zu verwenden ist im grunde der selbe wie der der funktion _inp(). spricht mit assembler - code auf den com- port zugreifen. die fehlermeldung habe ich zur zeit nicht genau im kopf. es ist irgentwas mit access violation. der grund ist mir auch klar. windows 2000 schütz vor den direkten zugriff auf die ressourcen. aber diesen schutz will ich eben umgehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush Geschrieben 25. Oktober 2001 Teilen Geschrieben 25. Oktober 2001 Versuch mal aus, direkt im Inline-Assembler den COM-Port anzusprechen, das habe ich mal dem hier gezeigt: http://217.115.144.9/cgi-bin/ubbcgi/ultimatebb.cgi?ubb=get_topic&f=21&t=000387&counterhit=yes Je nach Compiler kann es sein, daß die __asm Direktive anders aussehen muß, bei Borland glaub nur _asm. Sollte immer noch eine Privilegsverletzung auftreten probiere nach dem zweiten push-Befehl in den Protected Mode zu schalten: mov eax,cr0 or ax,1 ; Protected anschalten , and ax,-2 = ausschalten mov cr0,eax jmp $+2 ; CPU-internen Instruction Cache löschen Wenn er dann immer noch abstürzt, weiß ich auch nicht mehr weiter ... vielleicht wenn man alle anderen Prozesse vorher mit Gewalt stoppt??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TingleTangle Geschrieben 26. Oktober 2001 Teilen Geschrieben 26. Oktober 2001 Das geht falls Windows2000 die MMU nutzt um Speicher zu schützen. Ich bin mir nicht sicher ob dem so ist. Vielleicht findest du ja Code für ein Trainer-Programm(für Games). Die patchen auch Speicher für den sie nicht priviligiert sind. Schau doch mal auf sourceforge.net oder codeguru.earthweb.com nach so'm Teil. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush Geschrieben 27. Oktober 2001 Teilen Geschrieben 27. Oktober 2001 Es kann aber auch an der Priorität des protected mode liegen. Man kann hier von 0 (höchste) auf 3 (niedrigste=standard) umschalten, allerdings wie das genau geht habe ich noch nirgends brauchbar ausdokumentiert bekommen. Da werden die 2 Bits halt in irgendeinem CRx-Register stehen. Ich weiß nur, daß man in der höchsten Prioritätsstufe nicht mehr mit mov CR0,EAX schreiben darf. Dafür gibt es den Befehl LMSW eax, mit dem man dann nur in den Protected Mode schalten kann. Wie man aber wieder in den Real-Mode zurückkommt, da habe ich noch nix gesehen. <FONT COLOR="#a62a2a" SIZE="1">[ 28. Oktober 2001 01:20: Beitrag 1 mal editiert, zuletzt von Crush ]</font> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hoagi Geschrieben 28. Oktober 2001 Teilen Geschrieben 28. Oktober 2001 Hi, Liebe Leute was habt ihr den vor. Wenn ihr Windows2000 ins Nirwana schicken wollt zieht doch einfach den Netzstecker. Umschalten in Realmode ????????????? Wenn ihr auf Hardwareadressen zugreifen wollt, müßt ihr das schon Windows 2000 konform machen. z.B.: <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR> MmAllocateContiguousMemory PVOID MmAllocateContiguousMemory( IN ULONG NumberOfBytes, IN PHYSICAL_ADDRESS HighestAcceptableAddress ); MmAllocateContiguousMemory allocates a range of physically contiguous, cache-aligned memory from nonpaged pool. Parameters NumberOfBytes Specifies the size in bytes of the block of contiguous memory to be allocated. HighestAcceptableAddress Specifies the highest valid physical address the driver can use. For example, if a device can only reference physical memory in the lower 16MB, this value would be set to 0x00000000FFFFFF. Return Value MmAllocateContiguousMemory returns the base virtual address for the allocated memory. If the request cannot be satisfied, NULL is returned. Comments MmAllocateContiguousMemory can be called to allocate a contiguous block of physical memory for a long-term internal buffer, usually from the DriverEntry routine. A device driver that must use contiguous memory should allocate only what it needs during driver initialization because nonpaged pool is likely to become fragmented as the system runs. Such a driver must deallocate the memory if it is unloaded. Contiguous allocations are aligned on an integral multiple of the processor’s data-cache-line size to prevent cache and coherency problems. Callers of MmAllocateContiguousMemory must be running at IRQL = PASSIVE_LEVEL. See Also HalAllocateCommonBuffer, KeGetDcacheFillSize, MmAllocateNonCachedMemory, MmFreeContiguousMemory Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush Geschrieben 28. Oktober 2001 Teilen Geschrieben 28. Oktober 2001 Ich vermute, daß der COM-Port so bestimmt nicht direkt angesprochen werden kann. Vielleicht sollte man einen Ghost-Gerätetreiber entwerfen, den man beim Systemstart einbinden läßt und der somit die volle Zugriffsberechtigung hat. Danach läßt man alle gewünschten Hardwarezugriffe über den eigenen (Pseudo-)Systemtreiber laufen und kann so ohne weiteres hantieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.