Last active
February 23, 2021 16:15
-
-
Save donnaken15/2f03e3d21dae13f5292a7e362d8850f7 to your computer and use it in GitHub Desktop.
Flat assembler: reading files, using fopen+fread
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
format PE GUI 3.1 | |
use16 | |
align 1 | |
entry start | |
heap 0 | |
stack 0 | |
include 'win32a.inc' | |
struct _iobuf | |
_ptr dd ? ; char* | |
_cnt dd ? ; int | |
_base dd ? ; char* | |
_flag dd ? ; int | |
_file dd ? ; int | |
_charbuf dd ? ; int | |
_bufsiz dd ? ; int | |
_tmpfname dd ? ; char* | |
ends | |
section '' code data readable executable writeable shareable discardable notpageable | |
start: | |
invoke fopen,c,d | |
mov [a],eax | |
invoke fread,b,1,16,[a] | |
invoke MessageBox,HWND_DESKTOP,b,c,MB_OK | |
invoke fclose,[a] | |
invoke ExitProcess,0 | |
a _iobuf ? | |
b db 17 dup ? | |
c db 'FILE.TXT',0 | |
d db 'r',0 | |
section '' import data readable writeable | |
library kernel,'KERNEL32.DLL',\ | |
msvcrt,'msvcrt.dll',\ | |
user32,'USER32.DLL' | |
import kernel,\ | |
ExitProcess,'ExitProcess' | |
import msvcrt,\ | |
fopen,'fopen',\ | |
fread,'fread' | |
import user32,\ | |
MessageBox,'MessageBoxA' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
msvcrt blooooaaattt use createfile