Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Размер сегметна код и данных

1.9K
11 июля 2007 года
Goblin
55 / / 02.03.2004
Как в ручную задать размеры сегментов?
Должны ли они быть кратны 512 для win32?
Страницы:
5.7K
30 июля 2007 года
Vedrus
49 / / 29.10.2006
Интересно, кто это штрафами кидается?
[quote=”не знаю кто”]
"Что за дурная манера критиковать что-то не имея об этом представления?"
Я думаю дурная манера всё-таки делать что-то исподтишка.
[/quote]

Вам про .NET не понравилось, или что у меня ещё ранг не тот такие заявления делать? Я кучу кода вываленного ею в дизассемблере перелопатил, так что не надо тут грубостей.
349
30 июля 2007 года
Phantom-84
656 / / 27.10.2005
Кому как, а мне эти вопросы интересны, поэтому я и участвую в обсуждении. Короче я проверил разные варианты и пришел к выводу, что можно без видимых последствий поиграться с внутрифайловым размером секции (заголовка это тоже касается), но нельзя делать внутрифайловую позицию секции кратной менее, чем 512 байтам. Отсюда получается, что "с пользой для дела" можно обрезать лишь секцию, которая размещена в конце файла, а это уменьшение размера файла в лучшем случае всего лишь на 511 байт. Более правильным и не противоречащим спецификации будет являться вариант использования минимального количества секций, например, в своих приложениях, написанных на fasm'е я никогда не использую более 4-х секций (часто итого меньше), т.к. это кроме всего прочего увеличивает заголовок моих exe-шников с 512 байт до 1 Кб.

Ну и на последок все-таки выложу exe-шник, размеры заголовка и единственной секции которого кратны 4 байтам (размер 680 байт).

Код:
MIME-Version: 1.0
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=
5.7K
30 июля 2007 года
Vedrus
49 / / 29.10.2006
Phantom-84, а мой exe (см. выше) 640 байт весит ;). А как вообще твой код интерпретировать, как из него exe получить?
31K
30 июля 2007 года
nlord
1 / / 30.07.2007
вот прога весит 536 байт. качать тут http://slil.ru/24682032
5.7K
30 июля 2007 года
Vedrus
49 / / 29.10.2006
Ну давайте, делитесь идеями, чтобы ещё меньше можно было делать. В чём прикол конечный результат только кидать? Nlord, на чём ваял? Интересно, меньше 512, у кого-нибудь получится… Слабо мужики? :)
1.9K
30 июля 2007 года
disasm
232 / / 06.02.2006
Я же говорю: совместить MZ и PE заголовки...

По поводу варианта в 136 байт.. Наверное из Optional Header Data Directories можно еще 16 байт в конце вырезать, хотя возможно я не прав... А если еще ограничиться одним MessageBox-ом, то вообще великолепно будет :)

2Vedrus uudecode может быть поможет
5.7K
30 июля 2007 года
Vedrus
49 / / 29.10.2006
вариант в 136 байт в студию!
1.9K
30 июля 2007 года
disasm
232 / / 06.02.2006
Упс, 536 байт, ошибся
349
30 июля 2007 года
Phantom-84
656 / / 27.10.2005
Vedrus, написано же MIME - это бинарник в символьном виде. Кстати, твоя программа работает не во всех виндах. Про 136 байт я же сказал - не получится - минимум 512 байт + размер одной сжатой секции. Что касается моей программки, то 680 байт она занимает потому, что я при написании кода вообще не уделял внимания оптимизации по размеру. Главной задачей для меня было уплотнить сам исполняемый файл уже после его компиляции. Работоспособный на всех доступных мне машинах вариант удалось уплонтить до 680 байт (nop'ами под границей 512 байт забит неиспользуемый, но необходимый для корректной работы участок). Если оставить лишь обращение к API-функции ExitProcess(), то и до 536 байт будет недалеко.
1.9K
30 июля 2007 года
disasm
232 / / 06.02.2006
302 байта. Работает под XP SP 2 точно.
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 ячеек (меньше чего-то не получется)
5.7K
30 июля 2007 года
Vedrus
49 / / 29.10.2006
Phantom-84, я в курсе про виндовые правила относительно заголовка. Но правила всегда кто-то нарушает… Понятно, что легальными средствами это вряд ли получится. Просвети, как MIME использовать, ну чайник я в эту сторону.

Скажи, если не в лом, на какой винде мой пример не работает.

ЗЫ. Попробовал, ASPack’ом 640байт упаковать, получилось 16кб :)
1.9K
30 июля 2007 года
disasm
232 / / 06.02.2006
Ты бы еще ASProtect-ом упаковал :) В этих упаковщиках не использовано ни одного из тех извращений которые на текущий момент у меня в проге ;)
Они созданы для упаковки реальных прог, там эти улучшения на размер почти не влияют...
260
31 июля 2007 года
Ramon
1.1K / / 16.08.2003
Вот это дааа, моя прога уложилась в 22 байта:eek:, можно и меньше:cool: , но смысл тогда потеряетцо, ну чье хозяйство длиннее, ой тута надо чтоб было короче:D
1.9K
31 июля 2007 года
Goblin
55 / / 02.03.2004
PE exe
МессажБокс "Хеллоу, Вёлд!"
242 байта

