Mixaill Posted August 5, 2016 Share Posted August 5, 2016 (edited) Так вроде давно уже https://bitbucket.org/Mixail/xvm.native/src/ upd. Опередили :) Edited August 5, 2016 by Mixaill @ Quote Link to comment Short link Share on other sites More sharing options...
fecell Posted August 6, 2016 Author Share Posted August 6, 2016 здесь давно выкладывают http://dvamaster.ru/?p=308#more-308 но лишь адреса, по крайней мере проще искать сигнатуры зная где что. последнее что выложено - 385 адресов для 9.14.8318 @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted August 6, 2016 Share Posted August 6, 2016 последнее что выложено - 385 адресов для 9.14.8318Спасибо за ссылку. Объеденю с репо @Mixaill и выложу здесь: https://bitbucket.org/ShadowHunterRUS/wot-python/src/ 1 @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted August 6, 2016 Share Posted August 6, 2016 (edited) 385 адресовТам сплошная ненужность( Надо автоматизировать поиск сигнатур... Edited August 6, 2016 by ShadowHunterRUS @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted August 7, 2016 Share Posted August 7, 2016 (edited) Надо автоматизировать поиск сигнатур...... Edited August 11, 2016 by ShadowHunterRUS @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted August 8, 2016 Share Posted August 8, 2016 (edited) Как-то неудобно хранить все в одном json-файле. В разных тоже неудобно... Edited August 8, 2016 by ShadowHunterRUS @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted September 25, 2016 Share Posted September 25, 2016 В 9.16 сменили компилятор с MSVC 17 (VS 2012) на MSVC 19 (VS 2015), в результате чего сигны немного кирдыкнулись :( @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted September 25, 2016 Share Posted September 25, 2016 (edited) сигны немного кирдыкнулись :(будет над чем помидитировать) Edited September 25, 2016 by ShadowHunterRUS @ Quote Link to comment Short link Share on other sites More sharing options...
fecell Posted September 27, 2016 Author Share Posted September 27, 2016 в результате чего сигны немного кирдыкнулись посмотрим... скоро уже по идее новый патч выйдет, через недели 2-3 думаю. @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted October 8, 2016 Share 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 Link to comment Short link Share on other sites More sharing options...
Mixaill Posted October 9, 2016 Share Posted October 9, 2016 Насколько это сложно? Без Scaleform'а в исходниках, мне кажется, это почти невозможно. @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted October 9, 2016 Share Posted October 9, 2016 (edited) Без Scaleform'а в исходниках, мне кажется, это почти невозможно.ну исходники уже 5 лет валяются... Edited October 9, 2016 by SkepticalFox @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted October 9, 2016 Share Posted October 9, 2016 (edited) Первая попытка сделать нормальный libpython удалась наполовину: функции работают, но решительно непонятно что делать со структурами. https://bitbucket.org/xvm/wot.libpython/ Edited October 9, 2016 by Mixaill 2 @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted October 9, 2016 Share Posted October 9, 2016 (edited) но решительно непонятно что делать со структурами.а что с ними? __declspec(dllexport)/extern на них не влияет? Может есть какой-то дефайн типа Py_ENABLE_SHARED... Edited October 9, 2016 by SkepticalFox @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted October 9, 2016 Share 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 Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted October 9, 2016 Share Posted October 9, 2016 (edited) Проблема в том, что делать перенаправление со структуры, объявленной у себя, на структуру, которая внутри WorldOfTanks.exe нельзя.А, всё, понял) Edited October 9, 2016 by SkepticalFox @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted October 9, 2016 Share Posted October 9, 2016 (edited) Есть ещё вариант запатчить _PyImport_GetDynLoadFunc() своей реализацией, которая после LoadLibraryEx() будет подменять адреса структур в импортированном файле на правильные из WorldOfTanks.exe. Edited October 9, 2016 by Mixaill @ Quote Link to comment Short link Share on other sites More sharing options...
fecell Posted October 10, 2016 Author Share Posted October 10, 2016 Первая попытка сделать нормальный libpython удалась наполовину немного перебор вроде, ЕМНИП PyString_AsString можно не врапить, а использовать макрос PyString_AS_STRING (по аналогии как и PY_INCREF и т.п.). @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted October 10, 2016 Share 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 Link to comment Short link Share on other sites More sharing options...
fecell Posted October 10, 2016 Author Share 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 Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.