Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 5
Регистрация: 28.03.2013
Сообщений: 299
1

Считать HEX как в хекс-редакторе

19.10.2015, 07:00. Просмотров 852. Ответов 2
Метки нет (Все метки)


Нужно считать вот эти байты, но так же как они отображены там.
Считать HEX как в хекс-редакторе


Тоесть должно получиться 04000000.
Пробовал так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function fileReadBit(sFile : string; i : Integer): string;
const
  MaxLen = 128;
var
  f : file;
  s : string[MaxLen];
  Cnt : Integer;
begin
  AssignFile(f, sFile);
  FileMode:=fmOpenRead;
  Reset(f,1);
  Seek(f, i);
  blockread(f,s[1], 1, Cnt);
  SetLength(s, Cnt);
  closefile(f);
  Result := StrToHex(s);
end;
Но эта функция вместо 04 выдает просто 4. А нужно что бы именно 04.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2015, 07:00
Ответы с готовыми решениями:

Найти в хекс-редакторе HxD где в PE Explorer видно unknown opcode
В хекс-редакторе HxD найти это место что то не могу... 010061BD-400000=C061BD C061BD/F=CD350 ...

Как найти нужные данные в hex редакторе
Здравствуйте! Я сам по специальности не программист, скорее самоучка)) занимаюсь чип тюнингом...

Как считать hex в unsigned char
Можно как нибудь считать строку в unsigned char по примеру char n; n = "";? И плюс к тому как...

Компиляция в HEX редакторе
Есть простая программа на ассемблере: mov ax, 0001 mov ds, ax mov ah, 09 mov dx, 0006 int 21...

__________________
Помогаю в написании студенческих работ здесь.
2
Житель Земли
2819 / 2674 / 373
Регистрация: 26.07.2011
Сообщений: 10,731
Записей в блоге: 1
19.10.2015, 09:34 2
ну допиши ноль, какие проблемы?
1
13065 / 5851 / 1705
Регистрация: 19.09.2009
Сообщений: 8,807
19.10.2015, 10:10 3
Здесь удобно использовать функции BinToHex() и HexToBin() из модуля Classes:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
uses
  Classes;
 
//Чтение aCnt байтов, начиная с позиции по смещению aOffs (i = 0..), и возвращение
//их представления в виде строки с последовательностью HEX кодов.
function FileReadByte(const aFileName : String; const aOffs : Int64; const aCnt : Cardinal) : String;
var
  Fs : TFileStream;
  SBin : AnsiString;
  CntRes : Integer;
begin
  //Чтение двоичных данных из файлового потока в ANSI строку.
  Fs := TFileStream.Create(aFileName, fmOpenRead + fmShareDenyWrite);
  try
    SetLength(SBin, aCnt);
    Fs.Seek(aOffs, soFromBeginning);
    CntRes := Fs.Read(SBin[1], aCnt);
  finally
    FreeAndNil(Fs);
  end;
  //Представление двоичных данных в виде строки с последовательностю HEX кодов.
  SetLength(Result, CntRes * 2);
  BinToHex(PAnsiChar(SBin), PChar(Result), CntRes);
end;
 
//Проверка.
procedure TForm1.Button1Click(Sender: TObject);
const
  //Последовательность HEX кодов.
  SHex : String =
      '43524f5447010001' + '000f0a1304000000'
    + '0000000000000000' + '0000000000000000'
    + '0000000000000000' + '0000000000000000'
    + '3131313131313131' + '3131313131313131'
    + '3131313131313131' + '3131313131313131'
    + '3131313131313131' + '313131';
var
  FileName : String;
  Fs : TFileStream;
  SBin : AnsiString;
begin
  //Полный путь файла в директории исполняемого файла программы.
  FileName := ExtractFilePath(ParamStr(0)) + 'test.bin';
 
  //Формируем двоичные данные по HEX кодам.
  SetLength(SBin, Length(SHex) div 2);
  HexToBin(PChar(SHex), PChar(SBin), Length(SBin));
  //Запись двоичных данных в файловый поток.
  Fs := TFileStream.Create(FileName, fmCreate);
  try
    Fs.Write(SBin[1], Length(SBin));
  finally
    FreeAndNil(Fs);
  end;
 
  //Чтение двоичных данных из файла и их показ в виде последовательности HEX кодов.
  ShowMessage( FileReadByte(FileName, 12, 4) );
end;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2015, 10:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Почему дамп программы в Ollydbg и в HEX-редакторе отличается?
Доброго времени суток! Возможно задаю тупой вопрос, но у меня такая проблема: Открываю одну и ту...

Что нужно знать для редактирования вируса в hex-редакторе?
Что нужно знать для редактирования вируса в hex-редакторе?

[Dendy] Увеличить начальную скорость падения блоков в tetris.1989 (редактирование значений в HEX редакторе)
Доброго дня! Когда-то мне здесь помогли написать диплом. Теперь снова обращаюсь к Вам. Играю в...

Как отредактировать файл специального формата в текстовом редакторе или редакторе кодов?
Привет специалистам! Я - программист СУБД и не могу решить указанную задачу. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.