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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2013, 09:09   #1
Baburek
Форумчанин
 
Аватар для Baburek
 
Регистрация: 12.12.2010
Сообщений: 205
Сообщение Текст внутри *.exe не читается

Код:
TStringList *List = new TStringList();
List->LoadFromFile(OpenDialog1->FileName);
Edit1->Text = List->Text;
Грубо говоря не могу прочитать "текст" exe'шника, а нужно. Текст следующий:
Код:
MZPNULNULNULSTXNUL...
7$NULNULNUL....
......
......
Читает только "MZP", дальше никак. В чем конкретно проблема и как текст все-таки "считать". Это все нужно для проверки хэша

P.S. C картинками та же фигня...

Последний раз редактировалось Baburek; 17.06.2013 в 09:22.
Baburek вне форума Ответить с цитированием
Старый 17.06.2013, 09:40   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Читать как бинарные данные, а не текстовые.
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 17.06.2013, 09:41   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

NUL это та программа в которой вы смотрели заменила сама.
в файле такого нет, там байт 0.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.06.2013, 16:30   #4
Baburek
Форумчанин
 
Аватар для Baburek
 
Регистрация: 12.12.2010
Сообщений: 205
По умолчанию

Код:
char* __fastcall TForm1::ReadingBinary()
{
  ifstream file (OpenFileName, ios::in|ios::binary|ios::ate);
  if (file.is_open())
  {
    int size;
    memblock = new char [size];
    file.seekg (0, ios::beg);
    file.read (memblock, size);
    file.close();

    Label2->Caption="The complete file content is in memory";

    return memblock;
    }
  else
  {
  Label2->Caption="Unable to open file";
  }
  delete[] memblock;
}
Опять же выводит: "MZP". Видимо я логику не уловил.

Код:
char *memblock;
OpenFileName //путь к файлу
Его возможно вывести в "бинарном представлении"?
Baburek вне форума Ответить с цитированием
Старый 17.06.2013, 16:34   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Baburek Посмотреть сообщение
Код:
char* __fastcall TForm1::ReadingBinary()
{
  ifstream file (OpenFileName, ios::in|ios::binary|ios::ate);
  if (file.is_open())
  {
    int size;
    memblock = new char [size];
    file.seekg (0, ios::beg);
    file.read (memblock, size);
    file.close();

    Label2->Caption="The complete file content is in memory";

    return memblock;
    }
  else
  {
  Label2->Caption="Unable to open file";
  }
  delete[] memblock;
}
Опять же выводит: "MZP". Видимо я логику не уловил.

Код:
char *memblock;
OpenFileName //путь к файлу
Его возможно вывести в "бинарном представлении"?
а вы разве преобразуете не читаемые символы в читаемые?
не все байты соотстветствуют тому что можно прочесть.
мемо ступорится на первом нечитабельном символе помоему, или же игнорирует их.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.06.2013, 17:24   #6
Baburek
Форумчанин
 
Аватар для Baburek
 
Регистрация: 12.12.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а вы разве преобразуете не читаемые символы в читаемые?
не все байты соотстветствуют тому что можно прочесть.
мемо ступорится на первом нечитабельном символе помоему, или же игнорирует их.
Можно вот с этого места поподробнее? А то пока не получилось преобразовать в "Hex формат" был убежден, что все уже готово, просто "читаю" не так. А тут он мне выдал: "4D5A50"
Ступорится, как было вами замечено, на первом не читаемом символе. Их "вручную" пропускать надо?
Baburek вне форума Ответить с цитированием
Старый 17.06.2013, 18:40   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Можно вот с этого места поподробнее? А то пока не получилось преобразовать в "Hex формат" был убежден, что все уже готово, просто "читаю" не так. А тут он мне выдал: "4D5A50"
это и есть шестнадцатеричный формат вывода байтов.
Цитата:
Ступорится, как было вами замечено, на первом не читаемом символе. Их "вручную" пропускать надо?
заменять на чтото читаемое как вариант.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.06.2013, 20:27   #8
Baburek
Форумчанин
 
Аватар для Baburek
 
Регистрация: 12.12.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
это и есть шестнадцатеричный формат вывода байтов.
я знаю, я имел в виду что выводятся те же буквы по сути(MZP)

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
заменять на что-то читаемое как вариант.
Я понимаю. Немного о другом вопрос был. Я думаю все решится написанием соответствующего метода. Спасибо за ответ!
Baburek вне форума Ответить с цитированием
Старый 19.06.2013, 09:36   #9
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Проверка хэша ничего общего не имеет с выводом строк. Надо прочитать весь файл и провести с ним операции как с последовательностью чисел. Зачем их пытаться вывести куда-то?
FataLL вне форума Ответить с цитированием
Старый 19.06.2013, 16:25   #10
Baburek
Форумчанин
 
Аватар для Baburek
 
Регистрация: 12.12.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от FataLL Посмотреть сообщение
Проверка хэша ничего общего не имеет с выводом строк. Надо прочитать весь файл и провести с ним операции как с последовательностью чисел. Зачем их пытаться вывести куда-то?
Когда создавал тему воспринимал .exe как текстовый файл, потом уже просто стало интересно вывести. Замечание справедливое. Для хэширования и последующих операций выводить никуда не нужно.
Baburek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка одномерных массивов, СИ. задание внутри, и написанный мною текст программы тоже внутри. кое-что нужно исправить.. Амелия Общие вопросы C/C++ 6 02.04.2012 20:03
txt внутри exe exzi11 Общие вопросы Delphi 1 06.01.2011 20:11
ссылка на текст внутри страницы MAX722 HTML и CSS 1 09.06.2010 11:36
html внутри exe Миша Помощь студентам 2 27.09.2007 16:13