Gute Besserung! Liegst du mit Laptop im Bett ?
Virtuelle Datei
-
-
-
Ja, eins rechts, eins links. Mir dröhnt ganz schön der Schädel. Meine frau ist zur Zeit arbeiten - da ist deshalb etwas mehr Platz.
-
Ach ja... Brauchst du noch was für Pipes oder hast du das schon? Hätte hier noch Quelltext rumliegen, den ich selbst nicht gebrauchen kann.
-
Zitat
Du musst kein RA sein um mir folgen zu können, nur lesen.
Da steht: (ldr. nicht wirklich erlaubt bei diesem Zweck)
Vollkommen richtig - um dir folgen zu können, muss ich kein Rechtsanwalt sein. Es fragt sich aber, ob du keiner sein musst, um das von dir geben zu dürfen, was du hier laufend von dir gibst. Wenn du nur etwas vermutest, weil dir dazu die Ahnung und die Ausbildung fehlt, benutze bitte den "Melden" Butten (das ist das kleine Ausrufezeichen links unten am Beitrag).
Die Admins hier sind auf Draht und erlauben nichts, was gegen deutsches Recht verstoßen könnte.
Wenn du durch solche "unqualifizierten" (da Ausbildung fehlt) Beiträge hier aber nur stören und anderen schaden willst, würde ich das in deinem eigenen Interesse lieber unterlassen, das endet nicht gut.
Ich möchte nicht immer von vornherein irgendwelche Erklärungen geben müssen, warum irgendetwas, was ich tue, meiner Meinung nach in meinem Fall und so wie ich es tue erlaubt ist oder nicht. Du würdest das auch gar nicht verstehen und umsetzen können, denn du kennst ja alleine schon die dazu verwendeten Programmiertechniken gar nicht. -
Einzig ist nicht in Ordnung das Du mich als unqualifiziert deklarierst, ohne jedes Wissen. (Ich kann mich jedenfalls nicht erinnern, mit Dir je professionellen oder privaten Kontakt gehabt zu haben.)
Und der Meldebutton: Der ist schliesslich für alle da.
-
Also ich bin nach wie vor an einem Speicherbereich interessiert, in den EIN Profanprogramm reinschreibt und den ein (zwei, drei) andere Profanprogarmme lesen können. Daß da keine Kollisionen oder logische Deadlocks auftreten, dafür müsste man halt selber sorgen (Semaphore etc). Wäre jedenfalls lehrreich.
-
Geht das http://xprofan.com/p/?5747 nicht?
-
Danke, werde testen (Frühere Lösungen führten mehrfach zu Komplettabstürzen. Kann aber auch meine eigene Schuld sein).
-
Deadlocks? Das hängt davon ab, welche Art von Pipes man nimmt bzw. wie man dann mit CreateFile umgeht.
PS: Die Sache, die ich dir gerade zugeschickt habe, ist natürlich alles andere als ausgereift. Habe mich eigentlich nur ein paar Minuten mit der Sache beschäftigt, da ich das Handle einer Pipe für den Test mit CreateFile hier brauchte. Das ganze ist eine Art "Chatprogramm", mit dem man Texte von einem Programm zu einem anderen schicken kann. -
Nochmal zu der Hooking-DLL:
Zur Zeit habe ich es so geregelt, dass wenn bereits ein Usermode API-Hook auf NtWriteFile besteht (oder die DLL nicht mit der installierten NT-Version kompatibel ist), der Hook der DLL gar nicht erst installiert wird und eine Messagebox mit den vom ersten Hook bereits veränderten Bytes erscheint. Es würde mich also sehr interessieren, wo diese MessageBox erscheint und wo sich der Hook problemlos installieren lässt. -
Also bei mir geht es problemlos
-
Problemlos hört sich gut an.
Was könnte man nun mit dieser Technik tun?
Im Prinzip fast alles - und zwar mit folgenden APIs (zur Not auch global):Zitat
NtAcceptConnectPort Adresse im Prozess: 2000633428
NtAccessCheck Adresse im Prozess: 2000633444
NtAccessCheckAndAuditAlarm Adresse im Prozess: 2000633460
NtAccessCheckByType Adresse im Prozess: 2000633476
NtAccessCheckByTypeAndAuditAlarm Adresse im Prozess: 2000633492
NtAccessCheckByTypeResultList Adresse im Prozess: 2000633508
NtAccessCheckByTypeResultListAndAuditAlarm Adresse im Prozess: 2000633524
NtAccessCheckByTypeResultListAndAuditAlarmByHandle Adresse im Prozess: 2000633540
NtAcquireCMFViewOwnership Adresse im Prozess: 2000639652
NtAddAtom Adresse im Prozess: 2000633556
NtAddBootEntry Adresse im Prozess: 2000633572
NtAddDriverEntry Adresse im Prozess: 2000633588
NtAdjustGroupsToken Adresse im Prozess: 2000633604
NtAdjustPrivilegesToken Adresse im Prozess: 2000633620
NtAlertResumeThread Adresse im Prozess: 2000633636
NtAlertThread Adresse im Prozess: 2000633652
NtAllocateLocallyUniqueId Adresse im Prozess: 2000633668
NtAllocateUserPhysicalPages Adresse im Prozess: 2000633684
NtAllocateUuids Adresse im Prozess: 2000633700
NtAllocateVirtualMemory Adresse im Prozess: 2000633716
NtAlpcAcceptConnectPort Adresse im Prozess: 2000633732
NtAlpcCancelMessage Adresse im Prozess: 2000633748
NtAlpcConnectPort Adresse im Prozess: 2000633764
NtAlpcCreatePort Adresse im Prozess: 2000633780
NtAlpcCreatePortSection Adresse im Prozess: 2000633796
NtAlpcCreateResourceReserve Adresse im Prozess: 2000633812
NtAlpcCreateSectionView Adresse im Prozess: 2000633828
NtAlpcCreateSecurityContext Adresse im Prozess: 2000633844
NtAlpcDeletePortSection Adresse im Prozess: 2000633860
NtAlpcDeleteResourceReserve Adresse im Prozess: 2000633876
NtAlpcDeleteSectionView Adresse im Prozess: 2000633892
NtAlpcDeleteSecurityContext Adresse im Prozess: 2000633908
NtAlpcDisconnectPort Adresse im Prozess: 2000633924
NtAlpcImpersonateClientOfPort Adresse im Prozess: 2000633940
NtAlpcOpenSenderProcess Adresse im Prozess: 2000633956
NtAlpcOpenSenderThread Adresse im Prozess: 2000633972
NtAlpcQueryInformation Adresse im Prozess: 2000633988
NtAlpcQueryInformationMessage Adresse im Prozess: 2000634004
NtAlpcRevokeSecurityContext Adresse im Prozess: 2000634020
NtAlpcSendWaitReceivePort Adresse im Prozess: 2000634036
NtAlpcSetInformation Adresse im Prozess: 2000634052
NtApphelpCacheControl Adresse im Prozess: 2000634068
NtAreMappedFilesTheSame Adresse im Prozess: 2000634084
NtAssignProcessToJobObject Adresse im Prozess: 2000634100
NtCallbackReturn Adresse im Prozess: 2000634116
NtCancelDeviceWakeupRequest Adresse im Prozess: 2000634132
NtCancelIoFile Adresse im Prozess: 2000634148
NtCancelIoFileEx Adresse im Prozess: 2000639332
NtCancelSynchronousIoFile Adresse im Prozess: 2000639348
NtCancelTimer Adresse im Prozess: 2000634164
NtClearEvent Adresse im Prozess: 2000634180
NtClose Adresse im Prozess: 2000634196
NtCloseObjectAuditAlarm Adresse im Prozess: 2000634212
NtCommitComplete Adresse im Prozess: 2000634948
NtCommitEnlistment Adresse im Prozess: 2000634820
NtCommitTransaction Adresse im Prozess: 2000634884
NtCompactKeys Adresse im Prozess: 2000634228
NtCompareTokens Adresse im Prozess: 2000634244
NtCompleteConnectPort Adresse im Prozess: 2000634260
NtCompressKey Adresse im Prozess: 2000634276
NtConnectPort Adresse im Prozess: 2000634292
NtContinue Adresse im Prozess: 2000634308
NtCreateDebugObject Adresse im Prozess: 2000634324
NtCreateDirectoryObject Adresse im Prozess: 2000634340
NtCreateEnlistment Adresse im Prozess: 2000635204
NtCreateEvent Adresse im Prozess: 2000634356
NtCreateEventPair Adresse im Prozess: 2000634372
NtCreateFile Adresse im Prozess: 2000634388
NtCreateIoCompletion Adresse im Prozess: 2000634404
NtCreateJobObject Adresse im Prozess: 2000634420
NtCreateJobSet Adresse im Prozess: 2000634436
NtCreateKey Adresse im Prozess: 2000634452
NtCreateKeyTransacted Adresse im Prozess: 2000634468
NtCreateKeyedEvent Adresse im Prozess: 2000639188
NtCreateMailslotFile Adresse im Prozess: 2000634484
NtCreateMutant Adresse im Prozess: 2000634500
NtCreateNamedPipeFile Adresse im Prozess: 2000634516
NtCreatePagingFile Adresse im Prozess: 2000634548
NtCreatePort Adresse im Prozess: 2000634564
NtCreatePrivateNamespace Adresse im Prozess: 2000634532
NtCreateProcess Adresse im Prozess: 2000634580
NtCreateProcessEx Adresse im Prozess: 2000634596
NtCreateProfile Adresse im Prozess: 2000634612
NtCreateResourceManager Adresse im Prozess: 2000635140
NtCreateSection Adresse im Prozess: 2000634628
NtCreateSemaphore Adresse im Prozess: 2000634644
NtCreateSymbolicLinkObject Adresse im Prozess: 2000634660
NtCreateThread Adresse im Prozess: 2000634676
NtCreateThreadEx Adresse im Prozess: 2000639540
NtCreateTimer Adresse im Prozess: 2000634692
NtCreateToken Adresse im Prozess: 2000634708
NtCreateTransaction Adresse im Prozess: 2000634724
NtCreateTransactionManager Adresse im Prozess: 2000635028
NtCreateUserProcess Adresse im Prozess: 2000639556
NtCreateWaitablePort Adresse im Prozess: 2000635268
NtCreateWorkerFactory Adresse im Prozess: 2000639428
NtCurrentTeb Adresse im Prozess: 2000801906
NtDebugActiveProcess Adresse im Prozess: 2000635284
NtDebugContinue Adresse im Prozess: 2000635300
NtDelayExecution Adresse im Prozess: 2000635316
NtDeleteAtom Adresse im Prozess: 2000635332
NtDeleteBootEntry Adresse im Prozess: 2000635348
NtDeleteDriverEntry Adresse im Prozess: 2000635364
NtDeleteFile Adresse im Prozess: 2000635380
NtDeleteKey Adresse im Prozess: 2000635396
NtDeleteObjectAuditAlarm Adresse im Prozess: 2000635428
NtDeletePrivateNamespace Adresse im Prozess: 2000635412
NtDeleteValueKey Adresse im Prozess: 2000635444
NtDeviceIoControlFile Adresse im Prozess: 2000635460
NtDisplayString Adresse im Prozess: 2000635476
NtDuplicateObject Adresse im Prozess: 2000635492
NtDuplicateToken Adresse im Prozess: 2000635508
NtEnumerateBootEntries Adresse im Prozess: 2000635524
NtEnumerateDriverEntries Adresse im Prozess: 2000635540
NtEnumerateKey Adresse im Prozess: 2000635556
NtEnumerateSystemEnvironmentValuesEx Adresse im Prozess: 2000635572
NtEnumerateTransactionObject Adresse im Prozess: 2000635588
NtEnumerateValueKey Adresse im Prozess: 2000635604
NtExtendSection Adresse im Prozess: 2000635620
NtFilterToken Adresse im Prozess: 2000635636
NtFindAtom Adresse im Prozess: 2000635652
NtFlushBuffersFile Adresse im Prozess: 2000635668
NtFlushInstallUILanguage Adresse im Prozess: 2000639620
NtFlushInstructionCache Adresse im Prozess: 2000635684
NtFlushKey Adresse im Prozess: 2000635700
NtFlushProcessWriteBuffers Adresse im Prozess: 2000635716
NtFlushVirtualMemory Adresse im Prozess: 2000635732
NtFlushWriteBuffer Adresse im Prozess: 2000635748
NtFreeUserPhysicalPages Adresse im Prozess: 2000635764
NtFreeVirtualMemory Adresse im Prozess: 2000635780
NtFreezeRegistry Adresse im Prozess: 2000635796
NtFreezeTransactions Adresse im Prozess: 2000635812
NtFsControlFile Adresse im Prozess: 2000635828
NtGetContextThread Adresse im Prozess: 2000635844
NtGetCurrentProcessorNumber Adresse im Prozess: 2000639268
NtGetDevicePowerState Adresse im Prozess: 2000635860
NtGetMUIRegistryInfo Adresse im Prozess: 2000639636
NtGetNextProcess Adresse im Prozess: 2000639300
NtGetNextThread Adresse im Prozess: 2000639316
NtGetNlsSectionPtr Adresse im Prozess: 2000635876
NtGetNotificationResourceManager Adresse im Prozess: 2000635172
NtGetPlugPlayEvent Adresse im Prozess: 2000635892
NtGetTickCount Adresse im Prozess: 2000850094
NtGetWriteWatch Adresse im Prozess: 2000635908
NtImpersonateAnonymousToken Adresse im Prozess: 2000635924
NtImpersonateClientOfPort Adresse im Prozess: 2000635940
NtImpersonateThread Adresse im Prozess: 2000635956
NtInitializeNlsFiles Adresse im Prozess: 2000635972
NtInitializeRegistry Adresse im Prozess: 2000635988
NtInitiatePowerAction Adresse im Prozess: 2000636004
NtIsProcessInJob Adresse im Prozess: 2000636020
NtIsSystemResumeAutomatic Adresse im Prozess: 2000636036
NtIsUILanguageComitted Adresse im Prozess: 2000639604
NtListenPort Adresse im Prozess: 2000636052
NtLoadDriver Adresse im Prozess: 2000636068
NtLoadKey Adresse im Prozess: 2000636084
NtLoadKey2 Adresse im Prozess: 2000636100
NtLoadKeyEx Adresse im Prozess: 2000636116
NtLockFile Adresse im Prozess: 2000636132
NtLockProductActivationKeys Adresse im Prozess: 2000636148
NtLockRegistryKey Adresse im Prozess: 2000636164
NtLockVirtualMemory Adresse im Prozess: 2000636180
NtMakePermanentObject Adresse im Prozess: 2000636196
NtMakeTemporaryObject Adresse im Prozess: 2000636212
NtMapCMFModule Adresse im Prozess: 2000639588
NtMapUserPhysicalPages Adresse im Prozess: 2000636228
NtMapUserPhysicalPagesScatter Adresse im Prozess: 2000636244
NtMapViewOfSection Adresse im Prozess: 2000636260
NtModifyBootEntry Adresse im Prozess: 2000636276
NtModifyDriverEntry Adresse im Prozess: 2000636292
NtNotifyChangeDirectoryFile Adresse im Prozess: 2000636308
NtNotifyChangeKey Adresse im Prozess: 2000636324
NtNotifyChangeMultipleKeys Adresse im Prozess: 2000636340
NtOpenDirectoryObject Adresse im Prozess: 2000636356
NtOpenEnlistment Adresse im Prozess: 2000635220
NtOpenEvent Adresse im Prozess: 2000636372
NtOpenEventPair Adresse im Prozess: 2000636388
NtOpenFile Adresse im Prozess: 2000636404
NtOpenIoCompletion Adresse im Prozess: 2000636420
NtOpenJobObject Adresse im Prozess: 2000636436
NtOpenKey Adresse im Prozess: 2000636452
NtOpenKeyTransacted Adresse im Prozess: 2000636468
NtOpenKeyedEvent Adresse im Prozess: 2000639204
NtOpenMutant Adresse im Prozess: 2000636484
NtOpenObjectAuditAlarm Adresse im Prozess: 2000636516
NtOpenPrivateNamespace Adresse im Prozess: 2000636500
NtOpenProcess Adresse im Prozess: 2000636532
NtOpenProcessToken Adresse im Prozess: 2000636548
NtOpenProcessTokenEx Adresse im Prozess: 2000636564
NtOpenResourceManager Adresse im Prozess: 2000635156
NtOpenSection Adresse im Prozess: 2000636580
NtOpenSemaphore Adresse im Prozess: 2000636596
NtOpenSession Adresse im Prozess: 2000636612
NtOpenSymbolicLinkObject Adresse im Prozess: 2000636628
NtOpenThread Adresse im Prozess: 2000636644
NtOpenThreadToken Adresse im Prozess: 2000636660
NtOpenThreadTokenEx Adresse im Prozess: 2000636676
NtOpenTimer Adresse im Prozess: 2000636692
NtOpenTransaction Adresse im Prozess: 2000634740
NtOpenTransactionManager Adresse im Prozess: 2000635044
NtPlugPlayControl Adresse im Prozess: 2000636708
NtPowerInformation Adresse im Prozess: 2000636724
NtPrePrepareComplete Adresse im Prozess: 2000634916
NtPrePrepareEnlistment Adresse im Prozess: 2000634788
NtPrepareComplete Adresse im Prozess: 2000634932
NtPrepareEnlistment Adresse im Prozess: 2000634804
NtPrivilegeCheck Adresse im Prozess: 2000636740
NtPrivilegeObjectAuditAlarm Adresse im Prozess: 2000636756
NtPrivilegedServiceAuditAlarm Adresse im Prozess: 2000636772
NtPropagationComplete Adresse im Prozess: 2000639396
NtPropagationFailed Adresse im Prozess: 2000639412
NtProtectVirtualMemory Adresse im Prozess: 2000636788
NtPulseEvent Adresse im Prozess: 2000636804
NtQueryAttributesFile Adresse im Prozess: 2000636820
NtQueryBootEntryOrder Adresse im Prozess: 2000636836
NtQueryBootOptions Adresse im Prozess: 2000636852
NtQueryDebugFilterState Adresse im Prozess: 2000636868
NtQueryDefaultLocale Adresse im Prozess: 2000636884
NtQueryDefaultUILanguage Adresse im Prozess: 2000636900
NtQueryDirectoryFile Adresse im Prozess: 2000636916
NtQueryDirectoryObject Adresse im Prozess: 2000636932
NtQueryDriverEntryOrder Adresse im Prozess: 2000636948
NtQueryEaFile Adresse im Prozess: 2000636964
NtQueryEvent Adresse im Prozess: 2000636980
NtQueryFullAttributesFile Adresse im Prozess: 2000636996
NtQueryInformationAtom Adresse im Prozess: 2000637012
NtQueryInformationEnlistment Adresse im Prozess: 2000635252
NtQueryInformationFile Adresse im Prozess: 2000637028
NtQueryInformationJobObject Adresse im Prozess: 2000637044
NtQueryInformationPort Adresse im Prozess: 2000637060
NtQueryInformationProcess Adresse im Prozess: 2000637076
NtQueryInformationResourceManager Adresse im Prozess: 2000635188
NtQueryInformationThread Adresse im Prozess: 2000637092
NtQueryInformationToken Adresse im Prozess: 2000637108
NtQueryInformationTransaction Adresse im Prozess: 2000634756
NtQueryInformationTransactionManager Adresse im Prozess: 2000634772
NtQueryInformationWorkerFactory Adresse im Prozess: 2000639492
NtQueryInstallUILanguage Adresse im Prozess: 2000637124
NtQueryIntervalProfile Adresse im Prozess: 2000637140
NtQueryIoCompletion Adresse im Prozess: 2000637156
NtQueryKey Adresse im Prozess: 2000637172
NtQueryLicenseValue Adresse im Prozess: 2000639572
NtQueryMultipleValueKey Adresse im Prozess: 2000637188
NtQueryMutant Adresse im Prozess: 2000637204
NtQueryObject Adresse im Prozess: 2000637220
NtQueryOpenSubKeys Adresse im Prozess: 2000637236
NtQueryOpenSubKeysEx Adresse im Prozess: 2000637252
NtQueryPerformanceCounter Adresse im Prozess: 2000637268
NtQueryPortInformationProcess Adresse im Prozess: 2000639252
NtQueryQuotaInformationFile Adresse im Prozess: 2000637284
NtQuerySection Adresse im Prozess: 2000637300
NtQuerySecurityObject Adresse im Prozess: 2000637316
NtQuerySemaphore Adresse im Prozess: 2000637332
NtQuerySymbolicLinkObject Adresse im Prozess: 2000637348
NtQuerySystemEnvironmentValue Adresse im Prozess: 2000637364
NtQuerySystemEnvironmentValueEx Adresse im Prozess: 2000637380
NtQuerySystemInformation Adresse im Prozess: 2000637396
NtQuerySystemTime Adresse im Prozess: 2000637412
NtQueryTimer Adresse im Prozess: 2000637428
NtQueryTimerResolution Adresse im Prozess: 2000637444
NtQueryValueKey Adresse im Prozess: 2000637460
NtQueryVirtualMemory Adresse im Prozess: 2000637476
NtQueryVolumeInformationFile Adresse im Prozess: 2000637492
NtQueueApcThread Adresse im Prozess: 2000637508
NtRaiseException Adresse im Prozess: 2000637524
NtRaiseHardError Adresse im Prozess: 2000637540
NtReadFile Adresse im Prozess: 2000637556
NtReadFileScatter Adresse im Prozess: 2000637572
NtReadOnlyEnlistment Adresse im Prozess: 2000634836
NtReadRequestData Adresse im Prozess: 2000637588
NtReadVirtualMemory Adresse im Prozess: 2000637604
NtRecoverEnlistment Adresse im Prozess: 2000635092
NtRecoverResourceManager Adresse im Prozess: 2000635108
NtRecoverTransactionManager Adresse im Prozess: 2000635124
NtRegisterProtocolAddressInformation Adresse im Prozess: 2000639380
NtRegisterThreadTerminatePort Adresse im Prozess: 2000637620
NtReleaseCMFViewOwnership Adresse im Prozess: 2000639668
NtReleaseKeyedEvent Adresse im Prozess: 2000639220
NtReleaseMutant Adresse im Prozess: 2000637636
NtReleaseSemaphore Adresse im Prozess: 2000637652
NtReleaseWorkerFactoryWorker Adresse im Prozess: 2000639444
NtRemoveIoCompletion Adresse im Prozess: 2000637668
NtRemoveIoCompletionEx Adresse im Prozess: 2000639364
NtRemoveProcessDebug Adresse im Prozess: 2000637684
NtRenameKey Adresse im Prozess: 2000637700
NtRenameTransactionManager Adresse im Prozess: 2000635060
NtReplaceKey Adresse im Prozess: 2000637716
NtReplacePartitionUnit Adresse im Prozess: 2000637732
NtReplyPort Adresse im Prozess: 2000637748
NtReplyWaitReceivePort Adresse im Prozess: 2000637764
NtReplyWaitReceivePortEx Adresse im Prozess: 2000637780
NtReplyWaitReplyPort Adresse im Prozess: 2000637796
NtRequestDeviceWakeup Adresse im Prozess: 2000637812
NtRequestPort Adresse im Prozess: 2000637828
NtRequestWaitReplyPort Adresse im Prozess: 2000637844
NtRequestWakeupLatency Adresse im Prozess: 2000637860
NtResetEvent Adresse im Prozess: 2000637876
NtResetWriteWatch Adresse im Prozess: 2000637892
NtRestoreKey Adresse im Prozess: 2000637908
NtResumeProcess Adresse im Prozess: 2000637924
NtResumeThread Adresse im Prozess: 2000637940
NtRollbackComplete Adresse im Prozess: 2000634852
NtRollbackEnlistment Adresse im Prozess: 2000634868
NtRollbackTransaction Adresse im Prozess: 2000634900
NtRollforwardTransactionManager Adresse im Prozess: 2000635076
NtSaveKey Adresse im Prozess: 2000637956
NtSaveKeyEx Adresse im Prozess: 2000637972
NtSaveMergedKeys Adresse im Prozess: 2000637988
NtSecureConnectPort Adresse im Prozess: 2000638004
NtSetBootEntryOrder Adresse im Prozess: 2000638020
NtSetBootOptions Adresse im Prozess: 2000638036
NtSetContextThread Adresse im Prozess: 2000638052
NtSetDebugFilterState Adresse im Prozess: 2000638068
NtSetDefaultHardErrorPort Adresse im Prozess: 2000638084
NtSetDefaultLocale Adresse im Prozess: 2000638100
NtSetDefaultUILanguage Adresse im Prozess: 2000638116
NtSetDriverEntryOrder Adresse im Prozess: 2000638132
NtSetEaFile Adresse im Prozess: 2000638148
NtSetEvent Adresse im Prozess: 2000638164
NtSetEventBoostPriority Adresse im Prozess: 2000638180
NtSetHighEventPair Adresse im Prozess: 2000638196
NtSetHighWaitLowEventPair Adresse im Prozess: 2000638212
NtSetInformationDebugObject Adresse im Prozess: 2000638228
NtSetInformationEnlistment Adresse im Prozess: 2000635236
NtSetInformationFile Adresse im Prozess: 2000638244
NtSetInformationJobObject Adresse im Prozess: 2000638260
NtSetInformationKey Adresse im Prozess: 2000638276
NtSetInformationObject Adresse im Prozess: 2000638292
NtSetInformationProcess Adresse im Prozess: 2000638308
NtSetInformationResourceManager Adresse im Prozess: 2000635012
NtSetInformationThread Adresse im Prozess: 2000638324
NtSetInformationToken Adresse im Prozess: 2000638340
NtSetInformationTransaction Adresse im Prozess: 2000634980
NtSetInformationTransactionManager Adresse im Prozess: 2000634996
NtSetInformationWorkerFactory Adresse im Prozess: 2000639476
NtSetIntervalProfile Adresse im Prozess: 2000638356
NtSetIoCompletion Adresse im Prozess: 2000638372
NtSetLdtEntries Adresse im Prozess: 2000638388
NtSetLowEventPair Adresse im Prozess: 2000638404
NtSetLowWaitHighEventPair Adresse im Prozess: 2000638420
NtSetQuotaInformationFile Adresse im Prozess: 2000638436
NtSetSecurityObject Adresse im Prozess: 2000638452
NtSetSystemEnvironmentValue Adresse im Prozess: 2000638468
NtSetSystemEnvironmentValueEx Adresse im Prozess: 2000638484
NtSetSystemInformation Adresse im Prozess: 2000638500
NtSetSystemPowerState Adresse im Prozess: 2000638516
NtSetSystemTime Adresse im Prozess: 2000638532
NtSetThreadExecutionState Adresse im Prozess: 2000638548
NtSetTimer Adresse im Prozess: 2000638564
NtSetTimerResolution Adresse im Prozess: 2000638580
NtSetUuidSeed Adresse im Prozess: 2000638596
NtSetValueKey Adresse im Prozess: 2000638612
NtSetVolumeInformationFile Adresse im Prozess: 2000638628
NtShutdownSystem Adresse im Prozess: 2000638644
NtShutdownWorkerFactory Adresse im Prozess: 2000639524
NtSignalAndWaitForSingleObject Adresse im Prozess: 2000638660
NtSinglePhaseReject Adresse im Prozess: 2000634964
NtStartProfile Adresse im Prozess: 2000638676
NtStopProfile Adresse im Prozess: 2000638692
NtSuspendProcess Adresse im Prozess: 2000638708
NtSuspendThread Adresse im Prozess: 2000638724
NtSystemDebugControl Adresse im Prozess: 2000638740
NtTerminateJobObject Adresse im Prozess: 2000638756
NtTerminateProcess Adresse im Prozess: 2000638772
NtTerminateThread Adresse im Prozess: 2000638788
NtTestAlert Adresse im Prozess: 2000638804
NtThawRegistry Adresse im Prozess: 2000638820
NtThawTransactions Adresse im Prozess: 2000638836
NtTraceControl Adresse im Prozess: 2000638868
NtTraceEvent Adresse im Prozess: 2000638852
NtTranslateFilePath Adresse im Prozess: 2000638884
NtUnloadDriver Adresse im Prozess: 2000638900
NtUnloadKey Adresse im Prozess: 2000638916
NtUnloadKey2 Adresse im Prozess: 2000638932
NtUnloadKeyEx Adresse im Prozess: 2000638948
NtUnlockFile Adresse im Prozess: 2000638964
NtUnlockVirtualMemory Adresse im Prozess: 2000638980
NtUnmapViewOfSection Adresse im Prozess: 2000638996
NtVdmControl Adresse im Prozess: 2000639012
NtWaitForDebugEvent Adresse im Prozess: 2000639028
NtWaitForKeyedEvent Adresse im Prozess: 2000639236
NtWaitForMultipleObjects Adresse im Prozess: 2000639044
NtWaitForMultipleObjects32 Adresse im Prozess: 2000639284
NtWaitForSingleObject Adresse im Prozess: 2000639060
NtWaitForWorkViaWorkerFactory Adresse im Prozess: 2000639460
NtWaitHighEventPair Adresse im Prozess: 2000639076
NtWaitLowEventPair Adresse im Prozess: 2000639092
NtWorkerFactoryWorkerReady Adresse im Prozess: 2000639508
NtWriteFile Adresse im Prozess: 2000639108
NtWriteFileGather Adresse im Prozess: 2000639124
NtWriteRequestData Adresse im Prozess: 2000639140
NtWriteVirtualMemory Adresse im Prozess: 2000639156
NtYieldExecution Adresse im Prozess: 2000639172
NtdllDefWindowProc_A Adresse im Prozess: 2000818655
NtdllDefWindowProc_W Adresse im Prozess: 2000818666
NtdllDialogWndProc_A Adresse im Prozess: 2000818765
NtdllDialogWndProc_W Adresse im Prozess: 2000818776
Von den APIs, die hier stehen, dürften nur die wenigssten Profaner hier überhaupt eine jemeils benutzt haben - scheint also uninteressant - aber genau das Gegenteil ist der Fall.
Unter NT-basierenden Systemen macht die kernel32.dll eigentlich selbst kaum noch was - die Funktionen werden hauptsächlich auf die nativen Varianten in der ntdll.dll umgeleitet (wie es dann in der Kette weiter geht, behalte ich für mich). Dabei landet nicht nur eine API auf der entsprechenden nativen API, sondern in der Regel gleich mehrere. Im Beispiel von NtWriteFile sind das zum Beispiel WriteFile und WriteFileEx aus der kernel32.dll.
-
So gehts leider NICHT: RAM-Disk für WinXP und Vista.
Die Installation von Ramdisk unter Windows XP kann dazu führen, dass die Funktion Systemwiederherstellung unbrauchbar wird!!!!!Microsoft spricht von einem "Minimaltreiber" und empfiehlt für XP einen Patch und Recompilierung, wenn nur NTFS-Filesystem verfügbar ist. Also bitte VORSICHT!
Gruss
(In Win98 war der Ramdisk.sys-Treiber schon dabei und mußte nurmehr in den Startdateien eingerichtet werden).
-
Zitat von p. specht;730538
So gehts leider NICHT: RAM-Disk für WinXP und Vista.
Besten Dank für den Hinweis!
Mal Interesse, meinen Lösungsvorschlag zu testen? Über das Grundprinzip von API-Hooking haben wir ja schon mal gesprochen, das wäre eine praktische Anwendung. Du bist wegen anderer Sachen in diesem Thread und brauchst die Lösung hier nicht, deshalb frage ich nach. -
Ich habe den Verdacht, das vielleicht nicht ganz klar geworden ist, warum ich das hier da überhaupt hingeschrieben habe:
Für jemanden, der API-Hooking gar nicht durchführen will, ist das ganze natürlich komplett uninteressant (ich selbst habe es auch noch nie gebraucht). Manche Sachen lassen sich aber gar nicht anders durchführen (unter anderem der komplette Prozessschutz vom Virenscasnner AntiVir baut darauf auf). Für jemanden, der dies aber braucht und anwenden will, ist es sehr interessant und wichtig zu wissen, dass er sich beim API-Hooking nicht um die Kernel32 zu kümmer hat, sondern stattdessen (wenn es irgendwie geht) die NTDLL hooken muss (der Hook funktioniert sonst gar nicht zuverlässig). Das, was man da so ungnädig lange herunterscrollen muss, ist nur ein kleiner Auszug der NTDLL Funktionen - dorthin werden mit großer Sicherheit noch mehr Funktionen umgeleitet.
Wie man API-Hooking von der Trechnik her genau durchführen muss, findet man im Netz an jeder Straßenecke - was hier von mir zusätzlich noch steht, fehlt da aber oft (und das macht das ganze schwieriger, als es eigentlich ist). Genau deswegen steht das jetzt hier jetzt.
Da kann man mich angreifen wie man will, ich werde nicht aufhören, hier Sachen hinzuschreiben, die für die Leute wichtig sind, die spezielle Programme schreiben wollen. FERTIG!
EDIT // Frabbing: Offtopic-Passagen entfernt -
Zitat
Für jemanden, der dies aber braucht und anwenden will, ist es sehr interessant und wichtig zu wissen, dass er sich beim API-Hooking nicht um die Kernel32 zu kümmer hat, sondern stattdessen (wenn es irgendwie geht) die NTDLL hooken muss (der Hook funktioniert sonst gar nicht zuverlässig).
Weil jede Kernel32-Funktion zwingend darauf zugreift oder warum genau? Das ist mir noch nicht klar genug rüber gekommen.
Ich selber halte API-Hooking für eine äußerst mächtige Methode, manche Sachen recht einfach erreichen zu können. Hat aber natürlich auch seine Tücken. -
Ob alle darauf zugreifen, weiß ich nicht. Bei vielen Funktionen ist das der Fall, dass sie zwingend darauf zugreifen - im Prinzip wandelt da die Kernel32 nur Ansi in Unicode um, macht dann einen Call auf die entsprechende Unicode Funktion, poppt den Stack entsprechend und callt dann direkt die NTDLL. Welche Funktionen der Kernel32 wo in der NTDLL landen, kann man sich denken, wenn man die Namensgebung verfolgt.
-
Nochmals zu der ganzen Sache hier:
API-Hooking ist eine der gefährlichsten Waffen in der Programmierung überhaupt. Eine solche Waffe gibt man natürlich niemandem in die Hände, der bereits die Basis dieser Sache nicht versteht, da hat der if vollkommen recht. Warum aber nicht? Jemand der noch nicht einmal weiß, wo bei so einer Waffe der Lauf und der Kolben liegt (und wie wirkungsvoll und damit auch gefährlich das Ding ist), ist ohne weiteres dazu in der Lage, sich und anderen damit die Köpfe wegzuballern - unter anderem durch weitere Veröffentlichung einer Sache, auch wenn dies unter Umständen gar nicht mehr angebracht ist. Das sind meine Erfahrungen damit.
Ich bin nichts besonderes und es gibt im Profanbereich mit Sicherheit einige Leute, die sich API-Hooking für ihre eigenen Anwendungen mal kurz zusammenproggen können. Bitte passt im eigenen Interesse auf, wem ihr das überlasst,EDIT // Frabbing: Offtopic-Passagen entfernt
-
Wer Änderungen an solchen Codes durchführen will, muss sich schon ein wenig mit Opcodes auskennen und wissen, was er macht. Ansonsten führen seine willkürlichen Versuche vermutlich nur zu ein paar harten Abstürzen, die das Interesse schnell erlahmen lassen.
Aber posten würde ich so Quellcodes auch nicht unbedingt. -
Zitat von AHT;731382
Nochmals zu der ganzen Sache hier:
API-Hooking ist eine der gefährlichsten Waffen in der Programmierung überhaupt.Meine Erfahrungen mit dem Ersetzen von NT-Codeteilen haben ergeben, dass ein in einer Batch-Datei verstecktes deltree -y auf den meisten Computern "datengefährlicher" sein kann und als "Waffe" sogar deutlich zuverlässiger sein kann.
Was ich mit "langweilig" meinte ist nicht, dass es vlt. langweilig wäre, damit herumzuspielen. Im OS rumwursteln birgt immer gewissen "Spass" - das ist ja klar und wer die Codes vom OS hat sieht auch schnell, dass man (eigentlich) alles anstellen kann, was gut oder böse ist.
Es ist deshalb z.B. aber "langweiliger" als z.B. ein guter Sortieralgorithmus, weil dieser eben ohne "Mikrokosmos" auskommt und daher beständig ist, auch wenn man das OS wechselt. So ist das Programmieren eines guten Sortieralgorithmus auch deutlich schwieriger, als das Anwenden von Funktionen, um Funktionen zu ersetzen.
EDIT // Frabbing: Offtopic-Passagen entfernt
EDIT // iF: @Frabbing: Sinn sollte erhalten bleiben, alles andere ist unprofessionell.
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!