Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2010, 09:24   #11
dolphin705
Форумчанин
 
Аватар для dolphin705
 
Регистрация: 02.08.2008
Сообщений: 213
По умолчанию

p51x

Или я что то не понял или программа даёт на выходе тоько h файл вида
0x4D, 0x5A, 0x50,

а нужно

со знаком $
dolphin705 вне форума Ответить с цитированием
Старый 03.08.2010, 09:33   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

читать файл по-байтово это школьный курс паскаля.
банальное.
Код:
function ReadAsHEX(FileName:string):string;
var F:File of byte;
     b:byte; 
begin
 AssignFile(F,FileName);
 Reset(F);
 Result:='';
 while not EoF(F) do 
  begin
   read(F,b);
   Result:=Result+'$'+IntToHEX(b,2)+',';
  end;
 Delete(Result,Length(Result),1);//в конце запятую убираем
 CloseFile(F);
end;
применяем Memo1.Text:=ReadAsHEX(<файл>);
функцию не проверял, ибо тут нет Делфи(я не дома)
Цитата:
p51x

Или я что то не понял или программа даёт на выходе тоько h файл вида
0x4D, 0x5A, 0x50,

а нужно

со знаком $
1)0x это Сишное(и не тока)
2)можно заменой пройтись меняя 0x на $
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.08.2010, 09:45   #13
dolphin705
Форумчанин
 
Аватар для dolphin705
 
Регистрация: 02.08.2008
Сообщений: 213
По умолчанию

Спасибо Пепел Феникса,к слову в школе у меня не было паскаля))
dolphin705 вне форума Ответить с цитированием
Старый 03.08.2010, 09:47   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я это к тому что это базовые знания.

у меня был паскаль в школе, но к тому времени мне было скучно на уроках уже.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.08.2010, 09:52   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

честно говоря, не понял, чем файл в ресурсах не устраивает.
Ну, раз пошла такая пьянка - вот рабочий вариант под Delphi:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var TS : TStringList;
  FS : TFileStream;
  s  : string;
  i : integer;
  B : byte;
begin
  FS := TFileStream.Create('C:\WINDOWS\system32\winmine.exe', fmOpenRead );
  if FS.Size=0 then begin
        Application.MessageBox( 'Размер файла нулевой', 'Ошибка', MB_ICONSTOP or MB_OK);
        FreeAndNil(FS);
        Exit;
  end;
  TS := TStringList.Create;
  TS.Append('const Fl : array[0..'+IntToStr(FS.Size-1)+'] of byte = (');
  s := '';
  for i:=1 to FS.Size  do begin
     FS.Read(B, 1 );
     s := s + Format('$%x', [B]);
     if i<>FS.Size then s := s + ',';
     if length(s)>50 then begin
       TS.Append(s);
       s := '';
     end;
  end;
  FreeAndNil(FS);

  if length(s)>0 then TS.Append(s);
  TS.Append(');');

  TS.SaveToFile('c:\FL.inc');

  FreeAndNil(TS);

end;
p.s. ну, нужно подставить свои имена файлов или сделать интерфейсик простой...

Последний раз редактировалось Serge_Bliznykov; 03.08.2010 в 09:54.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.08.2010, 11:15   #16
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

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

Ну-ка, кто может назвать хоть одну причину, пихать файл в константу?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 03.08.2010, 11:26   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
кто может назвать хоть одну причину, пихать файл в константу?
Я - "Пытливый ум, жаждущий открыть неведомую вселенную" )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.08.2010, 07:41   #18
r9m
₪₪₪₪₪₪₪₪
Форумчанин
 
Аватар для r9m
 
Регистрация: 16.04.2007
Сообщений: 471
По умолчанию

>> Ну-ка, кто может назвать хоть одну причину, пихать файл в константу?
"А штоп нихто не догада-алси, что эта песня о тебеее" Например для того, чтобы файл не хранить в ресурсах, потому, что из ресурсов его дёрнуть и соответственно исследовать легче. (это вариант с малварь-кодом и прочей фигнёй). Ну это просто очень похоже на "PE в отдельной секции PE-файла". Может быть слегка муторно рассказал, но так ведут себя некоторые вирусы. Например Jakky/Vasor.A, про ручное лечение которого я писал тут: http://www.xaker.name/stati/programm...kky-vasor.html. Этот вирус прятал дроппер в отдельной секции.

На самом деле применений можно найти больше. Это просто первое, что пришло в голову. И очень уж похоже "$4D, $5A" на первый признак exe-файла, да ?

Последний раз редактировалось r9m; 05.08.2010 в 07:51.
r9m вне форума Ответить с цитированием
Старый 05.08.2010, 14:53   #19
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от r9m Посмотреть сообщение
это вариант с малварь-кодом и прочей фигнёй
Праавильно. Откуда что следует? Тему закрыть, автору банку.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 05.08.2010, 19:35   #20
r9m
₪₪₪₪₪₪₪₪
Форумчанин
 
Аватар для r9m
 
Регистрация: 16.04.2007
Сообщений: 471
По умолчанию

Интересно будет послушать, что скажет TC.
r9m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить размер строки типа LPCWSTR? Gtx541 Общие вопросы C/C++ 1 30.05.2010 14:18
Как получить данные из ftWideMemo? Хитрец БД в Delphi 1 17.05.2009 02:07
Как получить данные из input hidden Joe_Tribbiani Работа с сетью в Delphi 9 15.02.2009 12:27
WebBrowser как получить данные ? M2k Работа с сетью в Delphi 0 07.06.2008 22:28
Как удалить из базы данные типа TBlobField? Novi4ek Помощь студентам 7 04.06.2008 15:14