Size: a a a

2020 March 19

ЕК

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

d

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

d

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

d

d1vunit in pro.asm
00 00 00 58 30 00 00 00 00 00 00
00 00 00 00 3C 30 00 00 70 30 00 00
D0 30 00 00 00 00 00 00 00 00 00 00
4A 30 00 00 DC 30 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 4B 65 72 6E 65 6C 33 32
2E 64 6C 6C 00 00 6D 73 76 63 72 74
2E 64 6C 6C 00 00 00 00 88 30 00 00
96 30 00 00 A4 30 00 00 B2 30 00 00
BE 30 00 00 00 00 00 00 F0 58 D6 75
A0 3E D6 75 50 3C D6 75 30 42 D6 75
C0 42 D6 75 00 00 00 00 00 00 45 78
69 74 50 72 6F 63 65 73 73 00 00 00
43 72 65 61 74 65 46 69 6C 65 41 00
00 00 43 6C 6F 73 65 48 61 6E 64 6C
65 00 00 00 52 65 61 64 46 69 6C 65
00 00 00 00 53 65 74 46 69 6C 65 50
6F 69 6E 74 65 72 00 00 E8 30 00 00
F2 30 00 00 00 00 00 00 70 4F 56 75
E0 3C 56 75 00 00 00 00 00 00 70 72
69 6E 74 66 00 00 00 00 70 75 74 63
68 61 72 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 0
источник

d

d1vunit in pro.asm
5C 5C 5C 5C 2E 5C 5C 50 68 79 73 69
63 61 6C 44 72 69 76 65 30 00 5B 2D
5D 20 45 72 72 6F 72 20 72 65 61 64
20 4D 42 52 0A 00 5B 2B 5D 20 43 6F
6D 70 6C 65 74 65 20 72 65 61 64 20
6D 62 72 0A 5B 2A 5D 20 4D 42 52 3A
20 00 25 30 30 32 58 20 00 6A 00 6A
00 6A 03 6A 00 6A 01 68 00 00 00 80
68 00 20 40 00 FF 15 74 30 40 00 83
F8 00 0F 84 A2 00 00 00 A3 00 10 40
00 6A 00 6A 00 6A 00 68 00 10 40 00
FF 15 80 30 40 00 6A 00 68 09 12 40
00 68 00 02 00 00 68 04 10 40 00 68
00 10 40 00 FF 15 7C 30 40 00 83 F8
00 74 10 68 16 20 40 00 FF 15 DC 30
40 00 E9 8A 00 00 00 68 2A 20 40 00
FF 15 DC 30 40 00 FC 8D 35 04 10 40
00 B9 00 02 00 00 C6 05 08 12 40 00
00 AC 0F B6 C0 A3 04 12 40 00 80 3D
08 12 40 00 0C 75 0F C6 05 08 12 40
00 00 6A 0A FF 15 E0 30 40 00 FE 05
08 12 40 00 A1 04 12 40 00 50 68 4A
20 40 00 FF 15 DC 30 40 00 83 C4 08
E2 C3 EB 20 5B 2D 5D 20 45 72 72 6F
72 20 6F 70 65 6E 20 50 68 79 73 69
63 61 6C 44 72 69 76 65 72 30 0A 00
68 18 21 40 00 FF 15 DC 30 40 00 EB
0B 68 00 10 40 00 FF 15 78 30 40 00
6A 00 FF 15 70 30 40 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00
источник

d

d1vunit in pro.asm
Вот нету здесь 0x55aa
источник

ЕК

Евгений Красников (Jin X) in pro.asm
А результат функция-то какой возвращает?
источник

s

s54816 in pro.asm
d1vunit
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

msg db '%002X ',0x00

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

  cmp eax,0x00
  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
  jz Comp_read
 
  invoke printf,error_read
  jmp near return
Comp_read:

   invoke printf,complete_read

   cld
   lea esi,[buf]
   mov ecx,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
   mov eax,dword [var1]
   cinvoke printf,msg,eax
   
   loop .lp
   
error_open:
jmp short continue

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

continue:
   invoke printf,error_open_msg
   jmp short @f
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'
Там бэкслэшей в имени диска от души. А должно быть три. И дальше там указатель вместо хэндла в ReadFile и в SetFilePointer.
источник

d

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

d

d1vunit in pro.asm
Евгений Красников (Jin X)
А результат функция-то какой возвращает?
0x00
источник

ЕК

Евгений Красников (Jin X) in pro.asm
d1vunit
Да я посмотрел столько люди и используют слешей
Кстати, да. Ты смотришь в Си, там они дублируются.
источник

d

d1vunit in pro.asm
Да дублируются
источник

ЕК

Евгений Красников (Jin X) in pro.asm
А в асме нет, поэтому в 2 раза меньше пиши.
источник

d

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

d

d1vunit in pro.asm
filename db '\\.\PhysicalDrive0',0
источник

d

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

L

Leon in pro.asm
А у тебя случайно не gpt?
источник

d

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

КП

Король Плутин in pro.asm
Передайте (кто может и кому интересно), что тип разметки не зависит от [не]успешности считывания первых 512 байт с накопителя: даже если там gpt, то должны быть и 55aa, и валидный раздел на весь накопитель (так называемая protective mbr record, для обратной совместимости с mbr-only софтом, чтобы дел нехороших с диском не натворить).
источник

s

s54816 in pro.asm
d1vunit
00 00 00 58 30 00 00 00 00 00 00
00 00 00 00 3C 30 00 00 70 30 00 00
D0 30 00 00 00 00 00 00 00 00 00 00
4A 30 00 00 DC 30 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 4B 65 72 6E 65 6C 33 32
2E 64 6C 6C 00 00 6D 73 76 63 72 74
2E 64 6C 6C 00 00 00 00 88 30 00 00
96 30 00 00 A4 30 00 00 B2 30 00 00
BE 30 00 00 00 00 00 00 F0 58 D6 75
A0 3E D6 75 50 3C D6 75 30 42 D6 75
C0 42 D6 75 00 00 00 00 00 00 45 78
69 74 50 72 6F 63 65 73 73 00 00 00
43 72 65 61 74 65 46 69 6C 65 41 00
00 00 43 6C 6F 73 65 48 61 6E 64 6C
65 00 00 00 52 65 61 64 46 69 6C 65
00 00 00 00 53 65 74 46 69 6C 65 50
6F 69 6E 74 65 72 00 00 E8 30 00 00
F2 30 00 00 00 00 00 00 70 4F 56 75
E0 3C 56 75 00 00 00 00 00 00 70 72
69 6E 74 66 00 00 00 00 70 75 74 63
68 61 72 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 0
Тип разметки — директория импорта.
источник