-2
我目前正在對一些文件進行加密操作。但是,我在覆蓋.txt文件時遇到了麻煩,並且很難確定哪裏出了問題。下面是我一直在研究的代碼的一部分,我認爲這有問題。MASM32使用程序集覆蓋文件
push 0
push FILE_ATTRIBUTE_NORMAL
push OPEN_EXISTING
push 0
push 0
push FILE_READ_DATA
push offset fData.cFileName
call CreateFile
mov hndl, eax
push 0
push hndl
call GetFileSize
mov fSize, eax
push 0
push offset bfrLen
push fSize
push offset bfr
push hndl
call ReadFile
push hndl
call CloseHandle
lea esi, bfr
mov al, [esi]
cmp al, 7fh
jg skip
encrypt:
mov al, [esi]
xor al, 0ffh
mov [esi], al
inc esi
mov al, [esi]
cmp al, 00h
jne encrypt
push 0
push FILE_ATTRIBUTE_NORMAL
push CREATE_ALWAYS
push 0
push 0
push FILE_WRITE_DATA
push offset file
call CreateFile
mov hndl, eax
push offset bfr
call lstrlen
push 0
push offset bfrLen
push fSize
push offset bfr
push hndl
call WriteFile
push hndl
call CloseHandle
skip:
ret
查看我的代碼,夥計們!提前致謝。
使用調試器和系統調用示蹤器。將錯誤處理添加到您的程序中。另外,如果您希望其他人提供幫助,請特別註釋您的代碼。給出比「有麻煩」更多的細節,描述會發生什麼。也就是說,'推WriteFile'是非常可疑的,你是不是指'調用WriteFile'? – Jester
我沒注意到。謝謝。但是,代碼仍然不起作用。 – Pentagon
另外,你的'jg skip'是可疑的,它會跳過所有內容,包括寫出文件。很難告訴你是否需要這些,只需提供有限的信息。 「不起作用」仍然不如「有麻煩」。另見[問]。 – Jester