ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

*.exe в hex и обратно?[need help]
  #1  
Старый 12.02.2010, 19:29
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию *.exe в hex и обратно?[need help]

Имеется *.exe. Его нужно запихнуть в исходник проги (я использую C#).И потом его создать, тоесть тело этого exe должно лежать в компилируемом exe'шнике.
Делаю я это так:
1. Открываю собственно этот *.exe в WinHex.
2. Сохраняю в hex.
Получается что-то вроде
Код:
 \x4D\x5A\x99\x01\... бла.. бла... бла...
3.Пихаю эту штуку в исходник проги, как string
Код:
public string hex = " \x4D\x5A\x99\x01\... бла.. бла... бла... ";
4. Записываю в файл с помощью StreamWriter
Код:
....
            path = @"D:\hex_to_exe.exe";
            StreamWriter sw = new StreamWriter(path);
            sw.WriteLine(hex);
            sw.Close();
....
Все отлично. Файл создан, но сам exe не работает, в cmd пишет что ошибка EXE файла.
Открываем exe созданный нами hex_to_exe.exe с помощью WinHex и видим
Код:
\x4D\x5A\xC2\x99\x01\xC3\x8F\x00\xC2\x89\x01\.....
size = 143 665 byte
смотрим оригинал
Код:
\x4D\x5A\x99\x01\xCF\x00\x89\x01\x80\x00\x40\.....
size = 105 881 byte
В чем проблема????? Никак разобраться немогу Помогите please!
Если есть возможность приведите исходники

Последний раз редактировалось cheater_man; 12.02.2010 в 19:36..
 
Ответить с цитированием

  #2  
Старый 12.02.2010, 19:38
mr.The
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,206
Провел на форуме:
4778940

Репутация: 1257


Отправить сообщение для mr.The с помощью ICQ
По умолчанию

Ага, было подобное. Решил как-то так:
Цитата:
string str = System.Text.Encoding.GetEncoding("iso-8859-5").GetString(...)
 
Ответить с цитированием

  #3  
Старый 13.02.2010, 02:27
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию

Цитата:
Сообщение от mr.The  
Ага, было подобное. Решил как-то так:
Программа неумещается в памяти??? Что за фигня???
делаю так:
Код:
public byte[] byt = {
	0x4D, 0x5A, 0x99, 0x01............
                              };
            path = @"D:\hex_to_exe.exe";
            string str = Encoding.GetEncoding("iso-8859-5").GetString(byt);
            System.IO.StreamWriter sw = new System.IO.StreamWriter(path);
            sw.WriteLine(str);
            sw.Close();
как бэ тоже самое
Код:
\x4D\x5A\xC2\x99\x01\xD0\xAF\x00\xC2\x89.......
вот откуда он берется... я в непонятках...

Последний раз редактировалось cheater_man; 13.02.2010 в 03:16..
 
Ответить с цитированием

  #4  
Старый 13.02.2010, 14:13
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию

используйте CreateFile/WriteFile из винапи

кста вспомнил, кадата делал
в аттаче подобная тулза для генерации с хидера из файла
Вложения
Тип файла: rar bingen.rar (28.4 Кб, 6 просмотров)
__________________


snow white world wide

Последний раз редактировалось sn0w; 13.02.2010 в 14:17..
 
Ответить с цитированием

  #5  
Старый 13.02.2010, 15:36
patcher
Познающий
Регистрация: 15.12.2009
Сообщений: 81
Провел на форуме:
393444

Репутация: 24
Отправить сообщение для patcher с помощью ICQ
По умолчанию

2cheater_man:
Я бы решил твою проблему по-другому. Если тебе нужно из своей программы создатьдругую, то можно просто создаваемый файл запихнуть в ресурсы главного софта, а по нажатию кнопки (или как там тебе нужно) извлечь его оттудова!
 
Ответить с цитированием

  #6  
Старый 13.02.2010, 15:47
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию

Цитата:
Сообщение от sn0w  
используйте CreateFile/WriteFile из винапи

кста вспомнил, кадата делал
в аттаче подобная тулза для генерации с хидера из файла
WinApi в C# гоморно Так что твоё предложение некатит, есть другой способ???
Цитата:
Я бы решил твою проблему по-другому. Если тебе нужно из своей программы создатьдругую, то можно просто создаваемый файл запихнуть в ресурсы главного софта, а по нажатию кнопки (или как там тебе нужно) извлечь его оттудова!
А я что по твоему делаю? Я тоже пихаю hex файла в исходник потом его сохраняю в файл! Тут пходу все дело в кодеровке?

Последний раз редактировалось cheater_man; 13.02.2010 в 15:50..
 
Ответить с цитированием

  #7  
Старый 13.02.2010, 16:30
patcher
Познающий
Регистрация: 15.12.2009
Сообщений: 81
Провел на форуме:
393444

Репутация: 24
Отправить сообщение для patcher с помощью ICQ
Wink

Возможно мы не поняли друг друга так как хотелось бы, потому просто приведу пример на Delphi: http://www.188.ru/195062 .
А вот статья, как все это сделать на Делфи, думаю в С такое возможно тоже: http://articles.org.ru/cfaq/index.php?qid=186
 
Ответить с цитированием

  #8  
Старый 13.02.2010, 16:32
patcher
Познающий
Регистрация: 15.12.2009
Сообщений: 81
Провел на форуме:
393444

Репутация: 24
Отправить сообщение для patcher с помощью ICQ
Wink

Вот пример выдергивания файла изи ресурсов компиленой проги на С :
http://forum.sources.ru/index.php?showtopic=228575&hl=
а именно тот пост поможет создать ресурсы:
http://forum.sources.ru/index.php?sh...post&p=1904033

Последний раз редактировалось patcher; 13.02.2010 в 16:34..
 
Ответить с цитированием

  #9  
Старый 13.02.2010, 16:41
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Попробуй типа
Код:
byte[] byt = {0x4D, 0x5A, ....};
FileStream stream = new FileStream("C:\\file.exe", FileMode.Create);
BinaryWriter w = new BinaryWriter(stream);
w.Write(byt);
w.Close();
 
Ответить с цитированием

  #10  
Старый 13.02.2010, 19:53
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию

Цитата:
Сообщение от Kaimi  
Попробуй типа
Код:
byte[] byt = {0x4D, 0x5A, ....};
FileStream stream = new FileStream("C:\\file.exe", FileMode.Create);
BinaryWriter w = new BinaryWriter(stream);
w.Write(byt);
w.Close();
Кaimi ты гений!11адын адын!!!11!!
CLOSED
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование hex символов в URL fire64 С/С++, C#, Delphi, .NET, Asm 2 11.12.2009 19:28
[PHP] hex -> int -> hex imajo.ati PHP, PERL, MySQL, JavaScript 1 14.07.2009 15:12
Продажа загрузок .EXE shilkaZ Разное - Покупка, продажа, обмен 1 25.06.2009 09:24
Помогите первести HEx код ! ExOrientaLux ICQ 10 14.11.2006 18:43



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