Size: a a a

2020 March 19

d

d1vunit in pro.asm
Наверное надо использовать virtalloc
источник

s

s54816 in pro.asm
d1vunit
Наверное надо использовать virtalloc
Среди прочих проблем, ecx не сохраняется вызываемыми функциями, поэтому loop входит во вкус и повторяется сильно дольше, чем ему сказано.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Добрался до твоего исходника. Давай по порядку...
1. В случае ошибки CreateFile возвращается не 0, а INVALID_HANDLE_VALUE.
источник

d

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

d

d1vunit in pro.asm
Но у меня 0
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Инвалид... = -1, почему у тебя 0 ?
источник

ЕК

Евгений Красников (Jin X) in pro.asm
2. Т.к. это начало диска (файла, так сказать), то
invoke SetFilePointer,HMBR,0x00,0x00,FILE_BEGIN
делать необязательно. Хотя тут бы я, конечно, уточнил у других людей, но по логике должно быть так. Уверен на 99.999999999%, что так :))
источник

ЕК

Евгений Красников (Jin X) in pro.asm
3. Не
invoke ReadFile,HMBR,buf,512,bytesread,0x00 — тут ты передаёшь АДРЕС хендла, а не хендл
а
invoke ReadFile,[HMBR],buf,512,bytesread,0x00
источник

ЕК

Евгений Красников (Jin X) in pro.asm
cmp eax,0x00, кстати, можно сократить до test eax,eax, но это уже лирика, а не суть.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
4. А вот суть:
cmp eax,0x00
jz Comp_read
как раз в случае нуля это ошибка, а надо jnz
источник

ЕК

Евгений Красников (Jin X) in pro.asm
5. Про ecx уже сказали, так что меняй на ebx, а loop — на
    dec ebx
   jnz .lp
источник

ЕК

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

ЕК

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

ЕК

Евгений Красников (Jin X) in pro.asm
У меня всё работает (с ипсравлениями)
источник

d

d1vunit in pro.asm
а ну да)
источник

d

d1vunit in pro.asm
у меня не открывается
источник

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
  jnz error_open

  mov dword ptr HMBR,eax
 
  invoke SetFilePointer,HMBR,0x00,0x00,FILE_BEGIN
 
  invoke ReadFile,[HMBR],buf,512,bytesread,0x00
 
  cmp eax,0x00
  jz 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
   
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
[-] Error open PhysicalDriver0
источник

d

d1vunit in pro.asm
а блин*
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Пилять... см. п.1 :)
источник