Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++ WinAPI]Скопировать содержимое exe файла, прочитать нетекстовый файл 
:(
    Опции темы
GoldFinch
Дата 8.4.2009, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 15
Всего: 26



вобщем теория это хорошо, а эксперимент - лучше
я расширил размер .exe до 2Гб, файл запустился, 
расширил размер файла до 4Гб - файл не запустился

способ расширения размера файла:
Код

include 'win32ax.inc'
include 'hll_simple.inc'

high dd 1

proc main
     local hFile:DWORD
     CreateFileA("hi.exe",GENERIC_WRITE,0,0,CREATE_ALWAYS,0,0) mov [hFile],eax
     SetFilePointer([hFile],1,high,0)
     SetEndOfFile([hFile])
     ret
endp

.end main


Добавлено через 6 минут и 17 секунд
не, я наврал. при попытке сделать файл ~2.7Гб 
Код

SetFilePointer([hFile],3000000000,0,0)

винда отказывается его запускать
Код

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

E:\>hi
Программа не умещается в памяти

E:\>

PM MAIL ICQ   Вверх
Lazin
Дата 8.4.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



а как она его разместит в адресном пространстве, выделяемом процессу в 32х разрядной версии windows?
PM MAIL Skype GTalk   Вверх
GoldFinch
Дата 8.4.2009, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 15
Всего: 26



Lazin, загрузчик мог бы не загружать весь файл целиком, а загрузить только его заголовок и секции, но видимо этого не происходит
PM MAIL ICQ   Вверх
Anikmar
Дата 8.4.2009, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



То что единый образ не может быть больше 4 Гигов - это понятно, но GoldFinch прав - можно ведь пришить в хвост exe свои дополнительные данные и файл может хоть 15 гиг.

Однако тут опыт показывает, что что-то не так. WinRar успешно создает SFX архивы любого размера - у меня есть exe файл размером 6 Гиг, который WinRar успешно создал и ничего не сказал. Вот только винда говорит, что этот файл не Win32 - видимо последний WinRar создает его уже заточенным под Win64 - не знаю. Но я лично читал, что так возможно. Найду более старый WinRar попробую.
PM MAIL ICQ   Вверх
JAnty
Дата 8.4.2009, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 6.12.2004
Где: Москва

Репутация: 1
Всего: 2



zim22 :

Код

 signed char a=-159;

 unsigned char c;

 c=a; // с=97



--------------------
Русский справочник по WinAPI

Возможно всё, что возможно вообразить! Это и значит быть гением как я!
PM MAIL   Вверх
zim22
Дата 8.4.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(JAnty @  8.4.2009,  14:29 Найти цитируемый пост)
signed char a=-159; unsigned char c; c=a; // с=97

и что? в битовом представлении они одинаковы

Это сообщение отредактировал(а) zim22 - 8.4.2009, 15:41


--------------------
PM MAIL   Вверх
JAnty
Дата 8.4.2009, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 6.12.2004
Где: Москва

Репутация: 1
Всего: 2



Да, точно!  Значит -159=97  smile 


--------------------
Русский справочник по WinAPI

Возможно всё, что возможно вообразить! Это и значит быть гением как я!
PM MAIL   Вверх
zim22
Дата 8.4.2009, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(JAnty @  8.4.2009,  16:15 Найти цитируемый пост)
 Значит -159=97

только учителю математики этого не говорите smile


--------------------
PM MAIL   Вверх
JAnty
Дата 8.4.2009, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 6.12.2004
Где: Москва

Репутация: 1
Всего: 2



Цитата(zim22 @  8.4.2009,  16:24 Найти цитируемый пост)
только учителю математики этого не говорите


и а=а+1


--------------------
Русский справочник по WinAPI

Возможно всё, что возможно вообразить! Это и значит быть гением как я!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0659 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.