кто меньше?
5.7K
31 июля 2007 года
Vedrus
49 / / 29.10.2006
Disasm, крут, особенно исходник понравился :). Goblin, ну ты ваще! Исходник-то воткни, чтобы твоё дело оптимизировть можно было.
Phantom-84, у тебя вроде была возможность на куче виндов проверять работоспособность, посмотришь?

Ramon, не флуди, раз не умеешь такие фичи делать. Не переживай, когда-нибудь и ты научишься.
349
31 июля 2007 года
Phantom-84
656 / / 27.10.2005
Ramon, ;)

Цитата:
Скажи, если не в лом, на какой винде мой пример не работает.

Vedrus, твой пример, а также набор "извращений" от Disasm'а не работают на Win98SE (на других старых виндах не проверял).

Цитата:
Просвети, как MIME использовать, ну чайник я в эту сторону.

Не знаю, я шеллом это закодировал с помощью пары кликов, не особо вдаваясь в подробности, что и как там используется :) С этим, надеюсь, разберешься :D

5.7K
31 июля 2007 года
Vedrus
49 / / 29.10.2006
Phantom-84, у меня Win XP без сервис пака, и твой пример не запускается. У тебя а арсенале какие винды есть?
349
31 июля 2007 года
Phantom-84
656 / / 27.10.2005
Vedrus, я проверяю на WinXP SP2, Win2K SP4, WinNT 4.0 SP3, Win98SE. Неужели ты хочешь сказать, что твоя порграмма запускается в хэпышке, а моя нет?
1.9K
31 июля 2007 года
disasm
232 / / 06.02.2006
2Goblin
Не оптимально, хотя заслуживает внимания!

Значит так, глядя поверхностно можно сделать следующее: образать все нули в конце. Перед загрузкой секций грузится сначала заголовок в 0x400000, а остальные байты автоматом в 0 инициализируются. Значит их можно опустить... Экономия 7 байт пока ;)
Можно еще попробовать поменять местами что-нибудь чтобы больше нулей в конце было.

OllyDbg уже ругается :) На мою прогу ещё не ругалась :)

UPD:
2Phantom-84
Действительно что-то не так.. У меня тоже не запускается прога (та что 680 байт). WinXP SP2
349
31 июля 2007 года
Phantom-84
656 / / 27.10.2005
Странно, может, я зря над размером заголовка колдовал, тем более что это никак не влияет на конечный размер файла, да и хэпэшка на моей персоналке пропатчина вдоль и поперек - в этом тоже может быть причина. Попробую обработать исходный exe-шник без изменения размера заголовка и выложу новый вариант.
63
31 июля 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: Vedrus

Создатели .NET и всякой подобной хрени наверно также и думали... А ещё мне интересно, что они курили, когда сиё творение производили.


Редко заглядываю в этот раздел, но досмотрел тему до этого места, и стало интересно.
Что ты называешь хренью, подобной .NET?
Java, например?
А почему, можно узнать?
Только не надо говорить, что тебе не понравился генерируемый ей код в дизассемблере...
P.S. Прошу прощения у всех за такое вмешательство, но это не от необузданного желание поспорить, а просто я терпеть не могу такого типа посты.

1.9K
01 августа 2007 года
disasm
232 / / 06.02.2006
Эти платформы хороши тем, что программы на .NET и Java можно достаточно легко преобразовать в достаточно читабельный код на любимом языке программирования (а не на асме) :)
Исключение составлят проги в которых все символы обрезаны или изменены до неузнавамости
63
01 августа 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: disasm
Эти платформы хороши тем, что программы на .NET и Java можно достаточно легко преобразовать в достаточно читабельный код на любимом языке программирования (а не на асме) :)
Исключение составлят проги в которых все символы обрезаны или изменены до неузнавамости


Ты имеешь в виду, переписать прогу с явы на, скажем, С++ гораздо проще, чем с асма на С++? И в этом все их преимущество??
Я что-то твою мысль не уловил, извини.

