Skip to content

Instantly share code, notes, and snippets.

@donnaken15
Last active February 23, 2021 16:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save donnaken15/2f03e3d21dae13f5292a7e362d8850f7 to your computer and use it in GitHub Desktop.
Save donnaken15/2f03e3d21dae13f5292a7e362d8850f7 to your computer and use it in GitHub Desktop.
Flat assembler: reading files, using fopen+fread
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'
@donnaken15
Copy link
Author

msvcrt blooooaaattt use createfile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment