現在、私は、インラインアセンブリからkernel32.dllからCreateFile2を呼び出しています。最初のパラメータはLPCWSTRで、https://msdn.microsoft.com/en-us/library/windows/desktop/hh449422(v=vs.85).aspxに表示されます。ユニコード表現
ユニコード文字を渡す際に問題が発生しています。私の理解から、0x0065は 'A'のユニコード文字でなければならないが、奇妙な外国の文字がたくさんある。
ebxを 'A.txt'に設定しようとしていて、CreateFile2を呼び出していますが、作成されているファイルの名前が '䙥硴楆敬2'です。
以下は、私がebxに投げかけているユニコードの値です。どんな助けでも大歓迎です。
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
プッシュする前にebxであると指摘された内容を見てください。あなたは 'word ptr'とebx、ebx + 2、ebx + 4などがほしいと思っています。 –
投稿する直前にebx + 2の事を捕まえたばかりですが、movワードで修正しました。ありがとうございました。 – Feek
また、 'A'は0x0041で、' .'は0x002Eです。 –