Momentan arbeite ich an dem Aufruf von CreateFile2 von kernel32.dll von Inline-Assembly. Der erste Parameter ist LPCWSTR und kann unter https://msdn.microsoft.com/en-us/library/windows/desktop/hh449422(v=vs.85).aspx eingesehen werden.Unicode-Darstellung
Ich habe Probleme mit der Übergabe von Unicode-Zeichen. Aus meiner Sicht sollte 0x0065 der Unicode-Charakter für 'A' sein, aber ich bekomme eine Menge seltsamer ausländischer Buchstaben.
Ich versuche, ebx auf "A.txt" zu setzen, dann CreateFile2 aufrufen, aber die Datei, die erstellt wird, hat den Namen "楆 硴 t 楆 敬 2".
Unten ist die Unicode-Werte, die ich in ebx werfen, jede Hilfe wird sehr geschätzt.
mov ebx, esp
mov byte ptr[ebx], 0x0065
mov byte ptr[ebx+1], 0x0046
mov byte ptr[ebx+2], 0x0074
mov byte ptr[ebx+3], 0x0078
mov byte ptr[ebx+4], 0x0074
mov byte ptr[ebx+5], 0
push 0
push 2
push 2
push 0x100000000
push ebx
call eax
Werfen Sie einen Blick auf den Inhalt ebx, bevor Sie es drücken. Du willst 'word ptr' und ebx, ebx + 2, ebx + 4, usw. –
Ich habe gerade die ebx + 2-Sache direkt vor dem Posten gefangen, aber das mov-Wort hat es behoben. Vielen Dank. – Feek
Außerdem ist "A" 0x0041 und "." Ist 0x002E. –