261
01 августа 2007 года
ahilles
1.5K / / 03.11.2005
он наверно хотел сказать, что если допустим я написал прогу на Delphi.NET, то эту прогу я смогу легко декомпилировать в C#
1.9K
01 августа 2007 года
disasm
232 / / 06.02.2006
Именно...
Reflector в руки и вперед :) Эх, была бы такая прога для асма...
63
01 августа 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: disasm
Именно...
Reflector в руки и вперед :) Эх, была бы такая прога для асма...


Опять не понял:)
Компилеры, генерящие асмовые листинги, есть.
Тебе нужны утилита, которая по асмовому коду генерит ЯВУ-код? (может, еще и перепрыгивая рубеж MSIL..) Зачем??

257
01 августа 2007 года
kosfiz
1.6K / / 18.09.2005
ну не знаю, по-моему CIL-код(инструкции) и так очень понятны(достаточно хорошо я с ними ознакомился), даже преобразователей никаких не надо (так и хочется сказать спасибо за такое), можно ручками перевести. хотя преобразователи полезны.
[quote=Zorkus]Компилеры, генерящие асмовые листинги, есть.[/quote]
это чего ты такое сказал? не понял.:)
1.9K
02 августа 2007 года
disasm
232 / / 06.02.2006
2Zorkus Reflector служит для декомпиляции .NET приложений в самые разные языки.. Зачем? Мне, например, очень удобно разбираться с принципами работы той или иной функции из .NET Framework когда я вижу ее код на C#...
1.6K
03 августа 2007 года
Vov4ick
476 / / 01.02.2007
Цитата: disasm
Именно...
Reflector в руки и вперед :) Эх, была бы такая прога для асма...


Автор слышал про IDA и Sourcer?

260
03 августа 2007 года
Ramon
1.1K / / 16.08.2003
Цитата: disasm
Эти платформы хороши тем, что программы на .NET и Java можно достаточно легко преобразовать в достаточно читабельный код на любимом языке программирования (а не на асме) :)
Исключение составлят проги в которых все символы обрезаны или изменены до неузнавамости


Если это все, то это лишь говорит об очень ограниченном представлении о сим вопросе и рассмотрении его исходя из узко-специфичного фетиша аффтара.

PS: Что ж это вы хозяйством мериться то перестали?:D

1.9K
03 августа 2007 года
disasm
232 / / 06.02.2006
Цитата: Vov4ick
Автор слышал про IDA и Sourcer?


Так они ведь в сишный код не могут преобразовать (ли я не прав??)...

[QUOTE=Ramon]
Если это все, то это лишь говорит об очень ограниченном представлении о сим вопросе и рассмотрении его исходя из узко-специфичного фетиша аффтара.

PS: Что ж это вы хозяйством мериться то перестали?
[/QUOTE]
А мне надо было все виды защиты перечислить? Или показать какой я умный/не умный??
А хозяйствами будут такие как вы меряться, мы лишь нашли в приближении минимальный размер PE приложения. Кому мало пусть дальше продолжает...

63
03 августа 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: disasm

А мне надо было все виды защиты перечислить? Или показать какой я умный/не умный??


Причем тут защита? Защита чего и от кого?

1.9K
03 августа 2007 года
disasm
232 / / 06.02.2006
Защита от декомпиляции .NET приложний в языки высокого уровня...
63
04 августа 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: disasm
Защита от декомпиляции .NET приложний в языки высокого уровня...


А обфускация промежуточного кода так недостаточна ?

1.9K
04 августа 2007 года
disasm
232 / / 06.02.2006
Значит мало людям раз уж даже протектор .NET Reactor создали..
1.6K
05 августа 2007 года
Vov4ick
476 / / 01.02.2007
Я конечно не разбираюсь в .net, но всегда думал, что _декомпиляция_ любого ЯВУ - из области фантастики, разве что компилятор совсем неоптимизирующий или ЯВУ интерпретаторный (вроде васика). Или вы всё-таки о другом? А товарищи, пробовавшие это делать здесь есть?
5.7K
06 августа 2007 года
Vedrus
49 / / 29.10.2006
Какое отношение .NET имеет отношение к теме?
Никакого!
1.9K
06 августа 2007 года
disasm
232 / / 06.02.2006
Цитата: Vov4ick
Я конечно не разбираюсь в .net, но всегда думал, что _декомпиляция_ любого ЯВУ - из области фантастики, разве что компилятор совсем неоптимизирующий или ЯВУ интерпретаторный (вроде васика). Или вы всё-таки о другом? А товарищи, пробовавшие это делать здесь есть?



Есть и для явы проги, например Cavaj Java Decompiler

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог