Войти

Показать полную графическую версию : Autoit работа в hex поиск offset'а


aktivizion
14-03-2010, 09:21
возможно ли, осуществить через автоит просмотр файла в hex виде?
ну или по определенному оффсету вести поиск в файле?

Yashied
14-03-2010, 12:38
#Include <EditConstants.au3>
#Include <WinAPI.au3>
#Include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

Global $sFile, $hFile, $iSize, $sData, $tData, $iBytes

$sFile = @WindowsDir & '\regedit.exe'
$iSize = FileGetSize($sFile)
$tData = DllStructCreate('byte[' & $iSize & ']')
$hFile = _WinAPI_CreateFile($sFile, 2, 2, 2)
_WinAPI_ReadFile($hFile, DllStructGetPtr($tData), $iSize, $iBytes)
_WinAPI_CloseHandle($hFile)

$sData = ''
For $i = 1 To $iSize
$sData &= Hex(DllStructGetData($tData, 1, $i), 2)
If Mod($i, 16) = 0 Then
$sData &= @CRLF
Else
$sData &= ' '
EndIf
Next
$sData = StringTrimRight($sData, 2)

Global $Edit

GUICreate('MyGUI', 422, 526)
$Edit = GUICtrlCreateEdit('', 10, 10, 402, 506, BitOR($ES_READONLY, $WS_VSCROLL, $WS_HSCROLL))
GUICtrlSetFont(-1, 8.5, 400, 0, 'Courier')
GUICtrlSetData($Edit, $sData)
GUISetState()

Do
Until GUIGetMsg() = -3

aktivizion
14-03-2010, 21:14
Yashied,
неплохо, проц жрет сильно, файл в 20 мегобайт несмог дождаться никак, и неосуществлен поиск по оффсету
вот я и незнаю, на каком языке (программирования) можно такое осущиствить

Yashied
14-03-2010, 21:29
Да практически на любом языке. Это просто пример. У меня нет ни времени, ни желания писать полноценную программу, это тебе нужно, а не мне. По хорошему не нужно отображать весь файл целиком, достаточно считывать информацию из структуры по одной странице, ну или создать буфер в несколько страниц. Поиск, это тоже не проблема, тут главное максимально оптимизировать алгоритм.




© OSzone.net 2001-2012