Jump to content
Korean Random
Mixaill

FakePDB / Unofficial Symbol Server for WoT client

Recommended Posts

Posted (edited)

fake-taxi-n-fake-agent-seeklogo.png.a344e2882c2bb86a5edced6f761ad7b9.png

 

 

https://symbolserver.openwg.net

 

Позволяет корректно отображать коллстек для worldoftanks.exe в отладчиках.

 

Как это работает:

 

При помощи генерации PDB файла, который содержит авторазметку от IDA и размеченные функции С/Python API.

 

Обработка присходит в два этапа

1) экспортируем из IDB в .json с помощью скрипта dumpinfo.py

2) генерируем из .exe и .json результирующую .pdb с помощью pdbgen.exe

 

Забрать скрипт и генератор можно тут: https://github.com/Mixaill/FakePDB/releases/tag/v0.0.0

 

Планы:

 

поддержка аргументов для функций С/Python API

 

Суть: 

 

 

 

image.thumb.png.ef87f200758eda0d6b566fb4052663b9.png

 

Кому может быть интересно:

 

@SkepticalFox @reven86 @Pavel3333

 

 

Edited by Mixaill
  • Upvote 9

Share this post


Link to post

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

содержит авторазметку от IDA

 

Это надо под каждую новую версию exe генерить map-файл (у мну в Делфи это так называется), чтобы смещения были актуальные. А IDA так медленно разбирает тынковой exe. У мну ~2 часа уходит на разбор.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

@Mixaill спасибо, полезно, юзану на досуге :great:

10 минут назад, StranikS_Scan сказал:

~2 часа уходит на разбор.

Так же. Зато есть время попить чаю.

 

@Mixaill а вы новый домен и сервак открыли?

Share this post


Link to post

Short link
Share on other sites
43 минуты назад, StranikS_Scan сказал:

 

Это надо под каждую новую версию exe генерить map-файл (у мну в Делфи это так называется), чтобы смещения были актуальные. А IDA так медленно разбирает тынковой exe. У мну ~2 часа уходит на разбор.

Ну, вам то оно не надо, это сделано мной :)

У меня примерно час в IDA и 12 в Гидре.

Share this post


Link to post

Short link
Share on other sites
56 минут назад, Mixaill сказал:

Ну, вам то оно не надо, это сделано мной :)

У меня примерно час в IDA и 12 в Гидре.

 

А как ты будешь обновлять карту символов? После каждого патча распарсивать и перезаливать на сервер? Или там не нужно каждый патч это делать?

Share this post


Link to post

Short link
Share on other sites
10 минут назад, StranikS_Scan сказал:

 

А как ты будешь обновлять карту символов? После каждого патча распарсивать и перезаливать на сервер? Или там не нужно каждый патч это делать?

 

Верно. После каждого патча:

- автоанализ

- импорт разметки Python/C

- экспорт в PDB

- заливка.

 

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites
21 hours ago, Mixaill said:

Суть: 

вроде местами перепутано?

а вообще- гениально, если и аргументы еще будут, то вообще бомба

а если и локальные переменные... осуществимо?

Edited by SkepticalFox
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
4 часа назад, SkepticalFox сказал:

вроде местами перепутано?

а вообще- гениально, если и аргументы еще будут, то вообще бомба

а если и локальные переменные... осуществимо?

1) Нет, не перепутано. Заменил на более наглядную картинку.

 

2) Аргументы будут.

 

3) А как оно должно выглядеть с локальными переменными без исходного кода? Использовать в качестве него выхлоп hex-rays/ghidra?

Edited by Mixaill

Share this post


Link to post

Short link
Share on other sites
9 hours ago, Mixaill said:

 Использовать в качестве него выхлоп hex-rays/ghidra? 

:great:

Share this post


Link to post

Short link
Share on other sites

А .exe id это что?

 

ЗЫ: У мну есть пяток idb клиентов хочу pdb сделать, да выложить.

 

А, блин exe-ников нема, только idb есть.

 

Упс, нашел exe-шники. Короче вот чего у меня есть:

  • Это exe без idb
    amBvq976.png
  • Это idb без exe
    RbuWYSLt.png

Могу из первых сделать pdb а чего делать со вторыми не знаю.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites
3 часа назад, StranikS_Scan сказал:

А .exe id это что?

symstore_hash = "%X%X" % (pe.FILE_HEADER.TimeDateStamp, pe.OPTIONAL_HEADER.SizeOfImage)
3 часа назад, StranikS_Scan сказал:

Это idb без exe

начиная с 1.0.1 у меня своя коллекция есть :)

  • Upvote 2

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.

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.

×