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

Декомпиляция плагинов (из .amxx в .sma) на основе amxxdump

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

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

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

Re: Декомпиляция плагинов (из .amxx в .sma) на основе amxxdu

Сообщение Gadji » 11 янв 2013, 19:52

При открытии файла amxxdump.exe выдает ошибку can not open file for reading .. Что делать ?

Добавлено спустя 2 минуты 31 секунду:
Re: Декомпиляция плагинов (из .amxx в .sma) на основе amxxdump
При открытии файла amxxdump открывает командную строку на мили секунд .. Я успел просмотреть надпись в командной строке. Пишет это: can not open file for reading. Что делать ?
Аватара пользователя
Gadji
 
Сообщения: 27
Зарегистрирован: 13 дек 2012, 20:26
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Декомпиляция плагинов (из .amxx в .sma) на основе amxxdu

Сообщение Chuvi » 11 янв 2013, 22:58

Gadji, думаю, начинать изучать скриптинг с декомпиляции- не лучшая идея.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Декомпиляция плагинов (из .amxx в .sma) на основе amxxdu

Сообщение slavok1717 » 13 янв 2013, 16:43

Chuvi писал(а):Gadji, думаю, начинать изучать скриптинг с декомпиляции- не лучшая идея.


По моему проще написать любой плагин, а не раскрывать его сущность =)
- - -
Аватара пользователя
slavok1717
 
Сообщения: 498
Зарегистрирован: 15 дек 2012, 23:13
Благодарил (а): 213 раз.
Поблагодарили: 78 раз.

Re: Декомпиляция плагинов (из .amxx в .sma) на основе amxxdu

Сообщение saruman4ik » 15 фев 2013, 16:49

