Size: a a a

2020 March 19

ЕК

Евгений Красников (Jin X) in pro.asm
У тебя всё, что не 0 после CreateFile летит в error. Хоть нормальный хендл, хоть инвалид_хендл_велью.
источник

d

d1vunit in pro.asm
format PE

use32

include 'C:\fasm\INCLUDE\win32ax.inc'

section '.bss' readable writable

   HMBR rd 1
   
   buf rb 512
   
   var1 rd 1
   
   count1 rb 1
   
   bytesread rd 1

section '.text' readable executable

entry _start

filename db '\\.\PhysicalDrive0',0

error_read db '[-] Error read MBR',0x0a,0x00

complete_read db '[+] Complete read mbr',0x0a,'[*] MBR: ',0x00,0x0a

msg db '%002X ',0x00

_start:
 
  invoke CreateFile,filename, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0

  test eax,eax
  jz error_open

  mov dword ptr HMBR,eax
 
  invoke SetFilePointer,HMBR,0x00,0x00,FILE_BEGIN
 
  invoke ReadFile,[HMBR],buf,512,bytesread,0x00
 
  cmp eax,0x00
  jnz Comp_read
 
  invoke printf,error_read
  jmp near return
Comp_read:

   invoke printf,complete_read

   cld
   lea esi,[buf]
   mov bx,512
   mov byte ptr count1,0x00
.lp:
   lodsb
   movzx eax,al
   mov dword [var1],eax
   cmp byte ptr count1,0x0c
   jnz .continue
   mov byte ptr count1,0x00
   invoke putchar,0x0a
   
.continue:
   
   inc byte ptr count1
   dec bx
   
   mov eax,dword [var1]
   cinvoke printf,msg,eax
 
 
   test bx,bx
   jnz .lp
   jmp short return
error_open:
   
   jmp short continue

   error_open_msg db '[-] Error open PhysicalDriver0',0x0a,0x00

continue:
   
   invoke printf,error_open_msg

return:

  invoke CloseHandle,[HMBR]
  invoke ExitProcess,0x00

section '.code' import data readable executable

   library Kernel32,'Kernel32.dll',\
           msvcrt,'msvcrt.dll',\
           user32,'user32.dll'
   
    import Kernel32,\
       ExitProcess,'ExitProcess',\
       CreateFile,'CreateFileA',\
       CloseHandle,'CloseHandle',\
       ReadFile,'ReadFile',\
       WriteFile,'WriteFile',\
       SetFilePointer,'SetFilePointer'
   
    import msvcrt,printf,'printf',putchar,'putchar'
источник

d

d1vunit in pro.asm
есть ура
источник

d

d1vunit in pro.asm
это  моя рассеяность и моя
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Пость лучше через pastebin или т.п. А то такие портянки длинные...
источник

d

d1vunit in pro.asm
концентрация
источник

d

d1vunit in pro.asm
ок
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Опять
   test eax,eax
  jz error_open
вот!
   cmp eax,INVALID_HANDLE_VALUE
  je error_open
источник

ЕК

Евгений Красников (Jin X) in pro.asm
invoke SetFilePointer,HMBR,0x00,0x00,FILE_BEGIN
здесь тоже [HMBR] надо
источник

d

d1vunit in pro.asm
я думал указатель
источник

ЕК

Евгений Красников (Jin X) in pro.asm
   dec ebx
...
  test bx,bx
  jnz .lp
это избыточно (и почему bx?)...
просто в конце:
   dec ebx
  jnz .lp
источник

ЕК

Евгений Красников (Jin X) in pro.asm
d1vunit
я думал указатель
Ну MSDN открой же!
источник

d

d1vunit in pro.asm
Евгений Красников (Jin X)
   dec ebx
...
  test bx,bx
  jnz .lp
это избыточно (и почему bx?)...
просто в конце:
   dec ebx
  jnz .lp
я просто уже не помню какие флаги выставляет dec
источник

d

d1vunit in pro.asm
все работает спасибо)
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Все, кроме CF.
источник

d

d1vunit in pro.asm
а причем он тут?
источник

AQ

Ask Q in pro.asm
прежде чем кодить на асме хотяб команды и способы их использования изучил чтоли
источник

d

d1vunit in pro.asm
я знаю их просто когда знаешь много арх уже не понишь тонкости
источник

d

d1vunit in pro.asm
4 байта не сыграют роли
источник

d

d1vunit in pro.asm
помнишь*
источник