Русское сообщество по скриптингу

AMX Disassembler

Файлы и модули, которые пригодятся при скриптинге для AMX Mod X или SourceMod.
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено выкладывать файлы или модули для AMXX/SM, которые пригодятся при программировании.

AMX Disassembler

Сообщение Lt.RAT » 26 дек 2009, 17:58

AMX Disassembler изначально написанн Wraith`ом.
Забросил он свой дизассемблер, который потдерживал все типы AMX/AMXX/RAMX файлов, в 2005 году до выхода последнего (v8) формата файла AMXX. В котором разработчики полнуюстью переделали потдержку встроенного режима отладки.

Выкладываемая версия дизассемблера является усовершенствованной:
+: потдерживается новый формат отладочной информации
+: частично исправлен баг с неопределением строк
+: исправлен баг с неправильным определением вызовов функций
+: полнуюстью изменена система анализа data секции файлов, что позволяет довольно хорошо прогнозировать используемые переменные/массивы итп в плагинах скомпилированных с ключем -d0
+: обход защит используемых DJ_WEST`ом (придумает новую - пишите :) )
+: более подробные комментарии к коду (в плагинах скомпилированных с ключем -d0)
+: исправленные описания используемых опкодов

-: неправильное отображение строк с недефолтной кодировкой
-: возможно неправильное определение переменные/массивы итп в плагинах скомпилированных с ключем -d0
-: плохая потдержка x64 формата файлов (хотя AMXX на самом деле их не потдерживает). Да и данный баг был в более ранних версиях.
-: возможность вылета с ошибкой StackOverflow
-: из-за увеличенного кол-ва информации для анализа - долгая загрузка больших плагинов.
-: не потдерживает Compact

На всех своих тестовых плагинах багов не наблюдаю (в x32 версии файлов), но это не значит что их нет :)

Выкладываю версию для теста... Пока без исходников...

ЗЫ ознакомился с CompuPhase`овским компилятором... он генерит файлы уже версии 10 v10, АМХХ`овский компилятор же застрял увы на 8ой... судя по changelog`у довольно много багов там поправили.
Последний раз редактировалось Lt.RAT 13 янв 2010, 18:54, всего редактировалось 2 раз(а).
Аватара пользователя
Lt.RAT
 
Сообщения: 301
Зарегистрирован: 30 сен 2009, 01:44
Благодарил (а): 4 раз.
Поблагодарили: 151 раз.
Языки программирования: Counter-Strike 1.6

Re: AMX Disassembler

Сообщение Endi » 27 дек 2009, 12:59

Протестировал.., суравно плагины компилированные с -d0 не читабельны :) особенно когда и названия процедур левые ставишь :)

Маленький оффтоп: а для sourcemod нету аналога?
Аватара пользователя
Endi
 
Сообщения: 95
Зарегистрирован: 25 авг 2009, 11:26
Благодарил (а): 13 раз.
Поблагодарили: 20 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source

Re: AMX Disassembler

Сообщение Lt.RAT » 27 дек 2009, 14:41

Endi писал(а):Протестировал.., суравно плагины компилированные с -d0 не читабельны особенно когда и названия процедур левые ставишь

А как инчае то, если там вообще нету информации отладочной :) Когда есть только Секция кода и секция данных, причем без всякой разбивки на то что в них находится и откуда что начинается, уже такой анализ это частичная автоматизация... Хотя конечно иногда и ошибается при анализе, но это уже гораздо лучше чем совсем ничего.

Да и понятность кода это дело привычки, если часто с ним работал - листаешь код на языке ассемблера и спокойно его отражаешь, что почему и как делается :) Хотя это мне так просто рассуждать, не все начинали писать на языке ассемблера 10 лет назад и изучали 5 разных языков ассемблера.
Endi писал(а):
Маленький оффтоп: а для sourcemod нету аналога?

Как пишет BAILOPAN - для sourcemod нету дизассемблеров... Посмотрел я формат файлов - существенно отличаются от того что в AMXX используется, изменен язык ассемблера (ряд используемых опкодов заменены на другие с совершенно другими функциями)... Просто так потдержку другого формата файлов и другого ассемблера не сделать, но думаю займусь этим...
Add: а еще они поменяли реализацию многомерных массивов >_<

ЗЫ добавил базовую потдержку v9 и v10 AMX форматов файлов :) Но это уж совсем на будующее :)
Аватара пользователя
Lt.RAT
 
Сообщения: 301
Зарегистрирован: 30 сен 2009, 01:44
Благодарил (а): 4 раз.
Поблагодарили: 151 раз.
Языки программирования: Counter-Strike 1.6

Re: AMX Disassembler

Сообщение Lt.RAT » 06 янв 2010, 02:57

А вот теперь с базовой потдержкой SourceMode формата файлов...
До конца пока все не делал...
Не тестил строки (все виды), многомерные массивы(все виды), не делал анализ кода у некоторых новых опкодов...

Со строками ботва конечно :) Поидее их формат совсем не отличается от амхх`овских, но читает неправильно, проблема тут в упакованных/неупакованных строках...
Плагинов с использованием многомерных массивов я не нашел (хотя сильно и не искал)...

