Страница: 1 |
Вопрос: Точка входа | Добавлено: 14.05.04 10:39 |
Автор вопроса: ![]() |
Извиняюсь, что притащил сюда, но в общем форуме была тема - Как запустить exe из массива. В одном из постов было следующее: @lpImageNtHeaders.OptionalHeader.AddressOfEntryPoint + lpImageDosHeader (по-моему Alex постил, точно не помню) Вот такой кусок кода: DIM PtrWinMain AS DWORD Address = LoadAttachedFile ( BYVAL ghInstance, leg, att) ' определение точки входа через PE В функции LoadAttachedFile стоит строка: Если вместо CALL DWORD PtrWinMain вызвать CALL DWORD Address - программа также зацикливается, отсюда вопрос: Кто есть точка входа: И почему вызов по разным адресам (4203600 и 4200386) приводит к одинаковому результату - перезапуску программы? |
Ответы | Всего ответов: 10 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 15.05.04 02:20 |
Точка входа - в заголовке. WinMain - процедура, вызываемая после инициализации приложения (в самом сокращенном варианте - получение hInstance, VC, например, помещает туда еще разные проверки и обработку командной строки) |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #2 | Добавлено: 15.05.04 02:36 |
Ну точка входа плюс сдвиг(или как он там называется-не знаю, 400000h). Не важно, Главное, что вызывая с разными адресами, получаешь одно и то же. Подумал, что может там нули и они пропускаются, (типа NOP), сжал AsPack-ом - никаких нулей, и по-прежнему с разных адресов одинаково перезапускается программа, хотя 4200386 остался адрес, а другой - 4203600 - поменялся (за счет сжатия). Вот как. И вообще, на человеческом языке можно где- нибудь прочесть о PE, чтоб без словаря, а то пока переводишь, то что уже перевёл - всё забыл ![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 15.05.04 03:19 |
Имхо, просто тут мало выполняется в стартовом коде (который перед WinMain) и ты не можешь это обнаружить из-за того, что твоя прога только выдает мсгбокс. По человечески о PE можно прочитать довольно в большом количестве мест, например, на wasm.ru, кажецца, была статейка. В доках Billy Belcebu было описание... В Iczelion'е даже, по моему, было... |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 84 Ответов: 453 |
Профиль | Цитата | #4 | Добавлено: 17.05.04 10:15 |
to cresta: А ты, что хочешь написать упаковщик EXE файлов? |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #5 | Добавлено: 17.05.04 21:41 |
To Alex: да нет, упаковщика я писать не собирался. Просто заметил такой эффект и подумал: а почему так? Вот и взываю к более опытным товарищам с просьбой объяснить кто знает. А что касается упаковщика, то пока есть AsPack, и на пару с msvbvm60 он делает прогу достаточно труднопроходимой. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 84 Ответов: 453 |
Профиль | Цитата | #6 | Добавлено: 18.05.04 10:09 |
Aspack автоматически распаковывается за 1-2 минуты, любым юнпакером... Экзешник на VB6 практически полностью декомпилируется VB REZQ, практически до исходного кода. Причем независимо, как он скомпилирован в P-CODE или Native. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 10 Ответов: 387 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 18.05.04 11:29 |
не пугай народ +)) ВБ РЕК неоткроет вашь сурс код вообще... максимум скажит какие АПИ были объявлены и какие функции были сделаны в форме типа private sub cmd1_click() end sub а вот код у тебя который был в этой сабе не будет открыт так что не волнуйтесь и забейти на всю эту фигню которые обещают декомпилить экзешник до сурса... берите в руки дизассемблер и всё а иначе никак |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 18.05.04 15:09 |
VB REZQ - такое Г... максимум на что он способен, это создать VB код, содержащий все модули, форму, контролы, НО никакого кода в процедурах там не будет... Он страшен только "кнопкокидателям", т.к. в их проектах исходного кода, как правило, минимум |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 84 Ответов: 453 |
Профиль | Цитата | #9 | Добавлено: 18.05.04 16:28 |
По моему вы говорите про незарегистрированную версию! В ней действительно в процедурах нет кода, в легальной версии код востанавливается... Недавно я выложил текстовый редактор для PB http://scriptstudio.narod.ru/ И через пару дней получил исходный код (востановлен на 90 программы. Там действительно довольно трудный алгоритм, полностью построенный на API вызовах, CopyMemory, CallWindowProc, и т.д. Кракер использовал легальную версию VBREZQ, по его словам... Причем программа была упакована Aspack и откомпилирована в Native код! |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 18.05.04 20:33 |
Навряд-ли... т.к. им (разработчикам) невыгодно чтобы о их продукте сложилось мнение что практически ничего с его помощью нельзя сделать... Они попросту поставили ограничение на кол-во модулей... и думаю что этим и ограничились... А так кто будет покупать то, что нельзя посмотреть... А вот AsPack действительно снимается в два счета (достаточно только почитать статейки на cracklab), даже последнее время появились и туулзы для автоматической распаковки... |
Страница: 1 |
|