ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
*.exe в hex и обратно?[need help] |

12.02.2010, 19:29
|
|
Постоянный
Регистрация: 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..
|
|
|

12.02.2010, 19:38
|
|
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,206
Провел на форуме: 4778940
Репутация:
1257
|
|
Ага, было подобное. Решил как-то так:
string str = System.Text.Encoding.GetEncoding("iso-8859-5").GetString(...)
|
|
|

13.02.2010, 02:27
|
|
Постоянный
Регистрация: 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..
|
|
|

13.02.2010, 14:13
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
используйте CreateFile/WriteFile из винапи
кста вспомнил, кадата делал
в аттаче подобная тулза для генерации с хидера из файла
__________________
 
snow white world wide
Последний раз редактировалось sn0w; 13.02.2010 в 14:17..
|
|
|

13.02.2010, 15:36
|
|
Познающий
Регистрация: 15.12.2009
Сообщений: 81
Провел на форуме: 393444
Репутация:
24
|
|
2cheater_man:
Я бы решил твою проблему по-другому. Если тебе нужно из своей программы создатьдругую, то можно просто создаваемый файл запихнуть в ресурсы главного софта, а по нажатию кнопки (или как там тебе нужно) извлечь его оттудова!
|
|
|

13.02.2010, 15:47
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
Сообщение от sn0w
используйте CreateFile/WriteFile из винапи
кста вспомнил, кадата делал
в аттаче подобная тулза для генерации с хидера из файла
WinApi в C# гоморно  Так что твоё предложение некатит, есть другой способ???
Я бы решил твою проблему по-другому. Если тебе нужно из своей программы создатьдругую, то можно просто создаваемый файл запихнуть в ресурсы главного софта, а по нажатию кнопки (или как там тебе нужно) извлечь его оттудова!
А я что по твоему делаю? Я тоже пихаю hex файла в исходник потом его сохраняю в файл! Тут пходу все дело в кодеровке?
Последний раз редактировалось cheater_man; 13.02.2010 в 15:50..
|
|
|

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

13.02.2010, 16:32
|
|
Познающий
Регистрация: 15.12.2009
Сообщений: 81
Провел на форуме: 393444
Репутация:
24
|
|
Последний раз редактировалось patcher; 13.02.2010 в 16:34..
|
|
|

13.02.2010, 16:41
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
Попробуй типа
Код:
byte[] byt = {0x4D, 0x5A, ....};
FileStream stream = new FileStream("C:\\file.exe", FileMode.Create);
BinaryWriter w = new BinaryWriter(stream);
w.Write(byt);
w.Close();
|
|
|

13.02.2010, 19:53
|
|
Постоянный
Регистрация: 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 
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|