Если хотите чтобы строки и массивы декодились для SM правильно - пишите простенькие плагины в несколько строк (желательно без стандартных инклудов, лишь бы компилилось) с примерами использования упакованных и неупакованных строк, многомерных массивов разных размерностей и новых динамических массивов тоже разных размерностей. Используя их буду разбираться как все выше опианное реализованно... Ссылки на статейки по этим тематикам тоже приветствуются.

Или другой способ: я выдам исходники под универсальное исправление этих багов.

ЗЫ даблпостинг идет лесом...
ЗЗЫ сорри - забыл убрать автоматическую генерацию распакованных файлов (правда без Хидера) с расширениями *.smxz

Add: однако поменяли способ хранения упакованных строк... Раньше хранились как массивы используя little-endian, теперь хранятся как "нормальные строки" (точнее как массивы использующие big-endian)...
(хотя возможно сравнение с big/little endian тут не уместно)
Последний раз редактировалось Lt.RAT 07 янв 2010, 17:15, всего редактировалось 2 раз(а).
Аватара пользователя
Lt.RAT
 
Сообщения: 301
Зарегистрирован: 30 сен 2009, 01:44
Благодарил (а): 4 раз.
Поблагодарили: 151 раз.
Языки программирования: Counter-Strike 1.6

Re: AMX Disassembler

Сообщение Endi » 06 янв 2010, 12:36

Угу, со строками малость беда, а в целом ты конечно молодец :)
Вот сэмулирую мой античит на основе твоих творений, в тя суд подам :-D
Аватара пользователя
Endi
 
Сообщения: 95
Зарегистрирован: 25 авг 2009, 11:26
Благодарил (а): 13 раз.
Поблагодарили: 20 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source

Re: AMX Disassembler

Сообщение Lt.RAT » 13 янв 2010, 01:15

С многомерными и динамическими массивами я не разбирался, во всем остальном вроде поправил :) Хотя может что-то и забыл, но нестрашно :) Дальше по планам совсем глобальные вещи, не знаю когда они будут готовы и буду ли я ими всетаки заниматься :)

"Финальная" версия с исходниками в первом посте.

Теперь выложена на Вы должны зарегистрироваться, чтобы видеть ссылки.
Аватара пользователя
Lt.RAT
 
Сообщения: 301
Зарегистрирован: 30 сен 2009, 01:44
Благодарил (а): 4 раз.
Поблагодарили: 151 раз.
Языки программирования: Counter-Strike 1.6

Re: AMX Disassembler

Сообщение dslpp056193 » 25 сен 2011, 19:57

Туплю а как сохранять?
Аватара пользователя
dslpp056193
 
Сообщения: 1
Зарегистрирован: 25 сен 2011, 19:53
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: AMX Disassembler

Сообщение vampir » 01 окт 2011, 23:55

ctrl+a - выделить весь код
ctrl+c - скопировать выделенный часть
ctrl+v - вставить скопированный код
Прошу не тревожить на счет плагинов или дополнений в ZP. Я в инактиве!!!
Аватара пользователя
vampir
 
Сообщения: 625
Зарегистрирован: 02 авг 2010, 13:27
Откуда: Уфа
Благодарил (а): 138 раз.
Поблагодарили: 91 раз.
Языки программирования: Counter-Strike 1.6

Re: AMX Disassembler

Сообщение Fedcomp » 02 окт 2011, 03:49

Какие глобальные вещи у тебя в плане? :)
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4667
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 758 раз.
Поблагодарили: 1245 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: AMX Disassembler

Сообщение Lt.RAT » 06 окт 2011, 00:00

Это вопрос ТСу или предыдущим постерам ?)

Лично сейчас к дизассемблеру у меня еще два плагина: декомпилятор и обфускатор кода. Но пока обфусцированный код всеравно ручками надо править, для того чтобы он компилируемый был. А декомпилятор потдерживает стандартные опции компиляции и из недоделок - многомерные массивы и разные виды циклов, а так вообщем простейшие конструкции преобразовывает обратно. Но всеравно все это еще сильно сырое. Да и забросил я этот проект, хотя иногда лажу допиливаю как какая идея в голову взбредет :)
Аватара пользователя
Lt.RAT
 
Сообщения: 301
Зарегистрирован: 30 сен 2009, 01:44
Благодарил (а): 4 раз.
Поблагодарили: 151 раз.
Языки программирования: Counter-Strike 1.6

След.

Вернуться в Файлы и модули

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1