HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

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

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

  #21  
Старый 02.09.2007, 01:00
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

> Я это уже смотрел, но про CRT там ничего нет. Может он называется по-другому? Я в этом пока не разбираюсь(

#pragma comment(linker,"/entry:MyWinMain")
#pragma comment(linker,"/nodefaultlib")

void __stdcall MyWinMain( void ) {
...
}
 
Ответить с цитированием

  #22  
Старый 02.09.2007, 01:46
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме:
5128756

Репутация: 2032


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

Уррря! Я постиг секрет хеккерской линковки!! Всем огромное спасибо! Особенно Kezу))
ЗЫ прикольно, в конце упикс пожал получившийся 16кб файл в 8 раз и получились заветные 2 кб!!! ))))))0
теперь можно спокойно идти спать.......
 
Ответить с цитированием

  #23  
Старый 02.09.2007, 10:51
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме:
2009677

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

Ну если у тебя получился файл размером 16кб, значит ты не постиг тайну линковщика =)
Читай информацию по ссылке, которую я дал тебе в одном из своих сообщений.
 
Ответить с цитированием

  #24  
Старый 02.09.2007, 16:44
lexer666
Новичок
Регистрация: 29.01.2007
Сообщений: 17
Провел на форуме:
173732

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

http://uinc.ru/articles/28/

В билдере можно что-то подобное сделать? Пробовал как в статье:
Цитата:
#include <windows.h>
#pragma comment(linker,"/MERGE:.rdata=.text")
#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078")
#pragma comment(linker,"/ENTRY:New_WinMain")
#pragma comment(linker,"/NODEFAULTLIB")
void New_WinMain(void) { ExitProcess(0); }
не получается, причем размер пустого проекта достигает 50! кб.
 
Ответить с цитированием

  #25  
Старый 02.09.2007, 17:55
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


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

lexer666, дебаг билд?
 
Ответить с цитированием

  #26  
Старый 02.09.2007, 20:41
lexer666
Новичок
Регистрация: 29.01.2007
Сообщений: 17
Провел на форуме:
173732

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

В Bcb6 нет же режимов дебаг или релиз. В Vs05 при обоих режимах ошибки.
В Bcb6 можно собрать маленькое приложение, как в статье?
 
Ответить с цитированием

  #27  
Старый 02.09.2007, 21:11
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме:
5128756

Репутация: 2032


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

lexer666
Код:
#include <windows.h>

#pragma comment(linker,"/entry:WinMain")
#pragma comment(linker,"/nodefaultlib")
#pragma comment(linker, "/MERGE:.rdata=.text") 
#pragma comment(linker, "/MERGE:.data=.text") 
#pragma comment(linker, "/SECTION:.text,EWRX") 
#pragma comment(linker, "/IGNORE:4078")
#pragma comment(linker, "/opt:nowin98")

int __stdcall WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
	MessageBox(0,Path_to_WIN,Path_to_SYS, 0);
	return 0;
}
у меня VS6. на выходе 1 кб.
 
Ответить с цитированием

  #28  
Старый 02.09.2007, 22:35
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

Цитата:
на выходе 1 кб.
Круто!!!
Цитата:
#pragma comment(linker, "/MERGE:.rdata=.text")
#pragma comment(linker, "/MERGE:.data=.text")
#pragma comment(linker, "/SECTION:.text,EWRX")
#pragma comment(linker, "/IGNORE:4078")
Кстати расположение данных в одну секцию .text при определенных условиях может у некоторых антивирей (Panda, AntiVir, ещё кто-то) вызывать подозрения.
 
Ответить с цитированием

  #29  
Старый 02.09.2007, 22:57
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме:
2009677

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

lexer666, для bcb нужно отключать опции непосредственно в проекте, через pragma comment ты этого не сделаешь.
 
Ответить с цитированием

  #30  
Старый 03.09.2007, 02:37
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

Код:
#pragma comment(linker, "/MERGE:.rdata=.text") 
#pragma comment(linker, "/MERGE:.data=.text") 
#pragma comment(linker, "/SECTION:.text,EWRX") 
#pragma comment(linker, "/IGNORE:4078")
Многие считают что это некая просьба вижуал студии "пожалуйста, собери экзешник поменьше".
На самом деле юзать эти прагмы надо с умом, а /ignore:4078 можно вообще выкинуть. Видимо поэтому её и нет в линкерах следующих версий студий.
Если убираете CRT - вырубайте все проверки компилятора, туда ссылающиеся, делайте свой operator new и delete, и т.п. Причем в след. студиях Release сборка почему-то (никто не знает) позволяет создать бинарник меньше (из-за уменьшения выравнивания файла (не путать с секциями), такая опция есть только у линкеров VS6, дальше нету).
Вообщем, может я не тщательно смотрел, но в 7 и 8 студиях ставить релиз необходимо - иначе хер соберется самый маленький бинарник. Странно что они так сделали, по логике Debug и Release - "пресеты" настроек и не должны содержать в себе чего-то, что нельзя поменять через эти настройки.

Ещё насчет оптимизация - как-то уж очень хуево она сделана в студиях 7 и 8. А может и 6 - незнаю.
Ставишь minimize size и компиллер тебе женской логикой выбрасывает из кода всякое, по его мнению "говно", которое не используется или возвращает константу и т.п.

Последний раз редактировалось KEZ; 03.09.2007 в 02:39..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хостинги под всё! »Atom1c« ПО для Web разработчика 29 10.02.2009 17:56
«Лаборатории Касперского»: Количество вредоносных программ под Linux резко возросло dinar_007 Мировые новости. Обсуждения. 9 20.08.2006 20:50
Проблемы с Аничатовскими штучками. temon Болталка 4 27.09.2005 12:52
ПРОБЛЕМЫ С ВИНДОЙ!!! ГЛЮК ИЛИ ЖУК??? Demerus С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 18 16.01.2005 12:53



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


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




ANTICHAT.XYZ