home *** CD-ROM | disk | FTP | other *** search
/ The Elite Hackers Toolkit / TheEliteHackersToolkitVolume1_1998.rar / HACKERS.BIN / appcraks / STNPEER.ZIP / FILE.INC < prev    next >
Text File  |  1998-01-26  |  4KB  |  141 lines

  1. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  2. ;
  3. ;                   FILE.INC - macros for accessing one file
  4. ;                   (C) Copyright 1998 by ANAKiN [DaVinci]
  5. ;
  6. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  7.  
  8. Comment %
  9.           fileopen  <filename>
  10.           fileclose
  11.           filelseek <distance>
  12.           fileread  <buffer> <bytes>
  13.           filewrite <buffer> <bytes>
  14.         %
  15.  
  16. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  17. ; imports
  18. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  19.  
  20. Extrn   CreateFileA    : PROC
  21. Extrn   CloseHandle    : PROC
  22. Extrn   ReadFile       : PROC
  23. Extrn   WriteFile      : PROC
  24. Extrn   SetFilePointer : PROC
  25.  
  26. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  27. ; constants
  28. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  29.  
  30. FILE_BEGIN      equ 0
  31.  
  32. GENERIC_READ    equ 80000000h
  33. GENERIC_WRITE   equ 40000000h
  34. GENERIC_RW      equ GENERIC_READ + GENERIC_WRITE
  35.  
  36. CREATE_NEW      equ 1
  37. CREATE_ALWAYS   equ 2
  38. OPEN_EXISTING   equ 3
  39. OPEN_ALWAYS     equ 4
  40.  
  41. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  42. ; data
  43. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  44.  
  45. .data
  46.  
  47. FileAttr        dd 0
  48. NumberOfBytesRW dd 0
  49. FileHandle      dd 0
  50.  
  51. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  52. ; macros
  53. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  54.  
  55. .code
  56.  
  57. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  58. ; fileopen - opens a file for read & write access
  59. ; IN:
  60. ;  _filename
  61. ; OUT:
  62. ;  FileHandle filled
  63. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  64.  
  65. fileopen macro  _filename
  66.         PUSH    0                 ; hTemplateFile
  67.         PUSH    offset FileAttr   ; fdwAttrs
  68.         PUSH    OPEN_EXISTING     ; fdwCreate
  69.         PUSH    0                 ; lpsa
  70.         PUSH    0                 ; fdwShareMode
  71.         PUSH    GENERIC_RW        ; fdwAccess
  72.         PUSH    filename          ; lpszName
  73.         CALL    CreateFileA
  74.         MOV     [FileHandle], EAX
  75. endm
  76.  
  77. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  78. ; fileclose - close file
  79. ; IN:
  80. ;  nothing
  81. ; OUT:
  82. ;  nothing
  83. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  84.  
  85. fileclose macro
  86.         PUSH    [FileHandle]
  87.         CALL    CloseHandle
  88. endm
  89.  
  90. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  91. ; filelseek - seek to fileposition
  92. ; IN:
  93. ;  distance
  94. ; OUT:
  95. ;  nothing
  96. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  97.  
  98. filelseek macro _distance
  99.         PUSH    FILE_BEGIN
  100.         PUSH    0
  101.         PUSH    _distance
  102.         PUSH    [FileHandle]
  103.         CALL    SetFilePointer
  104. endm
  105.  
  106. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  107. ; fileread - read a specific number of bytes from the file
  108. ; IN:
  109. ;  buffer
  110. ;  number of bytes
  111. ; OUT:
  112. ;  buffer filled, (EAX == -1) -> failed
  113. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  114.  
  115. fileread macro  _buffer, _BytesToRead
  116.         PUSH    0                        ; lpOverlapped
  117.         PUSH    offset NumberOfBytesRW   ; lpNoBR
  118.         PUSH    _BytesToRead             ; lpNoBTR
  119.         PUSH    offset _buffer           ; lpBuffer
  120.         PUSH    [FileHandle]             ; hFile
  121.         CALL    ReadFile
  122. endm
  123.  
  124. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  125. ; filewrite - write a specific number of bytes to the file
  126. ; IN:
  127. ;  buffer
  128. ;  number of bytes
  129. ; OUT:
  130. ;  (EAX == -1) -> failed
  131. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  132.  
  133. filewrite macro  _buffer, _BytesToWrite
  134.         PUSH    0                        ; lpOverlapped
  135.         PUSH    offset NumberOfBytesRW   ; lpNoBW
  136.         PUSH    _BytesToWrite            ; lpNoBTW
  137.         PUSH    offset _buffer           ; lpBuffer
  138.         PUSH    [FileHandle]             ; hFile
  139.         CALL    WriteFile
  140. endm
  141.