Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Power Basic

Страница: 1 |

 

  Вопрос: Точка входа Добавлено: 14.05.04 10:39  

Автор вопроса:  cresta

Извиняюсь, что притащил сюда, но в общем форуме была тема - Как запустить exe из массива. В одном из постов было следующее:

@lpImageNtHeaders.OptionalHeader.AddressOfEntryPoint + lpImageDosHeader (по-моему Alex постил, точно не помню)

Вот такой кусок кода:

DIM PtrWinMain AS DWORD
DIM Address AS DWORD

Address = LoadAttachedFile ( BYVAL ghInstance, leg, att) ' определение точки входа через PE
MSGBOX "Function returns: " & STR$(Address)  'msgbox возвращает 4203600
       
PtrWinMain  = CODEPTR(WINMAIN)   ' WINMAIN - вроде как точка входа
MSGBOX "CODEPTR returns: " & STR$(PtrWinMain)  'msgbox возвращает 4200386
CALL DWORD PtrWinMain    ' программа зацикливается, 'msgbox'ы повторяются

В функции LoadAttachedFile стоит строка:
FUNCTION = @lpImageNtHeaders.OptionalHeader.AddressOfEntryPoint + lpImageDosHeader 

Если вместо CALL DWORD PtrWinMain вызвать CALL DWORD Address - программа также зацикливается, отсюда вопрос:

Кто есть точка входа:
@lpImageNtHeaders.OptionalHeader.AddressOfEntryPoint + lpImageDosHeader
или WINMAIN?

И почему вызов по разным адресам (4203600 и 4200386) приводит к одинаковому результату - перезапуску программы?

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 15.05.04 02:20

Точка входа - в заголовке. WinMain - процедура, вызываемая после инициализации приложения (в самом сокращенном варианте - получение hInstance, VC, например, помещает туда еще разные проверки и обработку командной строки)

Ответить

Номер ответа: 2
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #2 Добавлено: 15.05.04 02:36
Ну точка входа плюс сдвиг(или как он там называется-не знаю, 400000h). Не важно, Главное, что вызывая с разными адресами, получаешь одно и то же. Подумал, что может там нули и они пропускаются, (типа NOP), сжал AsPack-ом - никаких нулей, и по-прежнему с разных адресов одинаково перезапускается программа, хотя 4200386 остался адрес, а другой - 4203600 - поменялся (за счет сжатия). Вот как. И вообще, на человеческом языке можно где- нибудь прочесть о PE, чтоб без словаря, а то пока переводишь, то что уже перевёл - всё забыл :)

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 15.05.04 03:19

Имхо, просто тут мало выполняется в стартовом коде (который перед WinMain) и ты не можешь это обнаружить из-за того, что твоя прога только выдает мсгбокс. По человечески о PE можно прочитать довольно в большом количестве мест, например, на wasm.ru, кажецца, была статейка. В доках Billy Belcebu было описание... В Iczelion'е даже, по моему, было...

Ответить

Номер ответа: 4
Автор ответа:
 alex



Вопросов: 84
Ответов: 453
 Профиль | | #4 Добавлено: 17.05.04 10:15

to cresta:

А ты, что хочешь написать упаковщик EXE файлов?

Ответить

Номер ответа: 5
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #5 Добавлено: 17.05.04 21:41

To Alex: да нет, упаковщика я писать не собирался. Просто заметил такой эффект и подумал: а почему так? Вот и взываю к более опытным товарищам с просьбой объяснить кто знает.

А что касается упаковщика, то пока есть AsPack, и на пару с msvbvm60 он делает прогу достаточно труднопроходимой.

Ответить

Номер ответа: 6
Автор ответа:
 alex



Вопросов: 84
Ответов: 453
 Профиль | | #6 Добавлено: 18.05.04 10:09

Aspack автоматически распаковывается за 1-2 минуты, любым юнпакером...

Экзешник на VB6 практически полностью декомпилируется VB REZQ, практически

до исходного кода. Причем независимо, как он скомпилирован в P-CODE или Native.

Ответить

Номер ответа: 7
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #7
Добавлено: 18.05.04 11:29

не пугай народ +)) ВБ РЕК неоткроет вашь сурс код вообще... максимум скажит какие АПИ были объявлены и какие функции были сделаны в форме

типа

private sub cmd1_click()

end sub

а вот код у тебя который был в этой сабе не будет открыт так что не волнуйтесь и забейти на всю эту фигню которые обещают декомпилить экзешник до сурса... берите в руки дизассемблер и всё а иначе никак

Ответить

Номер ответа: 8
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #8
Добавлено: 18.05.04 15:09

VB REZQ - такое Г... максимум на что он способен, это создать VB код, содержащий все модули, форму, контролы, НО никакого кода в процедурах там не будет... Он страшен только "кнопкокидателям", т.к. в их проектах исходного кода, как правило, минимум :) А про АПИ он (VB REZQ) и слыхом не слыхивал! А про использующиеся в них типы, тем более, да и вообще он ни одного пользовательского типа у меня не опознал :) Ах, да эта штука еще умеет вытаскивать названия всех процедур, функций контролов процедур :) ну а кто этого не умеет, открыл дизассемблер и смотри себе, это ни от кого и не скрывается :) И за все это чудо вы видели сколько они требуют !? Крахоборы ! 8D

Ответить

Номер ответа: 9
Автор ответа:
 alex



Вопросов: 84
Ответов: 453
 Профиль | | #9 Добавлено: 18.05.04 16:28

По моему вы говорите про незарегистрированную версию! В ней действительно

в процедурах нет кода, в легальной версии код востанавливается...

Недавно я выложил текстовый редактор для PB

http://scriptstudio.narod.ru/

И через пару дней получил исходный код (востановлен на 90%), из модулей регистрации

программы. Там действительно довольно трудный алгоритм, полностью построенный на API

вызовах, CopyMemory, CallWindowProc, и т.д. Кракер использовал легальную версию VBREZQ, по его словам...

Причем программа была упакована Aspack и откомпилирована в Native код!

Ответить

Номер ответа: 10
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #10
Добавлено: 18.05.04 20:33

Навряд-ли... т.к. им (разработчикам) невыгодно чтобы о их продукте сложилось мнение что практически ничего с его помощью нельзя сделать... Они попросту поставили ограничение на кол-во модулей... и думаю что этим и ограничились... А так кто будет покупать то, что нельзя посмотреть... А вот AsPack действительно снимается в два счета (достаточно только почитать статейки на cracklab), даже последнее время появились и туулзы для автоматической распаковки...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам