Сейчас на форуме: Rio (+5 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Помошь в исследовании Newton Wrapper |
Посл.ответ | Сообщение |
|
Создано: 19 июня 2008 19:33 · Поправил: h1dd3n · Личное сообщение · #1 Вот решил наконец-то попробовать поломать че-нибудь где используется ДЛЛька и вспомнил что каждый день юзаю Newton Wrapper... <поянение че ето такое> Вообщем есть такой язык программирования Blitz3D, предназначен он для "лёгкого" создания игр, так как в основе лежит простейший BASIC лёгкий для освоения, Blitz3D сразу же в себе содержит 3D движок с DirectX7 (что просто замечательно для создания шароварных игр), так же к нему можно подключать библиотеки DLL например вы хотите физику для игры (Ageia PhysX, Newron, Tokamak, ODE), или же вы хотите последние функции DirectX9 (Xors3D), Тени, Glow, Bump (AShadow) и т.д. (отсюда вот самое главное) Библиотеки подключаются когда вы кладёте DLL и decls файл в папку userlib, находящуюся в папке с установленным Blitz3D. Decls файл представляет собой простой текстовый файл который например указывает комманду CreateWorld() и "ссылку" (незнаю как по другому назвать) в самом DLL Newton'а например _phxCreateWorld@8. То есть в коде мы будем видеть что есть типа комадна CreateWorld(). После компиляции в отдельный exe надо кинуть в папку с exe все либы которые мы юзали (которые мы подключили а не вообще все :D). Дак вот в данном случае у нас только физика Newton. </пояснение> Я в коде программы пишу так phWorldCreate(True,"your license key") True значит что автоматически будет создан плэйн, как бы земля под ногами ![]() А вот в your license key надо вписать ключик для того чтобы библа работала полнофункционально, иначе физика будет обрабатываться какое-то время, в главном цикле я пишу phWorldStep(0.01) Типа команда библе обработать физику, колизии и прочую лабуду, и вот после определённого кол-ва раз вызова етой функции физика перестает обрабатываться... Я подумал что если есть decls файл то найти функции phWorldStep() и phWorldCreate() будет довольно легко. Я скомплиил простенькую прогу где сверху "с физикой падают объекты" а в центре экрана счётчик кол-ва обращений к phWorldStep(). Открыл прогу в Olly запустил, перешел в [E]xectuble Modules, нащёл nwphx.dll открыл его, Search for name(label) in current module, там нашёл _phWorldCreate@8 перешел, и как мне кажется находился уже недалеко от места где "сжирается" введённый мной серийник и дальше толи он сравнивается с чем то толи он откладывается до следуещего вызова phWorldStep() и уже там проверяется серийник и че-то мной введённое... если неправильно тогда "+скока-то к счетчику демо-версии"я подумал а поставлю бряк туда где я оказываюсь после перехода с указателся _phWorldCreate@8... но не тут то было ;( брейкпойнт не остался в этом модуле усе стёрлось ;( но если с Analyse Code я хоть как разобрался скачав плагин AnalyzeThis!, то как быть здесь? Я просто так решил на крэклаб не переть а сначала че-нить из плагинов поискать по Breakpoint'ам. Нашел Olly Breakpoint Manager 0.1, но он не робит нашел ещё какой-то (название забыл) тоже не робит, вот решил спросить у знатоков ![]() PS После того как разберусь с бреакпоинтом, у меня сто пудов возникнет ещё пара вопросов по этому врапперу, а новой темы создавать нет смысла, поэтому допишу здесь вопросы которые возникнут в ходе исслезования Newton'а. PPS Только не надо писать иди в запросы на взлом программ, для меня главное не крэкнуть эту программу а понять как она устроена, а самое главное попрактиковаться где присутствует DLLька ![]() PPPS в аттаче сам Newton wrapper DLL + decls файл. ![]() ![]() |
|
Создано: 19 июня 2008 19:43 · Личное сообщение · #2 А вот я скомплиил программку (простые тела падающие с неба, а в центре экрана счётчик вызовов phWorldStep(), кстати помоему демо-версия враппера ограничивает нас 2000 вызовов, ну где-то в этом районе (по счетчику) как раз и останавливается физика, но это так, догадка ![]() Для правильной работы надо чтобы nwphx.dll (из предыдущего поста) лежал в одной папке с exe файлом. А ещё в этом exe я вызывал phWorldCreate() так: phWorldCreate(True,"ForCracklabToHelpMeWithThis") то есть ключик я передаю - ForCracklabToHelpMeWithThis. А пока жду помощи с бреакпоинтом в модуле nwphx.dll :D ![]() ![]() |
|
Создано: 19 июня 2008 23:26 · Поправил: BadM00nz · Личное сообщение · #3 |
|
Создано: 20 июня 2008 10:18 · Личное сообщение · #4 BadM00nz пишет: ... вы пробовали ставить HW bp в nwphx.dll ? Нет, щас попробую, надеюсь получиться ![]() ![]() ![]() ![]() ![]() |
|
Создано: 20 июня 2008 19:27 · Поправил: BadM00nz · Личное сообщение · #5 |
|
Создано: 20 июня 2008 22:23 · Личное сообщение · #6 BadM00nz пишет: эмм ... Вроде если забить нопами вот этот переход: 010AB3AF JNZ SHORT nwphx.010AB3EC то ограничение на 2000 вызовов можно убрать , по крайне мере я прекратил работу проги на 44335 вызове . ух ты если это правда то респект те чел ![]() эххх, ищу ищу найти не магу ![]() когда искал этот переход ты просто DLL загружал, или EXE а потом в DLL? а ещё забыл сказать, что серийник чтобы ввести он не один ![]() ![]() PS на всякий кинь ДЛЛ сравню их ![]() ![]() Заранее спасибо ![]() ![]() |
|
Создано: 20 июня 2008 22:57 · Личное сообщение · #7 |
|
Создано: 21 июня 2008 09:49 · Поправил: h1dd3n · Личное сообщение · #8 BadM00nz пишет: 4. Жмем Ctrl-G , вбиваем 010AB3AF и попадаем на наш джамп. вот поэтому я и попросил сказал как ты на него вышел ![]() просто у мну то 010 вообще нивкаком модуле нету ![]() goto несканает поскольку адрес то у меня другой ![]() PS я грю же выложи плз ДЛЛ ну или хотябы в личку кинь я их сравню и найду где ты че заменил ![]() PPS начет бряков - васче чудеса, я теперь запускаю программу ( она работает ) перехожу в dll ставлю там че надо, потом рестарт программы, бряков нет, но как только я программу запускаю то все бряки ставятся :D ето полюбому Breakpoint Manager заработал наконец-то ![]() ![]() BadM00nz жду ответа ![]() ![]() |
|
Создано: 22 июня 2008 15:10 · Поправил: daFix · Личное сообщение · #9 |
|
Создано: 22 июня 2008 15:34 · Поправил: daFix · Личное сообщение · #10 А вот и мой вариант патча:
Так как библа загружается у всех по разным адресам вот выкладываю Dll загруженную по смещению 1000000:
----- Research For Food ![]() |
|
Создано: 22 июня 2008 16:24 · Личное сообщение · #11 |
|
Создано: 22 июня 2008 16:32 · Личное сообщение · #12 h1dd3n Не буду особо расписывать... Я особо не разберался с тем как она работает, просто зашёл в функцию которая строит следующий кадр и протрассировал цикл пару раз. И тут заметил этот прыжок по которому мы не прыгаем. Если мы перескочим по этому прыжку то следующий кадр останется таким-же. Вот и решил занопить этот прыжок чтобы следующий кадр всегда радовал глаз своей неповторимостью))) Конечно можно разобраться с самой проверкой серийника, но помоему задача решена полностью. ----- Research For Food ![]() |
|
Создано: 22 июня 2008 17:04 · Личное сообщение · #13 |
![]() |
eXeL@B —› Вопросы новичков —› Помошь в исследовании Newton Wrapper |
Эта тема закрыта. Ответы больше не принимаются. |