DJ_WEST, почему программа не открывается? точнее открывается на миллисекунду и закрывается :(
Аватара пользователя
saruman4ik
 
Сообщения: 1
Зарегистрирован: 14 фев 2013, 15:35
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Декомпиляция плагинов (из .amxx в .sma) на основе amxxdu

Сообщение Rejiser » 15 фев 2013, 18:39

saruman4ik писал(а):DJ_WEST, почему программа не открывается? точнее открывается на миллисекунду и закрывается :(

Потому что нужно читать внимательно описание:

amxxdump - это консольное приложение, предназначенное для дизассемблирования .amxx плагинов, автором которого является Steve Dudenhoeffer. Данное приложение будем использовать через командную строку Windows (cmd).

Синтаксис использования:
amxxdump [параметры] имя_файла.amxx
Аватара пользователя
Rejiser
 
Сообщения: 2928
Зарегистрирован: 03 сен 2010, 16:23
Благодарил (а): 215 раз.
Поблагодарили: 675 раз.
Языки программирования: Counter-Strike 1.6

Re: Декомпиляция плагинов (из .amxx в .sma) на основе amxxdu

Сообщение fdek » 28 окт 2013, 22:10

Lt.RAT писал(а):[del]
Распаковывать можно дизассемблером который я выкладывал: Вы должны зарегистрироваться, чтобы видеть ссылки.

Там в графическом интерфейсе такой возможности нету, но можно через консоль
пример батника:[/del]
Код: Выделить всё
Disassembler.exe -e hd_main.amxx 32

ключ -e -extarct (извлечь)

Упаковывать пока нечем :( Для этих целей, я для себя переделывал компилятор от 1,76d amxx`а... Там довольно просто, он готовит два файла для упаковки и упаковывает... Остается только оставить нужную часть кода и написать часть для подсовывания будующему упаковщику нужных файлов. С выходом нового амхх, старый упаковщик делает сбои, хз что там поменялось, не разбирался, но явно надо делать новый из нового амхх...

ЗЫ попутно обнаружил баг, что не выводится хелп по /? и прочее в дизассемблере - надо будет править :(
ЗЗЫ если есть возможность добавить такой функционал в amxDisassembler - думаю все будут рады этому :)

конечно будут. :-[
ещё находил распаковщик на питоне Вы должны зарегистрироваться, чтобы видеть ссылки. ... ecompress/
но проблема в обратной упаковке в amxx (насколько понял нужно возится с заголовками).
там же находил что то о редактировании плагина hex-редактором Вы должны зарегистрироваться, чтобы видеть ссылки. ... -zlamania/
Последний раз редактировалось fdek 28 окт 2013, 22:18, всего редактировалось 1 раз.
Аватара пользователя
fdek
 
Сообщения: 6
Зарегистрирован: 28 окт 2013, 21:39
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: Декомпиляция плагинов (из .amxx в .sma) на основе amxxdu

Сообщение Fedcomp » 28 окт 2013, 22:16

Написал декомпрессор amxx плагинов, читает debug область, читает заголовки, все распаковывает. Пока что остановился на собственно декомпиляции байткода. Лень.
Вот пример вывода плагина с debug областью, на примере старого CSF античита (можете кинуть ваши плагины если не верите):
[pawn]
  1. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) Starting Plugin Decompilation [] []

  2. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (Decompressor) Amxx Section found [] []

  3. [2013-10-28 23:16:06] DecompileLog.INFO: (Plugin) (Decompressor) Amxx file version: [768] []

  4. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (Decompressor) Sections found. {"Amount":2} []

  5. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (Decompressor) Reading Section [] []

  6. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (Decompressor) == Amxx32BitSection == [] []

  7. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (Decompressor) ----> Cellsize [4] []

  8. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (Decompressor) ----> disksize [67358] []

  9. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (Decompressor) ----> imagesize [610025] []

  10. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (Decompressor) ----> memsize [540284] []

  11. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (Decompressor) ----> offset [41] []

  12. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (Decompressor) Successfully decompressed [] []

  13. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) == AMXX Header == [] []

  14. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) Amx header size [523900] []

  15. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) Correct amxx magic ["0xf1e0"] []

  16. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) Amxx Flags [{"AMX_FLAG_DEBUG":"true","AMX_FLAG_COMPACT":"false","AMX_FLAG_BYTEOPC":"false","AMX_FLAG_NOCHECKS":"false","AMX_FLAG_OLDFILE":"false","AMX_FLAG_PRENIT":"false","AMX_FLAG_NTVREG":"false","AMX_FLAG_JITC":"false","AMX_FLAG_BROWSE":"false","AMX_FLAG_RELOC":"false"}] []

  17. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> file_version [8] []

  18. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> amx_version [8] []

  19. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> defsize [8] []

  20. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> cod [5952] []

  21. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> dat [177136] []

  22. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> hea [523900] []

  23. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> stp [540284] []

  24. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> cip ["Not found"] []

  25. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> publics [56] []

  26. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> natives [1088] []

  27. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> libraries [2104] []

  28. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> pubvars [2104] []

  29. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> tags [2104] []

  30. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) ----> nametable [2176] []

  31. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX Header) Amxx Header readed successfully. [] []

  32. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) == AMXX DBG Header == [] []

  33. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) Debug section found [] []

  34. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> size [86125] []

  35. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> Correct amx_dbg magic ["0xf1ef"] []

  36. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> file_version [8] []

  37. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> amx_version [8] []

  38. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> flags [0] []

  39. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> files [29] []

  40. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> lines [2886] []

  41. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> symbols [1097] []

  42. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> tags [38] []

  43. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> automatons [1] []

  44. [2013-10-28 23:16:06] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> states [0] []

  45. [2013-10-28 23:16:12] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> Included files ["C:\\scripting\\include\\float.inc","C:\\scripting\\include\\string.inc","C:\\scripting\\include\\amxmisc.inc","C:\\scripting\\include\\hamsandwich.inc","C:\\scripting\\include\\xs.inc","csf_anticheat\\log_module.inc","csf_anticheat\\zoneguard.inc","csf_anticheat\\spinhack.inc","csf_anticheat\\cheatkey.inc","csf_anticheat\\fastpistolshots.inc","csf_anticheat\\flashbug.inc","csf_anticheat\\hebug.inc","csf_anticheat\\cvarguard.inc","csf_anticheat\\fastfire.inc","csf_anticheat\\speedhack.inc","csf_anticheat\\silentplant.inc","csf_anticheat\\bhopdetect.inc","csf_anticheat\\doubleduck.inc","csf_anticheat\\cdhack_ffx.inc","csf_anticheat\\cheatnames.inc","csf_anticheat\\namespam.inc","csf_anticheat\\cheatlist.inc","csf_anticheat\\cheatsay.inc","csf_anticheat\\cmd_flood.inc","csf_anticheat\\wallhack.inc","csf_anticheat\\filescheck.inc","csf_anticheat\\initialized.inc","csf_anticheat\\antidouble.inc","C:\\scripting\\csf_anticheat.sma"] []

  46. [2013-10-28 23:16:12] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> Symbols {"0":"oper2","1":"oper1","2":"oper2","3":"oper1","4":"oper2","5":"oper1","6":"oper2","7":"oper1","8":"oper2","9":"oper1","10":"oper2","11":"oper1","12":"oper2","13":"oper1","14":"oper2","15":"oper1","16":"oper2","17":"oper1","18":"oper2","19":"oper1","20":"oper","21":"temp_pos","22":"total_len","23":"diff","24":"with_len","25":"total","26":"pos","27":"with","28":"what","29":"len","30":"string","31":"__flags","32":"id","33":"level","34":"id","35":"len","36":"name","37":"outside","38":"function","39":"keys","40":"title","41":"fail","42":"func","43":"reason","44":"err","45":"id","46":"x","47":"out","48":"in2","49":"in1","50":"invlen","51":"out","52":"vec","53":"vec2","54":"vec1","55":"log_msg1_safe","56":"log_name_safe","57":"hostname","58":"log_time","59":"mapname","60":"format_logfile","61":"log_loss","62":"log_ping","63":"log_authid","64":"log_ip","65":"log_name","66":"log_msg","67":"msg1","68":"id","69":"fnmodule","70":"len","71":"output","72":"input","73":"format_logfile","74":"format_logfile","75":"format_logfile","76":"DataSize","77":"Data","78":"Errcode","79":"Error","80":"Query","81":"FailState","82":"velocity","83":"player","84":"id","85":"entity","86":"campertime","87":"zm","88":"maxs","89":"mins","90":"position","91":"maxs","92":"mins","93":"position","94":"i","95":"entity","96":"position","97":"player","98":"output","99":"maxs","100":"mins","101":"pos","102":"zm","103":"z","104":"i","105":"mapstringonfile","106":"mapname","107":"zonezgfile","108":"player","109":"i","110":"pos","111":"maxs","112":"mins","113":"ct","114":"zm","115":"data","116":"loadzones","117":"len","118":"line","119":"input","120":"zonezgfile","121":"life","122":"color","123":"sizemax","124":"sizemin","125":"brightness","126":"color","127":"stop","128":"start","129":"stop","130":"start","131":"color","132":"z2","133":"y2","134":"x2","135":"z1","136":"y1","137":"x1","138":"z","139":"i","140":"color","141":"id","142":"maxs","143":"mins","144":"dh","145":"hitpoint","146":"editorzgpos","147":"pos","148":"entity","149":"id","150":"i","151":"entity","152":"ipadr","153":"steam","154":"name","155":"player","156":"menukeys","157":"zm","158":"menu","159":"trans","160":"player","161":"key","162":"player","163":"zm","164":"menukeys","165":"menu","166":"trans","167":"player","168":"zm","169":"ct","170":"ct","171":"key","172":"player","173":"key","174":"player","175":"maxs","176":"mins","177":"pos","178":"entity","179":"maxs","180":"mins","181":"pos","182":"entity","183":"maxs","184":"mins","185":"pos","186":"entity","187":"maxs","188":"mins","189":"pos","190":"entity","191":"menu","192":"player","193":"indexzg","194":"classname","195":"indexzg","196":"indexzg","197":"maxs","198":"mins","199":"indexzg","200":"model","201":"indexzg","202":"classname","203":"maxs","204":"mins","205":"origin","206":"indexzg","207":"visible","208":"indexzg","209":"fov","210":"dot","211":"norm","212":"diff","213":"origin","214":"angles","215":"point","216":"indexzg","217":"ent","218":"ret","219":"end","220":"start","221":"ignoreent","222":"classname","223":"player","224":"zonezg","225":"zm","226":"zonezg","227":"player","228":"ipadresscmd","229":"reasoncmd","230":"namecmd","231":"bantime","232":"authidcmd","233":"useridcmd","234":"player","235":"ipadresscmd","236":"reasoncmd","237":"namecmd","238":"bantime","239":"authidcmd","240":"useridcmd","241":"g_detectnow","242":"loss","243":"ping","244":"CurrentTime","245":"name","246":"id","247":"i","248":"id","249":"Button","250":"fAngles","251":"id","252":"Vec2","253":"Vec1","254":"szBIND","255":"index","256":"line_len","257":"line_count","258":"szLine","259":"szFilePath","260":"id","261":"i","262":"id","263":"szClCmd","264":"index","265":"id","266":"param","267":"ipadresscmd","268":"reasoncmd","269":"namecmd","270":"bantime","271":"authidcmd","272":"useridcmd","273":"address","274":"name","275":"cheatkeycmd","276":"id","277":"id","278":"i","279":"inum","280":"players","281":"ctime","282":"hostname","283":"name","284":"message","285":"cheatkeycmd","286":"id","287":"cd_handle","288":"sendweapons","289":"id","290":"buttons","291":"id","292":"id","293":"s_iBurstMode","294":"s_iUserOldAmmo","295":"iNewClip","296":"iCurWeapon","297":"id","298":"fWeaponOrigin","299":"fUserOrigin","300":"iWeaponId","301":"id","302":"model","303":"ent","304":"fraction","305":"absmax","306":"user_origin","307":"trace","308":"hit","309":"radius","310":"origin","311":"start","312":"model","313":"ent","314":"fraction","315":"abs","316":"ent_origin","317":"trace","318":"hit","319":"radius","320":"origin","321":"start","322":"absmax","323":"absmin","324":"origin","325":"ent","326":"absmax","327":"absmin","328":"ent","329":"origin","330":"szValue","331":"szCvar","332":"parsedParams","333":"i","334":"index","335":"line_len","336":"line_count","337":"szLine","338":"szFilePath","339":"i","340":"id","341":"szClCmd","342":"index","343":"id","344":"id","345":"wAmmo","346":"weaponID","347":"id","348":"ipadresscmd","349":"reasoncmd","350":"namecmd","351":"bantime","352":"authidcmd","353":"useridcmd","354":"loss","355":"ping","356":"name","357":"i","358":"i","359":"ctime","360":"id","361":"flValue","362":"iUseType","363":"iActivator","364":"id","365":"iEntity","366":"id","367":"entity","368":"id","369":"ctime","370":"id","371":"ctime","372":"id","373":"dist","374":"oldorigin","375":"origin","376":"i","377":"id","378":"ipadresscmd","379":"reasoncmd","380":"namecmd","381":"authidcmd","382":"bantime","383":"useridcmd","384":"loss","385":"ping","386":"name","387":"id","388":"i_pitch","389":"i_flags","390":"f_attenuation","391":"f_volume","392":"s_SOUND","393":"i_channel","394":"entity","395":"id","396":"ipadresscmd","397":"reasoncmd","398":"namecmd","399":"bantime","400":"authidcmd","401":"useridcmd","402":"name","403":"id","404":"s_iFlags","405":"id","406":"id","407":"s_fTemp2","408":"s_fTemp","409":"pset","410":"player","411":"hostflags","412":"host","413":"ent","414":"e","415":"es_handle","416":"pset","417":"player","418":"hostflags","419":"host","420":"ent","421":"e","422":"es_handle","423":"myacfield","424":"id","425":"userTeam","426":"id","427":"myacfield","428":"id","429":"id","430":"ffxformatvalue","431":"ffxversion","432":"ffxcvar","433":"id","434":"id","435":"cdhackformatvalue","436":"cdhackvalue","437":"cdversion","438":"id","439":"id","440":"ipadresscmd","441":"reasoncmd","442":"namecmd","443":"bantime","444":"authidcmd","445":"useridcmd","446":"cdversion","447":"id","448":"ffxdet","449":"id","450":"ipadresscmd","451":"reasoncmd","452":"namecmd","453":"bantime","454":"authidcmd","455":"useridcmd","456":"versionffx","457":"id","458":"id","459":"id","460":"id","461":"id","462":"cmd","463":"id","464":"ipadresscmd","465":"reasoncmd","466":"namecmd","467":"bantime","468":"authidcmd","469":"useridcmd","470":"g_ban","471":"name","472":"j","473":"i","474":"id","475":"i","476":"tempstr","477":"text","478":"textsize","479":"line","480":"cheatnamesconfig","481":"ipadresscmd","482":"reasoncmd","483":"namecmd","484":"bantime","485":"authidcmd","486":"useridcmd","487":"name","488":"id","489":"id","490":"i","491":"infoField","492":"id","493":"ipadresscmd","494":"reasoncmd","495":"namecmd","496":"bantime","497":"authidcmd","498":"useridcmd","499":"frmcheat","500":"cheat","501":"id","502":"i","503":"tempstr","504":"text","505":"textsize","506":"line","507":"antisayconfig","508":"ipadresscmd","509":"reasoncmd","510":"namecmd","511":"bantime","512":"authidcmd","513":"useridcmd","514":"address","515":"name","516":"numlist","517":"said","518":"id","519":"j","520":"i","521":"said","522":"id","523":"ipadresscmd","524":"reasoncmd","525":"namecmd","526":"bantime","527":"authidcmd","528":"useridcmd","529":"authid","530":"address","531":"name","532":"nexTime","533":"cmd","534":"id","535":"renderamt","536":"rendermode","537":"ent","538":"entity","539":"msg_dest","540":"msg_id","541":"id","542":"stuckent","543":"attachent","544":"id","545":"id","546":"target","547":"tr","548":"id","549":"cond","550":"end","551":"start","552":"id","553":"normal","554":"plane_vec","555":"end","556":"origin","557":"class_name","558":"j","559":"j","560":"i","561":"j","562":"j","563":"i","564":"j","565":"j","566":"i","567":"j","568":"j","569":"i","570":"j","571":"j","572":"i","573":"j","574":"j","575":"i","576":"ignore_ent","577":"normal","578":"plane_vec","579":"addict","580":"end","581":"start","582":"origin","583":"set","584":"player","585":"flags","586":"host","587":"ent","588":"e","589":"es","590":"id","591":"fraction","592":"ignore_ent","593":"point","594":"start","595":"i","596":"origin","597":"id","598":"num","599":"players","600":"vec","601":"texture_name","602":"fraction","603":"ent","604":"ignore_ent","605":"point","606":"start","607":"fraction","608":"ignore_ent","609":"point","610":"start","611":"id","612":"out","613":"in2","614":"in1","615":"out","616":"in2","617":"in1","618":"out","619":"scalar","620":"vec","621":"vec","622":"vec2","623":"vec","624":"vec2","625":"vec1","626":"text","627":"textsize","628":"line","629":"cfgfilescheck","630":"echowl","631":"wl_configsDir","632":"szFilePath","633":"zonezgfile","634":"Db","635":"Pass","636":"User","637":"Host","638":"i","639":"i","640":"maxents","641":"id","642":"id","643":"param","644":"id","645":"name","646":"id","647":"id","648":"msg1frm","649":"steamid","650":"ipadr","651":"nickname","652":"i","653":"reason","654":"filename","655":"id","656":"msg2","657":"msg","658":"function","659":"type","660":"id","661":"parsedParams","662":"valuepr","663":"parameter","664":"i","665":"len","666":"textline","667":"line","668":"filename","669":"mapname","670":"arg1","671":"id","672":"operator!(Float:)","673":"operator!=(Float:,Float:)","674":"operator/(_:,Float:)","675":"operator/(Float:,_:)","676":"operator==(Float:,Float:)","677":"operator>(Float:,Float:)","678":"operator>=(Float:,Float:)","679":"operator>=(Float:,_:)","680":"operator<(Float:,Float:)","681":"operator<(Float:,_:)","682":"operator<=(Float:,Float:)","683":"BanSayCheat","684":"BigThanks","685":"CheatNames","686":"CheatReports","687":"CheatReports_Number","688":"CheckCheatNames","689":"CheckCheatReport","690":"CheckSpinHack_Post","691":"Commandflood","692":"CopyVector","693":"CreateNewZone","694":"CreateZone","695":"CreateZoneOnPlayer","696":"DrawLine","697":"EditMenuAction","698":"EnableAntiCheat","699":"EnableCheatNames","700":"Event_CurWeapon_FPS","701":"Event_DeathMsg_FPS","702":"Event_FreezeTime","703":"Event_RoundEnd","704":"Event_RoundStart","705":"Event_ShotFired","706":"FM_AddToFullPack_Post","707":"FM_AddToFullPack_Pre","708":"FM_FindEntityInSphere_Pre_HEFix","709":"FM_PlayerPostThink_Pre","710":"FM_PlayerPreThink_Post_FPS","711":"FM_PlayerPreThink_Pre","712":"FM_Think_HEFix_Pre","713":"FM_UpdateClientData_Post_FPS","714":"FX_Box","715":"FX_Line","716":"FilesCheck","717":"FindAllZones","718":"Fwd_PlayerPostThink","719":"HideAllZones","720":"InitZoneGuard","721":"KillMenuAction","722":"LoadFilesCheck","723":"LoadZG","724":"MainMenuAction","725":"MakeStringSQLSafe","726":"OpenEditMenu","727":"OpenKillMenu","728":"OpenZoneGuardMenu","729":"QueryHandle","730":"REASONBH","731":"REASONCD","732":"REASONCF","733":"REASONCK","734":"REASONCN","735":"REASONCS","736":"REASONFF","737":"REASONFFX","738":"REASONNS","739":"REASONSH","740":"REASONSPH","741":"REASONZG","742":"RandomDirection","743":"RegisterOffense","744":"RegisterOffensesh","745":"SaveZG","746":"ScreenShotCheatKey","747":"ShowAllZones","748":"ShowZoneBox","749":"SusCNT","750":"Task_CheckSpinTotal","751":"VonGelbAbziehen","752":"VonRotAbziehen","753":"ZoneModeKill","754":"ZoneTouch","755":"ZuGelbAddieren","756":"ZuRotAddieren","757":"__fatal_ham_error","758":"access","759":"address","760":"authid","761":"ban_cheatlist","762":"bcheatkey","763":"beampoint","764":"bhop_detected","765":"bhopwarn","766":"bindcheatkeys","767":"bs_array_solid","768":"bs_array_transp","769":"bs_cl_alive","770":"bs_cl_announce","771":"bs_cl_bot","772":"bs_cl_connect","773":"bs_cl_ducking","774":"bs_cl_seen_by","775":"bs_cl_smooth","776":"bs_cl_targets","777":"cdbuild","778":"cdchoke","779":"cddetect","780":"cdhack_newdetect","781":"cdhackban","782":"cdver","783":"cdvertest","784":"cfgcvarguard","785":"cheathelp","786":"cheatkeyfcmd","787":"cheatlist","788":"checkBulletCount","789":"checkSpeedHack","790":"check_double_plugins","791":"clcmd_blockedcmd","792":"clearDetectFF","793":"clearSpecificAlertValue","794":"client_command","795":"client_connect","796":"client_disconnect","797":"client_infochanged","798":"client_putinserver","799":"cmdcheck_cdhack_ffx","800":"commandpunishment","801":"cooldown","802":"countBullets","803":"csf_ac_ra","804":"cv_ac1","805":"cv_amxbanstype","806":"cv_bhop","807":"cv_bhop_bansay","808":"cv_bhop_bantime","809":"cv_bhop_bantype","810":"cv_bhop_warn","811":"cv_bhop_warnsay","812":"cv_cdhack","813":"cv_cdhack_bansay","814":"cv_cdhack_bantime","815":"cv_cdhack_bantype","816":"cv_cdhack_detect","817":"cv_cdhack_myacdetect","818":"cv_cheatkey","819":"cv_cheatkey_bansay","820":"cv_cheatkey_bantime","821":"cv_cheatkey_bantype","822":"cv_cheatkey_flagimmun","823":"cv_cheatkey_immun","824":"cv_cheatkey_joinsay","825":"cv_cheatkey_rebind","826":"cv_cheatkey_warn","827":"cv_cheatlist","828":"cv_cheatlist_bansay","829":"cv_cheatlist_bantime","830":"cv_cheatlist_bantype","831":"cv_cheatnames","832":"cv_cheatnames_bansay","833":"cv_cheatnames_bantime","834":"cv_cheatnames_bantype","835":"cv_cheatsay_bansay","836":"cv_cheatsay_bantime","837":"cv_cheatsay_bantype","838":"cv_cheatsay_blocksay","839":"cv_cmdflood","840":"cv_cmdflood_bansay","841":"cv_cmdflood_bantime","842":"cv_cmdflood_bantype","843":"cv_cmdflood_checktime","844":"cv_cvarguard","845":"cv_cvarguard_block","846":"cv_cvarguard_multitest","847":"cv_dd","848":"cv_fastps","849":"cv_fastps_ed","850":"cv_fastps_sd","851":"cv_ff_bansay","852":"cv_ff_bantime","853":"cv_ff_bantype","854":"cv_ff_max","855":"cv_ffx","856":"cv_ffx_bansay","857":"cv_ffx_bantime","858":"cv_ffx_bantype","859":"cv_ffx_detect","860":"cv_logtype","861":"cv_mypunish","862":"cv_ns","863":"cv_ns_bansay","864":"cv_ns_bantime","865":"cv_ns_bantype","866":"cv_ns_maxchanges","867":"cv_ns_timerdown","868":"cv_sh_bansay","869":"cv_sh_bantime","870":"cv_sh_bantype","871":"cv_sh_maxoffence","872":"cv_sh_secdist","873":"cv_sh_warn","874":"cv_site","875":"cv_spinh_bansay","876":"cv_spinh_bantime","877":"cv_spinh_bantype","878":"cv_spinh_maxangle","879":"cv_spinh_maxdetect","880":"cv_wallhack","881":"cv_wallhack_engine","882":"cv_wallhack_entity","883":"cv_wallhack_fov","884":"cv_wallhack_smooth","885":"cv_wallhack_target","886":"cv_wallhack_team","887":"cv_wallhack_texture","888":"cv_zoneguard","889":"cv_zoneguard_bansay","890":"cv_zoneguard_bantime","891":"cv_zoneguard_bantype","892":"d_again_cmdflood","893":"d_guard","894":"d_unit","895":"detectcmd","896":"detected","897":"directionzg","898":"dontagaintask","899":"editorzg","900":"event_active_weapon_wallhack","901":"execute_cmd_cheatkey","902":"execute_command_cvarguard","903":"ffx_newdetect","904":"ffxban","905":"ffxdetect","906":"ffxtest","907":"ffxver","908":"filescheckconfig","909":"filescheckload","910":"filescheksnum","911":"fm_FEFindEntityInSphereFBF","912":"fm_FEThink_grenadeFBF","913":"fm_create_entity","914":"fm_entity_set_model","915":"fm_entity_set_origin","916":"fm_entity_set_size","917":"fm_find_ent_by_class","918":"fm_is_in_viewcone","919":"fm_is_valid_ent","920":"fm_playerprethink","921":"fm_remove_entity","922":"fm_set_entity_visibility","923":"fm_trace_line","924":"fnCHEATKEY","925":"fnMDL","926":"fnWarningsCheatKey","927":"fn_changeorigin","928":"fn_createentity","929":"fn_emitsound","930":"fn_soundcheck","931":"fn_triggerplanted","932":"fn_triggerroundstart","933":"func_respawn_check","934":"func_teleport_check","935":"func_touch_entity","936":"fw_addtofullpack_wallhack","937":"fw_alive_handle_wallhack","938":"fw_prethink_wallhack","939":"fw_setview_wallhack","940":"fw_spawn_wallhack","941":"fw_stuck_wallhack","942":"fw_touch","943":"gName","944":"gNameChanges","945":"gNameStart","946":"g_Check","947":"g_Checking","948":"g_Detections","949":"g_Detectionssh","950":"g_MaxPlayers","951":"g_OldPos","952":"g_SqlTuple","953":"g_Warningsh","954":"g_bBlockShotfps","955":"g_bBlockedAttackfps","956":"g_bansaycheat","957":"g_c4entity","958":"g_ck_cmd","959":"g_cl_team","960":"g_cl_viewent","961":"g_cl_weapon","962":"g_classname","963":"g_commands","964":"g_configsdir","965":"g_cstrlst","966":"g_detectfastfire","967":"g_donttexture","968":"g_double_detect_spinhack","969":"g_entillusionary","970":"g_fShotedAtfps","971":"g_gate","972":"g_gate2","973":"g_iCKeyUses","974":"g_iFakeEnt","975":"g_iForwardId","976":"g_iLastData","977":"g_iUserWeaponfps","978":"g_mainconfig","979":"g_model","980":"g_nCurWeapon","981":"g_old_notdetect","982":"g_on_touch_entity_time","983":"g_respawn_speedhack_time","984":"g_szBlockedCmd","985":"g_teleport_speedhack_time","986":"g_vac2","987":"gb_CheckSound","988":"gb_EntReadyForUse","989":"gb_OriginChanged","990":"gcmdcheatkey","991":"get_configsdir","992":"get_ent_origin_he_fix","993":"gf_LastAng","994":"gf_TotalAng","995":"gf_attenuation","996":"gf_volume","997":"gfv_c4origin","998":"gfv_entorigin","...":"Over 1000 items, aborting normalization"} []

  47. [2013-10-28 23:16:12] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> Tags ["_","bool","floatround_method","anglemode","Float","LibType","AdminProp","any","TransKey","SortMethod","Array","DoNotUse","Trie","TraceResult","KeyValueData","ClientData","EntityState","UserCmd","AlertType","?rl_fakemeta","?f_fakemeta","Ham","HamError","?rl_hamsandwich","?f_hamsandwich","HamHook","?rl_cstrike","?f_cstrike","CsInternalModel","CsTeams","CsArmorType","xs_logtypes","xs_paramtypes","?rc_sqlx","?d_sqlx_mysql","Handle","ZONEMODE","ROUNDSTATUS"] []

  48. [2013-10-28 23:16:12] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> Automatons [""] []

  49. [2013-10-28 23:16:12] DecompileLog.DEBUG: (Plugin) (AMXX DBG) ----> States [] []

  50. [2013-10-28 23:16:12] DecompileLog.INFO: (Plugin) Decompilation complete. [] []

  51. [2013-10-28 23:16:12] DecompileLog.INFO: All stages of decompilation has passed [] []
[/pawn]

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


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

Re: Декомпиляция плагинов (из .amxx в .sma) на основе amxxdu

Сообщение PRoSToTeM@ » 28 окт 2013, 23:24

Fedcomp, дебаг область в принципе читает и модифицированный Lt.RAT дизассемблер.
Аватара пользователя
PRoSToTeM@
Скриптер
 
Сообщения: 2498
Зарегистрирован: 26 мар 2010, 00:12
Благодарил (а): 438 раз.
Поблагодарили: 1125 раз.

Re: Декомпиляция плагинов (из .amxx в .sma) на основе amxxdu

Сообщение Fedcomp » 29 окт 2013, 09:08

PRoSToTeM@ писал(а):Fedcomp, дебаг область в принципе читает и модифицированный Lt.RAT дизассемблер.

В принципе я написал с нуля, и теперь разбираюсь во внутренностях плагинов. Впринципе. Не знаю что ваши дизасемблеры могут, знаю что может мой. Он кстати чисто на php, хрен вынесешь как C софтину (это я на тебя смотрю amxxdump).
Т.е запаковать плагин обратно должно быть технически реализуемо.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


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

Re: Декомпиляция плагинов (из .amxx в .sma) на основе amxxdu

Сообщение fdek » 29 окт 2013, 17:11

Fedcomp писал(а):Т.е запаковать плагин обратно должно быть технически реализуемо.

насколько я понял (ту статейку на польском), если размер плагина не меняется (забивая ненужный функционал нулями прокатит? :))
то можно просто брать заголовки полученные перед распаковкой (пакуется то вроде gzip'ом)

пример скрипта на python
Код: Выделить всё
# coding: utf-8

import zlib

fp = open("test.amxx", "rb")
amxxHeader = fp.read(41) ##читаем заголовок

#-------------
# распаковка
#--------------
data32 = fp.read(652) ##disksize - Offset 0x8, 4 байта
data32 = zlib.decompress(data32)
data64 = fp.read()
data64 = zlib.decompress(data64)

#--
decomp32 = open("test-decompress32.dec", "wb")
decomp64 = open("test-decompress64.dec", "wb")
decomp32.write(data32)
decomp64.write(data64)
decomp32.close()
decomp64.close()


#-------------
# упаковка
#--------------
fpNew = open("testNew.amxx", "wb")
fpNew.write(amxxHeader) #записываем заголовок

deComp32 = open("test-decompress32.dec", "rb")
deComp64 = open("test-decompress64.dec", "rb")
data32 = deComp32.read()
data64 = deComp64.read()
data32 = zlib.compress(data32)
data64 = zlib.compress(data64)
fpNew.write(data32)
fpNew.write(data64)
fpNew.close()


структуру заголовка смотрел там же

magic //4 байта
version //2 байта
sections //1 байта
cellsize //1 байта
disksize //4 байта
imagesize //4 байта
memsize //4 байта
offs// 4 байта


менять при упаковке нужно будет только disksize ?
Аватара пользователя
fdek
 
Сообщения: 6
Зарегистрирован: 28 окт 2013, 21:39
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Пред.След.

Вернуться в Статьи / фрагменты кода

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

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