чтение меток железа (assembler)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
чтение меток железа (assembler) - 2009-11-08 02:16:32.326666
|
|
|
v0lume
Сообщений: 310
Оценки: 0
Присоединился: 2009-10-22 20:48:37.160000
|
как выглядит процедура чтения меток железа? з.ы. assembler не знаю, быстро выучить неполучитсО, всё это мне нужно для подредактирования маЯКа ;)
|
|
|
RE: чтение меток железа (assembler) - 2009-11-08 08:22:53.806666
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
.386
.model small, stdcall
option casemap :none
include \MASM32\INCLUDE\user32.inc
include \MASM32\INCLUDE\kernel32.inc
includelib \MASM32\LIB\kernel32.lib
includelib \MASM32\LIB\user32.lib
; #########################################################################
.data
file db "\\.\PhysicalDrive0", 0
.data?
return1 dd ?
return2 dd ?
in1 db 20h dup (?)
buffer1 db 20h dup (?)
buffer2 db 300h dup (?)
.code
start:
PUSH 0 ; /hTemplateFile = NULL
PUSH 0 ; |Attributes = 0
PUSH 3 ; |Mode = OPEN_EXISTING
PUSH 0 ; |pSecurity = NULL
PUSH 3 ; |ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
PUSH 0C0000000h ; |Access
PUSH offset file ; |FileName
CALL CreateFileA ; \CreateFileA
push eax
PUSH 0 ; /pOverlapped = NULL
PUSH offset return1 ; |pBytesReturned
PUSH 18h ; |OutBufferSize = 18 (24.)
PUSH offset buffer1 ; |OutBuffer
PUSH 0 ; |InBufferSize = 0
PUSH 0 ; |InBuffer = NULL
PUSH 74080h ; |IoControlCode = SMART_GET_VERSION
PUSH eax ; |hDevice
CALL DeviceIoControl ; \DeviceIoControl
xor ecx, ecx
xor eax, eax
mov al, byte ptr ds:[buffer1 + 3]
SAR EAX,CL
AND EAX,10
NEG EAX
SBB EAX,EAX
AND AL,0B5h
ADD EAX,0ECh
push eax
mov edx, eax
mov edi, offset in1
xor eax, eax
xor ebx, ebx
MOV DWORD PTR DS:[EDi+4],10100h
SHL AL,4
OR AL,0A0h
MOV DWORD PTR DS:[EDI],200h
MOV BYTE PTR DS:[EDI+8],0
MOV BYTE PTR DS:[EDI+9],AL
MOV BYTE PTR DS:[EDI+0Ah],DL
MOV BYTE PTR DS:[EDI+0Ch],BL
pop eax
pop eax
PUSH 0 ; /pOverlapped = NULL
PUSH offset return2 ; |pBytesReturned
PUSH 210h ; |OutBufferSize = 210 (528.)
PUSH offset buffer2 ; |OutBuffer
PUSH 20h ; |InBufferSize = 20 (32.)
PUSH offset in1 ; |InBuffer
PUSH 7C088h ; |IoControlCode = SMART_RCV_DRIVE_DATA
PUSH eax ; |hDevice
CALL DeviceIoControl ; \DeviceIoControl
push 0
call ExitProcess
end start
|
|
|
RE: чтение меток железа (assembler) - 2009-11-08 19:02:45.640000
|
|
|
DzumoHu4
Сообщений: 279
Оценки: 0
Присоединился: 2008-08-04 19:04:43.236666
|
quote:
ORIGINAL: v0lume как выглядит процедура чтения меток железа? з.ы. assembler не знаю, быстро выучить неполучитсО, всё это мне нужно для подредактирования маЯКа ;) Неа не то и не туда… То как реализовал Флинт - то реализовал флинт, а разработчики Маяка могли пойти по 1001 another Way, Asm не набор "волшебных заклинаний" и не "модульный конструктор" каждая команда это "кирпичик" а вот что ты хочешь из этих "кирпичиков" построить это уже твоё дело, можно арку, а можно мост, можно башню а можно жилой дом, тут уже как твоя фантазия предпочтёт. С твоим уровнем знаний ты врятли что то сделаешь, да и разработчики Маяка не дураки, скорее всего навесили протектор. Мой тебе совет, ищи другой сервер…..
|
|
|
RE: чтение меток железа (assembler) - 2009-11-08 21:39:14.940000
|
|
|
v0lume
Сообщений: 310
Оценки: 0
Присоединился: 2009-10-22 20:48:37.160000
|
хех, другой сервер, те пидоры мне пораздавали amx'ов на тех серверах, где я играл, да и думаю что не только hz и devilmice'ом обошлось, всё равно даже и не думай что отступлюсь =\
|
|
|
|
|