Сейчас на форуме: Rio (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Помошь в исследовании Newton Wrapper
Посл.ответ Сообщение

Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 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 файл.

7894_19.06.2008_CRACKLAB.rU.tgz - Newton wrapper.rar



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 июня 2008 19:43
· Личное сообщение · #2

А вот я скомплиил программку (простые тела падающие с неба, а в центре экрана счётчик вызовов phWorldStep(), кстати помоему демо-версия враппера ограничивает нас 2000 вызовов, ну где-то в этом районе (по счетчику) как раз и останавливается физика, но это так, догадка ).
Для правильной работы надо чтобы nwphx.dll (из предыдущего поста) лежал в одной папке с exe файлом.
А ещё в этом exe я вызывал phWorldCreate() так:
phWorldCreate(True,"ForCracklabToHelpMeWithThis")
то есть ключик я передаю - ForCracklabToHelpMeWithThis.
А пока жду помощи с бреакпоинтом в модуле nwphx.dll :D


8241_19.06.2008_CRACKLAB.rU.tgz - Example ( ForCracklabToHelpMeWithThis ) - Primitives.rar



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

Создано: 19 июня 2008 23:26 · Поправил: BadM00nz
· Личное сообщение · #3

Привет. Скачал скачал Newton wrapper и Primitives, кинул nwphx.dll, у меня при запуске Example ... .exe вылезает сообщение "Memory access violation" -_-, на счет бряков ... вы пробовали ставить HW bp в nwphx.dll ?



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 июня 2008 10:18
· Личное сообщение · #4

BadM00nz пишет:
... вы пробовали ставить HW bp в nwphx.dll ?

Нет, щас попробую, надеюсь получиться а насчет Memory Access Violation, это я ступил я забыл текстурку закинуть вот она кидать в папку с эксэ.


a317_20.06.2008_CRACKLAB.rU.tgz - cell.bmp



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

Создано: 20 июня 2008 19:27 · Поправил: BadM00nz
· Личное сообщение · #5

эмм ...
Вроде если забить нопами вот этот переход:
010AB3AF JNZ SHORT nwphx.010AB3EC
то ограничение на 2000 вызовов можно убрать , по крайне мере я прекратил работу проги на 44335 вызове .



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 июня 2008 22:23
· Личное сообщение · #6

BadM00nz пишет:
эмм ...
Вроде если забить нопами вот этот переход:
010AB3AF JNZ SHORT nwphx.010AB3EC
то ограничение на 2000 вызовов можно убрать , по крайне мере я прекратил работу проги на 44335 вызове .

ух ты если это правда то респект те чел но я вот найти его не могу, ты на него как вышел?
эххх, ищу ищу найти не магу ты этот адрес в модуле nwphx.dll набыдал? если да тогда другой вопрос:
когда искал этот переход ты просто DLL загружал, или EXE а потом в DLL?
а ещё забыл сказать, что серийник чтобы ввести он не один он какбы генерируется .
PS на всякий кинь ДЛЛ сравню их , и скажи как на этот переход вышел плз
Заранее спасибо



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

Создано: 20 июня 2008 22:57
· Личное сообщение · #7

1. Загружаем и запускаем Example ... .exe под Олькой.
2. Как только программа запустилась, заходим в Ольку, жмем F12
3. Идем к nwphx.dll ([E]xectuble Modules )
4. Жмем Ctrl-G , вбиваем 010AB3AF и попадаем на наш джамп.

Потом его нопим и сохраняем нашу дллку.



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 июня 2008 09:49 · Поправил: h1dd3n
· Личное сообщение · #8

BadM00nz пишет:
4. Жмем Ctrl-G , вбиваем 010AB3AF и попадаем на наш джамп.

вот поэтому я и попросил сказал как ты на него вышел
просто у мну то 010 вообще нивкаком модуле нету base nwphx.dll - 01580000
goto несканает поскольку адрес то у меня другой
PS я грю же выложи плз ДЛЛ ну или хотябы в личку кинь я их сравню и найду где ты че заменил
PPS начет бряков - васче чудеса, я теперь запускаю программу ( она работает ) перехожу в dll ставлю там че надо, потом рестарт программы, бряков нет, но как только я программу запускаю то все бряки ставятся :D ето полюбому Breakpoint Manager заработал наконец-то там даж написано все бряки поставятся когда break. manager найдёт нужный модуль

BadM00nz жду ответа




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 22 июня 2008 15:10 · Поправил: daFix
· Личное сообщение · #9

h1dd3n
"010AB3AF JNZ SHORT nwphx.010AB3EC" помоему чел загружал Dll без EXE, поэтому он загрузился по ImageBase = 01000000. Просто открой саму Dll в ольке и перейди по этому смещению

Проверил - я ошибся... Копаю дальше

-----
Research For Food





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 22 июня 2008 15:34 · Поправил: daFix
· Личное сообщение · #10

А вот и мой вариант патча:

015C9E67 833A 00 CMP DWORD PTR DS:[EDX],0
015C9E6A 90 NOP
015C9E6B 90 NOP
015C9E6C FF0A DEC DWORD PTR DS:[EDX]


Так как библа загружается у всех по разным адресам вот выкладываю Dll
загруженную по смещению 1000000:

10059E67 . 833A 00 CMP DWORD PTR DS:[EDX],0
10059E6A 90 NOP
10059E6B 90 NOP
10059E6C . FF0A DEC DWORD PTR DS:[EDX]


-----
Research For Food




Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 июня 2008 16:24
· Личное сообщение · #11

2 daFix, оо а вот это я нашёл ваще супер, работает на все 100, ещё в чото наподобия мануальчика и вааще все супер, ну как ты вышел на этот переход, как решил что это именно переход связанный серийником, че-нибудь такое плз если не сложно
Заранее спасибо.




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 22 июня 2008 16:32
· Личное сообщение · #12

h1dd3n
Не буду особо расписывать... Я особо не разберался с тем как она работает, просто зашёл в
функцию которая строит следующий кадр и протрассировал цикл пару раз. И тут заметил этот
прыжок по которому мы не прыгаем. Если мы перескочим по этому прыжку то следующий кадр
останется таким-же. Вот и решил занопить этот прыжок чтобы следующий кадр всегда радовал
глаз своей неповторимостью))) Конечно можно разобраться с самой проверкой серийника, но
помоему задача решена полностью.

-----
Research For Food




Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 июня 2008 17:04
· Личное сообщение · #13

daFix пишет:
Конечно можно разобраться с самой проверкой серийника, но
помоему задача решена полностью.

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


 eXeL@B —› Вопросы новичков —› Помошь в исследовании Newton Wrapper
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати