Размер сегметна код и данных
Должны ли они быть кратны 512 для win32?
[quote=”не знаю кто”]
"Что за дурная манера критиковать что-то не имея об этом представления?"
Я думаю дурная манера всё-таки делать что-то исподтишка.
[/quote]
Вам про .NET не понравилось, или что у меня ещё ранг не тот такие заявления делать? Я кучу кода вываленного ею в дизассемблере перелопатил, так что не надо тут грубостей.
Ну и на последок все-таки выложу exe-шник, размеры заголовка и единственной секции которого кратны 4 байтам (размер 680 байт).
Content-Type: application/octet-stream; name="pack.exe"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="pack.exe"
TVpoAAEAAAAEAEAA//8DAAAEAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAaAAAALQJmR5SDh+yDM0hy05lZWRzIGF0IGxlYXN0IFdpbmRvd3MgOTUNCiRQRQAATAEBAL6N
rUYAAAAAAAAAAOAADwELAQFAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAABAAAAQAAAEAAAAAQAA
AAAAAAAEAAAAAAAAAAAgAACIAQAAAAAAAAIAAAAAQAAAAEAAAAAAAAAAAAAAAAAAABAAAAAAAAAA
AAAAACgQAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAC5jb2RlAAAAqAAAAAAQAACoAAAAAAIAAAAAAAAAAAAAAAAAACAAAGCQkJCQkJCQ
kJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQ
kJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJBq
AGoAaBkQQABqAP8VbBBAAGoA/xVkEEAASGVsbG8gd29ybGQhAJCQAAAAAAAAAAAAAAAAdBAAAGQQ
AAAAAAAAAAAAAAAAAACPEAAAbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgRAAAAAAAACaEAAAAAAA
AEtFUk5FTDMyLkRMTAAAAEV4aXRQcm9jZXNzAFVTRVIzMi5ETEwAAABNZXNzYWdlQm94QQA=
По поводу варианта в 136 байт.. Наверное из Optional Header Data Directories можно еще 16 байт в конце вырезать, хотя возможно я не прав... А если еще ограничиться одним MessageBox-ом, то вообще великолепно будет :)
2Vedrus uudecode может быть поможет
MessageBox(0,"Hello, World!","by Disasm",0);
http://disasm.info/files/302.zip (EXE+ASM)
Извращения:
1. Совмещние PE и MZ заголовков
2. Строка "by Disasm" внутри описания секции кода ))
3. Выравнивание в файле и памяти на 4 байта (выравнивание в памяти можно исправить на что угодно без потери в размере)
4. Rva And Sizes обрезаны до 4 ячеек (меньше чего-то не получется)
Скажи, если не в лом, на какой винде мой пример не работает.
ЗЫ. Попробовал, ASPack’ом 640байт упаковать, получилось 16кб :)
Они созданы для упаковки реальных прог, там эти улучшения на размер почти не влияют...
МессажБокс "Хеллоу, Вёлд!"
242 байта
кто меньше?
Phantom-84, у тебя вроде была возможность на куче виндов проверять работоспособность, посмотришь?
Ramon, не флуди, раз не умеешь такие фичи делать. Не переживай, когда-нибудь и ты научишься.
Vedrus, твой пример, а также набор "извращений" от Disasm'а не работают на Win98SE (на других старых виндах не проверял).
Не знаю, я шеллом это закодировал с помощью пары кликов, не особо вдаваясь в подробности, что и как там используется :) С этим, надеюсь, разберешься :D
Не оптимально, хотя заслуживает внимания!
Значит так, глядя поверхностно можно сделать следующее: образать все нули в конце. Перед загрузкой секций грузится сначала заголовок в 0x400000, а остальные байты автоматом в 0 инициализируются. Значит их можно опустить... Экономия 7 байт пока ;)
Можно еще попробовать поменять местами что-нибудь чтобы больше нулей в конце было.
OllyDbg уже ругается :) На мою прогу ещё не ругалась :)
UPD:
2Phantom-84
Действительно что-то не так.. У меня тоже не запускается прога (та что 680 байт). WinXP SP2
Создатели .NET и всякой подобной хрени наверно также и думали... А ещё мне интересно, что они курили, когда сиё творение производили.
Редко заглядываю в этот раздел, но досмотрел тему до этого места, и стало интересно.
Что ты называешь хренью, подобной .NET?
Java, например?
А почему, можно узнать?
Только не надо говорить, что тебе не понравился генерируемый ей код в дизассемблере...
P.S. Прошу прощения у всех за такое вмешательство, но это не от необузданного желание поспорить, а просто я терпеть не могу такого типа посты.
Исключение составлят проги в которых все символы обрезаны или изменены до неузнавамости
Исключение составлят проги в которых все символы обрезаны или изменены до неузнавамости
Ты имеешь в виду, переписать прогу с явы на, скажем, С++ гораздо проще, чем с асма на С++? И в этом все их преимущество??
Я что-то твою мысль не уловил, извини.
Reflector в руки и вперед :) Эх, была бы такая прога для асма...
Reflector в руки и вперед :) Эх, была бы такая прога для асма...
Опять не понял:)
Компилеры, генерящие асмовые листинги, есть.
Тебе нужны утилита, которая по асмовому коду генерит ЯВУ-код? (может, еще и перепрыгивая рубеж MSIL..) Зачем??
[quote=Zorkus]Компилеры, генерящие асмовые листинги, есть.[/quote]
это чего ты такое сказал? не понял.:)
Reflector в руки и вперед :) Эх, была бы такая прога для асма...
Автор слышал про IDA и Sourcer?
Исключение составлят проги в которых все символы обрезаны или изменены до неузнавамости
Если это все, то это лишь говорит об очень ограниченном представлении о сим вопросе и рассмотрении его исходя из узко-специфичного фетиша аффтара.
PS: Что ж это вы хозяйством мериться то перестали?:D
Так они ведь в сишный код не могут преобразовать (ли я не прав??)...
[QUOTE=Ramon]
Если это все, то это лишь говорит об очень ограниченном представлении о сим вопросе и рассмотрении его исходя из узко-специфичного фетиша аффтара.
PS: Что ж это вы хозяйством мериться то перестали?
[/QUOTE]
А мне надо было все виды защиты перечислить? Или показать какой я умный/не умный??
А хозяйствами будут такие как вы меряться, мы лишь нашли в приближении минимальный размер PE приложения. Кому мало пусть дальше продолжает...
А мне надо было все виды защиты перечислить? Или показать какой я умный/не умный??
Причем тут защита? Защита чего и от кого?
А обфускация промежуточного кода так недостаточна ?
Никакого!
Есть и для явы проги, например Cavaj Java Decompiler