Сейчас на форуме: johnniewalker, vsv1, Magister Yoda, Kybyx (+4 невидимых)

 eXeL@B —› Крэки, обсуждения —› Нужен инструмент для создания ресурса (иконку) у экзешника, у которого ресурсов нет!
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 февраля 2012 11:07 · Поправил: zaichik
· Личное сообщение · #1

Друзья, то есть речь идёт о простом консольном "hello, word!"
...Редакторы ресурсов по умолчанию запрашивают секцию ресурсов, (а при её отсутсвии подленько молчат. Я имею ввиду в частности XNResourceEditor), ты пыхтишь малюешь иконку во встроенном графическом редакторе, сохраняешь файл, а по запуску выдаётся надпись "приложение не является приложением win32"

++++++++++++++++++++++++++++++++++++++++++++++++++++

Ну я пытался делать танцы с бубном. Я делал так: я присоединял к экзешнику абсолютно левую секцию, заполненную рандомно и обзывал её .rsrc Вычислял всё, как положено, правил таблицу секций, заголовки (но не таблицу директорий!) И вы знает, проканывало, экзешник запускался, секция "ресурсов" у меня была и редактор ресурсов на это клевал и чудненько редактировал "ресурсы" и вставлял туда иконку, но при этом размер файла уменьшалася на 20 кило, нормально?

А чё оказалось. Оказалось в экзешнике, куда я присоединял .rsrc был оверелй, результат бы л такой (экзешник):
секция_0 секция_1 секция_2 секция_3 оверелей .rsrc

А после "редактирования ресурсов"
секция_0 секция_1 секция_2 секция_3 .rsrc

Не, ну как это назвать? XNResourceEditor нагло удалил оверелей, как будто так и надо, и не сказал.
В общем, мои попытки вручную секцию ресурсов и тем самым обмануть XNResourceEditor оказались тщетными.
(Ну а если я правил таблицу директорий, то естессно, экзешник не запускалася потому, что в ресурсах был мусор!)

++++++++++++++++++++++++++++++++++++++++++++++++++++

В общем, повторюсь, инструмент, который ПРАВИЛЬНО добавлял бы секцию ресурсов, всё решил бы. Спасибо, кто откликнется, извините, если не туда написал!




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 02 февраля 2012 11:43
· Личное сообщение · #2

Дык ты сохрани оверлей, потом присоедини ресурс, а потом присоедини оверлей.

-----
StarForce и Themida ацтой!




Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 февраля 2012 12:27
· Личное сообщение · #3

Ну выже понимаете, нужно же не просто, чтобы оверелей был, а чтобы он был там, где надо! Мы же не знаем, может экзешник берёт оттуда какие-то данные, а я его смещу! А он потом будет по старым адресам обращаться, а там секция ресурса!

+++++++++++++++++++++++++++++++++++++++++++++++++++

Ну ладно, это я, допустим, своими толстыми пальцами поковырялся, и всё там на фиг порушил в экзешнике и XNResourceEditor повёл себя непредсказуемо. НО! Вот, оказывается хвалёный ResHacker.exe умеет САМ присоединять секцию ресурсов, даже если её нет, и тоже нещадно кромсает оверлей! И безо всяких предупреждений- раз и нет оверелея, а на его месте.rsrc и экзешник уменьшился.

Так это что за продукт-то такой? Ничё не понимаю...



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 02 февраля 2012 12:48 · Поправил: tihiy_grom
· Личное сообщение · #4

Нормальные программисты (если конечно они нормальные), которые писали этот простой консольный "Hello World" - не привязываются к конкретному адресу начала оверлея, а высчитывают его сами.

Делайте так, как сказал Maximus. Если работать не будет - выбросьте этот "Hello World"



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 февраля 2012 12:59 · Поправил: zaichik
· Личное сообщение · #5

Вообще я не понял ничего кроме того, что я плохой программист. Ну, пусть так. Да только не то, что размер оверлея- он мне сам даром не нужен и зачем его компилятор присоединяет, я ума не приложу. Нормальные программисты, конечно, умеют делать так, чтобы оверея не было, раз он им не нужен. А я ненормальный не умею. Кроме того, что компилю просто:
Code:
  1. g++ main.cpp





Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 02 февраля 2012 13:44
· Личное сообщение · #6

zaichik
Скачай ResBinder, откуси им ресурсы от любого файла релоцируя на конец своего файла, прицепи себе и правь как вздумается...

-----
Everything is relative...




Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 февраля 2012 14:47
· Личное сообщение · #7

А если вообще без оверелея обойтись?
Code:
  1. -s Remove all symbol table and relocation information from the executable.

