Jump to content
Korean Random
fecell

Создание PYD для embedded python

Recommended Posts

2 часа назад, Pavel3333 сказал:

@Mixaill ну вообще как сам считаешь, тулза лучше/сильнее IDA?

Не знаю, как минимум ОЧЕНЬ долгий анализ

 

image.thumb.png.22ab7af56e1d37b5aec711d3527e3a6c.png

 

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
12 часов назад, Mixaill сказал:

Не знаю, как минимум ОЧЕНЬ долгий анализ

 

image.thumb.png.22ab7af56e1d37b5aec711d3527e3a6c.png

 

 

9 часов декомпилит?

Share this post


Link to post

Short link
Share on other sites

https://hex-rays.com/products/ida/news/7_2/

Quote

Finally, with IDA v7.2 we introduce a new (experimental) Lumina server. Think of it as about a public storage of popular function patterns. The lumina server holds metadata about functions (like names, comments, prototypes, operand representation, etc). IDA can ask Lumina to recognize functions in the current database and apply the corresponding metadata. It is like FLIRT but it is dynamic, stores more information, and can recognize functions that FLIRT cannot.

кто пробовал Lumina?

Share this post


Link to post

Short link
Share on other sites

В 1.18 крупные изменения: 2.7.7 --> 2.7.18, статическая линковка --> динамическая линковка, внутри клиента используется pybind11.

  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

Из прикольных вещей: можно юзать хидеры и либы от ванильного питона, и это даже работает.

 

Правда, часть того что инлайнится обычно в malloc() или free() тут вынесена отдельные функции с префиксом BW

 

6 (0x0006),  (0x), BW_Py_arena_free, 0x00103420, None
7 (0x0007),  (0x), BW_Py_arena_malloc, 0x00103440, None
8 (0x0008),  (0x), BW_Py_arena_realloc, 0x00103470, None
3 (0x0003),  (0x), BW_Py_arenaAllocAnnotate, 0x001033f0, None
4 (0x0004),  (0x), BW_Py_arenaFreeAnnotate, 0x00103400, None
5 (0x0005),  (0x), BW_Py_arenaReallocAnnotate, 0x00103410, None
1 (0x0001),  (0x), BW_Py_DEC_REF, 0x001033d0, None
9 (0x0009),  (0x), BW_Py_free, 0x001034a0, None
10 (0x000a),  (0x), BW_Py_getHooks, 0x001034c0, None
2 (0x0002),  (0x), BW_Py_INC_REF, 0x001033e0, None
11 (0x000b),  (0x), BW_Py_malloc, 0x00103520, None
12 (0x000c),  (0x), BW_Py_memoryAnnotateBegin, 0x00103550, None
13 (0x000d),  (0x), BW_Py_memoryAnnotateEnd, 0x00103560, None
14 (0x000e),  (0x), BW_Py_realloc, 0x00103590, None
15 (0x000f),  (0x), BW_Py_setHooks, 0x001035c0, None
1082 (0x043a),  (0x), init_elementtree, 0x001a48b0, None

Предположительно связано с тем, что в WoT используется кастомный аллокатор, вроде бы jemalloc. Обманул, стандартный MSVC'шный, но есть возможность хукаться и профилировать выделение памяти в питоне и других подсистемах.

Edited by Mixaill
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...