Mixaill 1,740 #342954 Posted August 5, 2016 (edited) Так вроде давно уже https://bitbucket.org/Mixail/xvm.native/src/ upd. Опередили :) Edited August 5, 2016 by Mixaill Quote Share this post Link to post Short link Share on other sites
fecell 125 #343360 Posted August 6, 2016 здесь давно выкладывают http://dvamaster.ru/?p=308#more-308 но лишь адреса, по крайней мере проще искать сигнатуры зная где что. последнее что выложено - 385 адресов для 9.14.8318 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #343478 Posted August 6, 2016 последнее что выложено - 385 адресов для 9.14.8318Спасибо за ссылку. Объеденю с репо @Mixaill и выложу здесь: https://bitbucket.org/ShadowHunterRUS/wot-python/src/ 1 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #343695 Posted August 6, 2016 (edited) 385 адресовТам сплошная ненужность( Надо автоматизировать поиск сигнатур... Edited August 6, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #344177 Posted August 7, 2016 (edited) Надо автоматизировать поиск сигнатур...... Edited August 11, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #344596 Posted August 8, 2016 (edited) Как-то неудобно хранить все в одном json-файле. В разных тоже неудобно... Edited August 8, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #354873 Posted September 25, 2016 В 9.16 сменили компилятор с MSVC 17 (VS 2012) на MSVC 19 (VS 2015), в результате чего сигны немного кирдыкнулись :( Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #354878 Posted September 25, 2016 (edited) сигны немного кирдыкнулись :(будет над чем помидитировать) Edited September 25, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites
fecell 125 #355007 Posted September 27, 2016 в результате чего сигны немного кирдыкнулись посмотрим... скоро уже по идее новый патч выйдет, через недели 2-3 думаю. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #357682 Posted October 8, 2016 (edited) @Mixaill, клёвый костыль для XP добавил) Стало интересно, а если создать враппер и для Scaleform'а, чтобы подменять нужные .as файлы на свои... Это должно избавить от возни c battle.swf и с маркерами... Насколько это сложно? Надо копать в сторону AS3 VM и Scaleform::GFx::AS3::VM::LoadPackage... Edited October 8, 2016 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #357917 Posted October 9, 2016 Насколько это сложно? Без Scaleform'а в исходниках, мне кажется, это почти невозможно. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #357953 Posted October 9, 2016 (edited) Без Scaleform'а в исходниках, мне кажется, это почти невозможно.ну исходники уже 5 лет валяются... Edited October 9, 2016 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #358058 Posted October 9, 2016 (edited) Первая попытка сделать нормальный libpython удалась наполовину: функции работают, но решительно непонятно что делать со структурами. https://bitbucket.org/xvm/wot.libpython/ Edited October 9, 2016 by Mixaill 2 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #358063 Posted October 9, 2016 (edited) но решительно непонятно что делать со структурами.а что с ними? __declspec(dllexport)/extern на них не влияет? Может есть какой-то дефайн типа Py_ENABLE_SHARED... Edited October 9, 2016 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #358066 Posted October 9, 2016 (edited) а что с ними? __declspec(dllexport)/extern на них не влияет? Может есть какой-то дефайн типа Py_ENABLE_SHARED... __declspec(dllexport) работает отлично, символы экспортируются, тут вопросов нет. Проблема в том, что делать перенаправление со структуры, объявленной у себя, на структуру, которая внутри WorldOfTanks.exe нельзя. (или я не знаю как?). Точнее, можно, но для этого нужно будет изменить заголовочные файлы (добавить по звёздочке к каждой структуре), что приведёт к поломке бинарной совместимости с обычными .pyd собранными под обычный белый питон, чего не хотелось бы. В качестве самого упоротого варианта вижу копирование содержимого структур к себе и замену адресов в WorldOfTanks.exe на свои. Но это как-то перебор, тут и до смены наживую версии Python (с 2.7.7 на 2.7.12, например) недалеко. Edited October 9, 2016 by Mixaill Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #358068 Posted October 9, 2016 (edited) Проблема в том, что делать перенаправление со структуры, объявленной у себя, на структуру, которая внутри WorldOfTanks.exe нельзя.А, всё, понял) Edited October 9, 2016 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #358076 Posted October 9, 2016 (edited) Есть ещё вариант запатчить _PyImport_GetDynLoadFunc() своей реализацией, которая после LoadLibraryEx() будет подменять адреса структур в импортированном файле на правильные из WorldOfTanks.exe. Edited October 9, 2016 by Mixaill Quote Share this post Link to post Short link Share on other sites
fecell 125 #358083 Posted October 10, 2016 Первая попытка сделать нормальный libpython удалась наполовину немного перебор вроде, ЕМНИП PyString_AsString можно не врапить, а использовать макрос PyString_AS_STRING (по аналогии как и PY_INCREF и т.п.). Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #358086 Posted October 10, 2016 (edited) немного перебор вроде, ЕМНИП PyString_AsString можно не врапить, а использовать макрос PyString_AS_STRING (по аналогии как и PY_INCREF и т.п.). Не, вполне себе самостоятельная функция, мало ли кто захочет использовать: https://hg.python.org/cpython/file/v2.7.7/Include/stringobject.h#l69 https://hg.python.org/cpython/file/v2.7.7/Objects/stringobject.c#l791 Edited October 10, 2016 by Mixaill Quote Share this post Link to post Short link Share on other sites
fecell 125 #358088 Posted October 10, 2016 Не, вполне себе самостоятельная функция Ну так-то да, я к тому что: char* PyString_AS_STRING(PyObject *string) Macro form of PyString_AsString() but without error checking. Only string objects are supported; no Unicode objects should be passed. https://docs.python.org/2/c-api/string.html#c.PyString_AS_STRING строка 91, stringobject.h (2.7.12) #define PyString_AS_STRING(op) (((PyStringObject *)(op))->ob_sval) Quote Share this post Link to post Short link Share on other sites