Я вот не знаю, чё меня поджидает если я так напишу, ну да, не только оверлея не стало но и многих других секций, файл уменьшился в несколько раз, рабочий вроде... Правильно ли это?



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 02 февраля 2012 15:25
· Личное сообщение · #8

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



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 февраля 2012 16:17
· Личное сообщение · #9

Да всё ничё, но меня сомнения гложат, если звёзды зажигают, значит это кому-то нужно!

Хотя надо двигаться вперёд: мне надо иконки кропать к экзешникам (надоели безликие белые квадратики). И если никто ничё не скажет- что вот край эта отладочная инфа нужна для того-то и того-то (-s именно её и убирает), я, наверное, плюну на него до поры до времени, а как споткнусь так и буду разбираться.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 02 февраля 2012 16:48
· Личное сообщение · #10

Дык а не судьба сразу скомпилить с иконками? Наверняка в инете полно инфы как это сделать!

-----
StarForce и Themida ацтой!





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 02 февраля 2012 16:58
· Личное сообщение · #11

Символы нужны для отладки. Релоки нужны для загрузки ехе не по базе, чем может пользоваться ASLR. Никак не хочется в гугле это почитать, да?



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 февраля 2012 17:37 · Поправил: zaichik
· Личное сообщение · #12

Дык а не судьба сразу скомпилить с иконками? Наверняка в инете полно инфы как это сделать!
Я умею, но существуют некоторые детали, не позволяющие мне так делать и, пожалуй, главная из них- ресурсы и сырцы НЕЛЬЗЯ скомпилить одной командой. И как вывод (я работаю в Dev-Cpp) НЕЛЬЗЯ всю эту херь скомпилить одни нажатиме F9, правилен батник:
Code:
  1. windres -o MENU.o MENU.rc
  2. g++ ra_3.cpp MENU.-o ra_3.exe -static
  3. del MENU.o


Но запускать батник это ведь не одно и то же, что на жать на F9, угу? Вот потому я и не компилю сразу с ресурсами сырцы.

Символы нужны для отладки. Релоки нужны для загрузки ехе не по базе, чем может пользоваться ASLR. Никак не хочется в гугле это почитать, да?
За такой кажущейся лаконичностью скрывается опасность погрязнуть в поиске ответа на НЕОПРАВДАННЫЕ вопросы. Да, базара нет, я стану умнее. Только вот иконки лепить так и не начну.

Итак, символы нужны для отладки. А я вот, к примеру, сколько не отлаживал свои приложения, ни разу ими не пользовался. Это как? А так, что это надо выяснить. К чему это приведёт я сказал.
То, что ASLR может пользоваться тем фактом, что релоки нужны для загрузки не по базе, тоже надо осмыслить как-нибудь. Заодно узнать что такое ASLR и с чем его едят. Да, и про релоки выяснить, что это такое.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 02 февраля 2012 18:02
· Личное сообщение · #13

Для этого есть Debug сборка и Release. Дебаг с символами для отладки. Релиз без них для работы.
Что касается среды разработки, я ею не пользовался, но сомневаюсь, что там нельзя собирать ресурсы, если среда хоть более-менее адекватная. В крайнем случае как-нить криво, типа pre/post-build event-ами, правкой командной строки и тд. Либо среду поменять на что-нибудь более приличное, если совсем труба.
И да, если самому не хочется в этом разбираться, я бы не особо надеялся, что другие люди захотят тратить своё время на решение чужих вопросов. Направление движения дали, ключевые слова, что это такое, тоже. Не хочешь разбираться-дело хозяйское.
З.Ы. Добавлять ресурсы в свой собственный файл, имея на руках сорцы и компилятор, пахнет чем-то нездоровым.



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 февраля 2012 18:22 · Поправил: zaichik
· Личное сообщение · #14

Для этого есть Debug сборка и Release. Дебаг с символами для отладки. Релиз без них для работы.
Нет-нет, вопрс не стоял КАК ОТЛАЖИВАТЬ, как отлаживать я знаю. Там, кстати. по-моему и нет таких режимов, отладичк есть, да, но я им никогда не пользуюсь, он глюкавый какой-то, я либо OllyDbg, либо отладочные надписи. Но, кстати, спасибо, постоянно вижу эти термины у работающих в MSVS если перейду на неё, то не буду задавать глупые вопросы!

Что касается среды разработки, я ею не пользовался, но сомневаюсь, что там нельзя собирать ресурсы, если среда хоть более-менее адекватная. В крайнем случае как-нить криво, типа pre/post-build event-ами, правкой командной строки и тд. Либо среду поменять на что-нибудь более приличное, если совсем труба

Ну оно может быть и можно если лепить проект, но я проекты-то не леплю, вернее они по сложности проекты, а по сути просто файлы *.cpp и хидеры

