*.exe в hex и обратно?[need help]

Discussion in 'Реверсинг' started by cheater_man, 12 Feb 2010.

  1. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    Имеется *.exe. Его нужно запихнуть в исходник проги (я использую C#).И потом его создать, тоесть тело этого exe должно лежать в компилируемом exe'шнике.
    Делаю я это так:
    1. Открываю собственно этот *.exe в WinHex.
    2. Сохраняю в hex.
    Получается что-то вроде
    Code:
     \x4D\x5A\x99\x01\... бла.. бла... бла... 
    
    3.Пихаю эту штуку в исходник проги, как string
    Code:
    public string hex = " \x4D\x5A\x99\x01\... бла.. бла... бла... ";
    
    4. Записываю в файл с помощью StreamWriter
    Code:
    ....
                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 и видим
    Code:
    \x4D\x5A\xC2\x99\x01\xC3\x8F\x00\xC2\x89\x01\.....
    size = 143 665 byte
    
    смотрим оригинал
    Code:
    \x4D\x5A\x99\x01\xCF\x00\x89\x01\x80\x00\x40\.....
    size = 105 881 byte
    
    В чем проблема????? Никак разобраться немогу :( Помогите please!
    Если есть возможность приведите исходники :)
     
    #1 cheater_man, 12 Feb 2010
    Last edited: 12 Feb 2010
  2. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    Ага, было подобное. Решил как-то так:
     
  3. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    Программа неумещается в памяти??? Что за фигня???
    делаю так:
    Code:
    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();
    
    как бэ тоже самое
    Code:
    \x4D\x5A\[B][COLOR=Red]xC2[/COLOR][/B]\x99\x01\xD0\xAF\x00\xC2\x89.......
    вот откуда он берется... я в непонятках...
    
     
    #3 cheater_man, 13 Feb 2010
    Last edited: 13 Feb 2010
  4. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    используйте CreateFile/WriteFile из винапи

    кста вспомнил, кадата делал
    в аттаче подобная тулза для генерации с хидера из файла
     

    Attached Files:

    #4 sn0w, 13 Feb 2010
    Last edited: 13 Feb 2010
  5. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    2cheater_man:
    Я бы решил твою проблему по-другому. Если тебе нужно из своей программы создатьдругую, то можно просто создаваемый файл запихнуть в ресурсы главного софта, а по нажатию кнопки (или как там тебе нужно) извлечь его оттудова!
     
  6. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    WinApi в C# гоморно :( Так что твоё предложение некатит, есть другой способ???
    А я что по твоему делаю? Я тоже пихаю hex файла в исходник потом его сохраняю в файл! Тут пходу все дело в кодеровке?
     
    #6 cheater_man, 13 Feb 2010
    Last edited: 13 Feb 2010
  7. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Возможно мы не поняли друг друга так как хотелось бы, потому просто приведу пример на Delphi: http://www.188.ru/195062 .
    А вот статья, как все это сделать на Делфи, думаю в С такое возможно тоже: http://articles.org.ru/cfaq/index.php?qid=186
     
  8. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    #8 patcher, 13 Feb 2010
    Last edited: 13 Feb 2010
  9. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    Попробуй типа
    Code:
    byte[] byt = {0x4D, 0x5A, ....};
    FileStream stream = new FileStream("C:\\file.exe", FileMode.Create);
    BinaryWriter w = new BinaryWriter(stream);
    w.Write(byt);
    w.Close();
    
     
    _________________________
  10. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    Кaimi ты гений!11адын адын!!!11!! :)
    CLOSED :)