И да, если самому не хочется в этом разбираться, я бы не особо надеялся, что другие люди захотят тратить своё время на решение чужих вопросов.
жаль, очень жаль

Не хочешь разбираться-дело хозяйское.
ну так-то я разобрался.

З.Ы. Добавлять ресурсы в свой собственный файл, имея на руках сорцы и компилятор, пахнет чем-то нездоровым.
просто я плохой кодер



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 февраля 2012 18:34
· Личное сообщение · #15

Только щас меня торкнуло, так эта вот отладочная информация чтобы отлаживать во встроенном в IDE отладчике? А, ну тогда обойдусь без разговоров даже, сроду им не пользовался



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 02 февраля 2012 19:40 · Поправил: HiEndsoft
· Личное сообщение · #16

zaichik пишет:
НЕЛЬЗЯ скомпилить одной командой. И как вывод (я работаю в Dev-Cpp)

ну так компиль Dev-Cpp, а линкуй ресурсы и объектник софтом от MS, (линкер студии поддерживает объектники от Dev-Cpp)

-----
продавец резиновых утёнков




Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 февраля 2012 19:47
· Личное сообщение · #17

Я. наверное, непонятен. Ничто не сравнится по удобству с нажатием F9. То есть я иногда компилю из командной строки, но это именно иногда, когда, например компиляторы сравниваю. или когда по F9 не идёт что-то. Я просто увидел у Вас много движений, ну их. Нет, я ценю, конечно помощь, но... Спасибо, в общем.




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 02 февраля 2012 23:34
· Личное сообщение · #18

Человек придумал себе проблему и носится с ней.
Это со всяким может случится, особенно на ранних стадиях развития.

-----
Give me a HANDLE and I will move the Earth.


| Сообщение посчитали полезным: SReg

Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 03 февраля 2012 00:15 · Поправил: zaichik
· Личное сообщение · #19

То, что редакторы ресурсов убирают оверлей есть факт. Если вы не объясните, почему на это не стоит обращать внимания, ваш опус, иначе как желанием поднасрать сильным форума сего, я расценивать не смогу.



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 03 февраля 2012 03:43
· Личное сообщение · #20

привязался к F9...чем тебя батники не устраивают? возьми и софт напиши, который будет хучить клаву и запускать батник

zaichik пишет:
То, что редакторы ресурсов убирают оверлей есть факт.

ну значит такие вот редакторы, не нравицо - сделай свой, с блэкджеком и шлюхами.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 03 февраля 2012 09:57 · Поправил: Maximus
· Личное сообщение · #21

MasterSoft вообщето человек хочет ресур к exe приделать, а ты ему предлагаешь для этого титаник построить

А, ну тогда обойдусь без разговоров даже, сроду им не пользовался
Предлагаю тему закрыть, как я понимаю проблема решена.

-----
StarForce и Themida ацтой!




Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 03 февраля 2012 10:18 · Поправил: zaichik
· Личное сообщение · #22

привязался к F9...чем тебя батники не устраивают?
Да тем хот я бы, что я когда пишу код, передо мной IDE, чтобы его компильнуть мне надо будет нажать на F9 (после чего я всегда запускаю программу по F10), а если писать батник, то в самом лучшем случае мне надо будет:
1) Закрыть IDE
2) ткнуть на батник
3) запустить программу
4) открыть IDE
И это , повторюсь, в самом ЛУЧШЕМ случае, то есть если у меня папка с батником открыта и находится СРАЗУ за IDE
...А если ошибки? Я ведь плохой кодер и у меня в 99 случаях из 100 бывают ошибки. Тут всё ещё хуже, если я жму на F9, то вот они, ошибки. Исправляй не хочу. А тут, допустим, я сделал чтобы батник с ошибками висел. Хорошо, это мне щас надо переместить батник в сторонку, окрыть IDE и исправлять их. Да, а по исправлению ошибок, я должен батник закрыть, ибо если не закрою, то будут у меня уже ДВА батника. Закрывать-то их всё равно придётся рано или поздно.

...2 раза жать на клавишу хуже (труднее, дольше) чем 4 раза на мышь? Или чё? Или как? А то я знаю одного кадра, так он всерьёз убеждён, что два раза кликать на мышь ЛЕГЧЕ, чем один, ибо стандарт...

который будет хучить клаву и запускать батник
Я же объяснил чем они меня не устраивают. Вы если уж спрашиваете меня моё мнение о них, до узнайте, а потом предлагайте или нет.

ну значит такие вот редакторы, не нравицо - сделай свой, с блэкджеком и шлюхами.
Дело не в редакторах. Дело в том, что хотя бы пусть plutos скажет, что проблема моя высосана из пальца- типа оверелй АПЕЕНДИЦИТ ненужный и кропается он в силу таких-то и таких-то причин, и правильно они делают, что его вырезают. Так ведь нет, пришёл, сказал будто я типа даун. ВЫ плюс-то поставьте ему.

Что касается функциональности редакторов, то, конечно. у нас демократия, кто как хочет тот так ПО и кропает, тем более оно бесплатно. Но могу я требовать, (предполагая, что ПО кропают порядочные люди), чтобы они ПРОСТО ПРЕДУПРЕДИЛИ- что да, оверлей исчезнет? Больше ничё от них не надо, я бы даже времени на них тратить не стал. А так ни хрена себе- полэкзешника корова как языком слизнула и как будто так и надо.

...А, может, они сами не знают, как их проги работают?
А при чём тут блэкджек и шлюхи я не понял.




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 03 февраля 2012 10:51
· Личное сообщение · #23

Дело в том, что хотя бы пусть plutos скажет, что проблема моя высосана из пальца

Хорошо, будь по-твоему, Зайчик!
Проблема твоя высосана из пальца.
Happy now?

-----
Give me a HANDLE and I will move the Earth.




Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 03 февраля 2012 10:53 · Поправил: zaichik
· Личное сообщение · #24

А аргументы? Или чё, из тебя каждое слово клещами вытягивать надо?



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 03 февраля 2012 10:57 · Поправил: SReg
· Личное сообщение · #25

zaichik пишет:
Я ведь плохой кодер и у меня в 99 случаях из 100 бывают ошибки

т.е. у тебя в 100 строчках кода - 99 ошибок?! , пришёл, сказал будто я типа даун
...очень даже может быть

zaichik пишет:
проблема моя высосана из пальца- типа оверелй АПЕЕНДИЦИТ ненужный

в твоем случае да, апендицит ненужный. можешь безболезненно удалять.

zaichik пишет:
Дело не в редакторах. Дело в том, что хотя бы пусть plutos скажет

и есче ты тупо тролль

add:zaichik пишет:
А аргументы?

какие ты хранишь данные в оверлее, жизненно необходимые для нормального функционирования
main()
{
printf("Hello, world\n");
}
?

| Сообщение посчитали полезным: plutos

Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 03 февраля 2012 10:59
· Личное сообщение · #26

Выложи чтоль exe (или исходники), а то пока проблема видится только тебе.



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 03 февраля 2012 11:04 · Поправил: Модератор
· Личное сообщение · #27

т.е. у тебя в 100 строчках кода - 99 ошибок?!
Люди, с которыми я общаюсь, переспрашивают, если кому-то что-то непонятно, а не домысливают как им надо. Дела не обстоят так, что у меня в 99 строчках из 100 ошибки. Тем не менее, ты это не выясняешь, а переходишь на личности.



Ранг: 2.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 03 февраля 2012 11:11 · Поправил: zaichik
· Личное сообщение · #28

Выложи чтоль exe (или исходники), а то пока проблема видится только тебе.
А чё даст? Хотя вам виднее.

Code:
  1. #include <stdio.h>
  2. int main (){
  3.  printf ("Hello, world!\n");
  4.  getchar ();
  5.  return 0;
  6. }


компилю:
Code:
  1. g++ hello.cpp


Версия
Code:
  1. E:\Dev-Cpp_nomingw\bin>g++ -v
  2. Using built-in specs.
  3. COLLECT_GCC=g++
  4. COLLECT_LTO_WRAPPER=e:/dev-cpp_nomingw/bin/../libexec/gcc/mingw32/4.6.1/lto-wrapper.exe
  5. Target: mingw32
  6. Configured with: ../gcc-4.6.1/configure --enable-languages=c,c++,fortran,objc,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgo
  7. -disable-win32-registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw
  8. Thread model: win32
  9. gcc version 4.6.1 (GCC)


Если niXman-овской сборкой пользоваться, эффект тот же (если интересует именно присоединение оверелея и секций с отладочной информацией)



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 03 февраля 2012 11:28
· Личное сообщение · #29

Либо я туплю, либо у Вас создается консольное приложение, которое изначально не имеет иконки.



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 03 февраля 2012 11:33 · Поправил: tihiy_grom
· Личное сообщение · #30

ТоварисЧ Заяц, с такими темпами вас скоро забанят.
Вам уже сказали - оверлей и всякая другая фигня вам не нужна. компильте с параметром "-s" и все дела.

А насчет иконки - почитайте что ли что-нибудь в гугле
http://www.daniweb.com/software-development/cpp/threads/121245


. 1 . 2 . >>
 eXeL@B —› Крэки, обсуждения —› Нужен инструмент для создания ресурса (иконку) у экзешника, у которого ресурсов нет!
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати