Сейчас на форуме: -Sanchez-, morgot, sashalogout (+4 невидимых)

 eXeL@B —› Софт, инструменты —› x64dbg отладчик
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 22 . 23 . >>
Посл.ответ Сообщение

Ранг: 7.7 (гость), 51thx
Активность: 0.010
Статус: Участник

Создано: 11 декабря 2013 11:49 · Поправил: Ra1n0
· Личное сообщение · #1

Актуальные ссылки:

sourceforge.net
http://x64dbg.com
https://github.com/x64dbg/x64dbg
scyllahide

Документациия по отладчику - --> Link <--

Новый проект от Mr.eXoDia и др.

Features:

Open-source
Intuitive and familiar, yet new user interface
C-like expression parser
Full-featured debugging of DLL and EXE files (TitanEngine)
IDA-like sidebar with jump arrows
IDA-like instruction token highlighter (highlight registers etc.)
Memory map
Symbol view
Thread view
Content-sensitive register view
Fully customizable color scheme
Dynamically recognize modules and strings
Import reconstructor integrated (Scylla)
Fast disassembler (BeaEngine)
User database (JSON) for comments, labels, bookmarks etc.
Plugin support with growing API
Extendable, debuggable scripting language for automation
Multi-datatype memory dump
Basic debug symbol (PDB) support
Dynamic stack view
Built-in assembler (XEDParse)
View your patches and save them to disk
Built-in hex editor
Find patterns in memory






| Сообщение посчитали полезным: ff0h, Gideon Vi, nick8606, Artem_N, JKornev, DimitarSerg, daFix, Rio, n0x90, DenCoder, Maximus, ELF_7719116, exprxp, Error13Tracer, Gerpes, SDFnik, VanHelsing, marius, jangle, hello, Bronco, mushr00m, HandMill, Johnatalbi, kassane, BAHEK, zNob, mkdev, Haoose-GP, HAOSov, mr qubo, Tyrus, kurorolucifer, Relax_, esa_r, Styx, Creckerhack, RootKey, RoKZaR, CKAP, Cigan, tRuNKator, Wargrinder, morgot, BiteMoon, mak, Illuzion

Ранг: 42.8 (посетитель), 16thx
Активность: 0.020.06
Статус: Участник

Создано: 17 мая 2019 21:55 · Поправил: bartolomeo
· Личное сообщение · #2

Подскажите - как-то можно в х64 дебагере сохранять трассу в текстовый файл без написания плагина ?




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 18 мая 2019 00:28 · Поправил: Bronco
· Личное сообщение · #3

bartolomeo пишет:
как-то можно в х64 дебагере сохранять трассу в текстовый файл

можно, даже с контекстом. но не больше 10к инструкций в час минуту.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..


| Сообщение посчитали полезным: ClockMan

Ранг: 42.8 (посетитель), 16thx
Активность: 0.020.06
Статус: Участник

Создано: 18 мая 2019 10:48
· Личное сообщение · #4

что именно нужно нажать ? - что-то в упор не вижу (




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 18 мая 2019 12:50
· Личное сообщение · #5

bartolomeo


выбираешь файл журнала, задаешь текст текст журнала
тот текст что указан для примера выводит виртуальныйадрес и инструкцию

| Сообщение посчитали полезным: bartolomeo, dma, morgot, _MBK_

Ранг: 3.1 (гость)
Активность: 0.030
Статус: Участник

Создано: 26 мая 2019 07:12
· Личное сообщение · #6

коллеги, может быть есть плагин, действительно улучшаяющий статический анализ? StaticAnalysis is deprecated, xAnalyzer что-то может, но там где надо (в стеке) его нет. После Olly это боль.



Ранг: 23.7 (новичок), 11thx
Активность: 0.040.02
Статус: Участник

Создано: 16 июня 2019 22:19
· Личное сообщение · #7

расскажите, что с плагинами, которые требуют capstone.dll? Они работают на новых вериях, если докопировать эту dll или их пора удалять?



Ранг: -1.9 (гость), 3thx
Активность: 0.160.1
Статус: Участник

Создано: 28 июня 2019 10:35 · Поправил: PEvgen
· Личное сообщение · #8

Подскажите аналог команды "eval" для скрипта.
(eval "jmp dword ptr ds:[хххххххх]")
В доках не нахожу....




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 28 июня 2019 17:21 · Поправил: Bronco
· Личное сообщение · #9

PEvgen пишет:
аналог команды "eval" для скрипта.

аналога нет, только --> формат строки<--, но не во всех командах он поддерживается.
проще через свой плагин добавить команду для форматирования нужной строки.
PEvgen пишет:
(eval "jmp dword ptr ds:[хххххххх]")

хз ...давно не юзал, в команде ASM вроде можно было юзать динамическую адресацию.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..


| Сообщение посчитали полезным: PEvgen

Ранг: -1.9 (гость), 3thx
Активность: 0.160.1
Статус: Участник

Создано: 28 июня 2019 19:15 · Поправил: PEvgen
· Личное сообщение · #10

Bronco спасибо, а-то я уже подумал что слеп и туп (хотя и не разубедил окончательно)....
А через свой плагин, это про вот это?
Plugins
Plugins can use _plugin_registerformatfunction to register custom string formatting functions. The syntax is {type;arg1;arg2;argN@expression} where type is the name of the registered function, argN is any string (these are passed to the formatting function as arguments) and expression is any valid expression.

Я так понимаю...




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 28 июня 2019 20:11 · Поправил: Bronco
· Личное сообщение · #11

PEvgen пишет:
Я так понимаю...

на самом деле очень полезная фишка, можно нарастить весь недостающий функционал.... и накидать своего.
хз чем поможет,не больше как пример, но вывод в лог делал свой. тупо надо было.
Code:
  1. #define MAKECODE(p) ((((p)[0])*0x01000000) \
  2.                    + (((p)[1])*0x00010000) \
  3.                    + (((p)[2])*0x00000100) \
  4.                    +  ((p)[3]) )
  5. ------------
  6. bool cbLogtofile(int argc, char* argv[])
  7. {
  8.          if (argc > 0)
  9.          {
  10.                  if ((argv[1] == 0) || (argv[2] == 0))
  11.                         return true;
  12.                  GetCurrentDirectory(MAX_PATH, message);
  13.                  sprintf(LogPathName, "%s\%s", message, argv[1]);
  14.                  char strformat[MAX_PATH] = "";
  15.                  sprintf(strformat, "%s", argv[2]);
  16.                  int res = 0;
  17.                  for (char const* p = strformat; *p; p += strncmp(p, "%%", 2) ? 1 : (++res, 2));
  18.                  if (res == argc - 3)
  19.                  {
  20.                         string s = strformat;
  21.                         char repl[MAX_PATH] = "";
  22.                         char t[5];
  23.                         for (size_t i = 0; i < argc; i++)
  24.                         {
  25.                               if (> 2)
  26.                               {
  27.                                    auto pos = s.find('%');
  28.                                    if (pos >= 0)
  29.                                    {
  30.                                        strncpy(t, &s[pos], 3);
  31.                                        t[3] = 0;
  32.                                        switch (MAKECODE(t))
  33.                                        {
  34.                                        case MAKECODE("%%p"):
  35.                                           sprintf(repl, "%p", DbgValFromString(argv[i]));
  36.                                           s.replace(pos, 3, repl);
  37.                                           break;
  38.                                        case MAKECODE("%%d"):
  39.                                           sprintf(repl, "%d", DbgValFromString(argv[i]));
  40.                                           s.replace(pos, 3, repl);
  41.                                           break;
  42.                                        case MAKECODE("%%u"):
  43.                                           sprintf(repl, "%u", DbgValFromString(argv[i]));
  44.                                           s.replace(pos, 3, repl);
  45.                                           break;
  46.                                        case MAKECODE("%%s"):
  47.                                           char str[XEDPARSE_MAXBUFSIZE];
  48.                                           DbgGetStringAt(DbgValFromString(argv[i]), str);
  49.                                           sprintf(repl, "%s", str);
  50.                                           s.replace(pos, 3, repl);
  51.                                           break;
  52.                                        case MAKECODE("%%x"):
  53.                                           sprintf(repl, "0x%llx", DbgValFromString(argv[i]));
  54.                                           s.replace(pos, 3, repl);
  55.                                           break;
  56.                                        case MAKECODE("%%X"):
  57.                                           sprintf(repl, "0x%llX", DbgValFromString(argv[i]));
  58.                                           s.replace(pos, 3, repl);
  59.                                           break;
  60.                                        case MAKECODE("%%i"):
  61.                                           BASIC_INSTRUCTION_INFO soursedata;
  62.                                           DbgDisasmFastAt(DbgValFromString(argv[i]), &soursedata);
  63.                                           sprintf(repl, "%s", soursedata.instruction);
  64.                                           s.replace(pos, 3, repl);
  65.                                           break;
  66.                                        case MAKECODE("%%a"):
  67.                                           char Comment[XEDPARSE_MAXBUFSIZE];
  68.                                           DbgGetCommentAt(DbgValFromString(argv[i]), Comment);
  69.                                           sprintf(repl, "%s", Comment);
  70.                                           s.replace(pos, 3, repl);
  71.                                           break;
  72.                                        }
  73.                                    }
  74.                               }
  75.                         }
  76.                         sprintf(strformat, "%s", s.c_str());
  77.                         ScriptWriteLog(strformat);
  78.                         sprintf(strformat, "%s\n", strformat);
  79.                         GuiProcessEvents();
  80.                         GuiAddStatusBarMessage(strformat);
  81.                  }
  82.          }
  83.          return true;
  84. }

не все аналоги подобрал, но мне для задачи хватило.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




Ранг: -1.9 (гость), 3thx
Активность: 0.160.1
Статус: Участник

Создано: 28 июня 2019 20:54
· Личное сообщение · #12

Ну....написание плагов оставлю чуть на позжее, а то за всеми погонишься - выгребать много....

Случаем увидел тут --> AdvancedScript 4.0 <--, еще не глядел, но думаю это то что мне надо....




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 28 июня 2019 22:38
· Личное сообщение · #13

PEvgen пишет:
но думаю это то что мне надо

хз. как то название громкое, подумал что отдельный двиг, со своим фейсом в меню и табшитах, отладкой скрипта и всеми вытекающими.
а на деле, автор увлёкся писаниной, и половину готовых команд продублировал.
По решению твоей задачи, вот как то команду нужную не заметил.
Но...принцип тот же, регистрируешь имя команды, и решаешь свои задачи.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 04 июля 2019 21:37
· Личное сообщение · #14

Надеюсь автор плагина читает эту ветку ..

nfdx64dbg плагин (https://github.com/horsicq/nfdx64dbg) ломает настройки стилей в последней версии дебагера, хотя и в предыдущих тоже, подробности можно посмотреть здесь - --> Link <--

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube


| Сообщение посчитали полезным: hors


Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 05 июля 2019 18:45
· Личное сообщение · #15

в окне дампа есть закладка для просмотра структурированных данных, хидер для структуры по ходу на джейсоне.
кроме как парсер в сорцах смотреть, есть ли ещё варианты в природе, чтобы посмотреть как это работает?
в доках зеро, с примерами ещё хуже.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




Ранг: 17.6 (новичок), 118thx
Активность: 0.02=0.02
Статус: Участник

Создано: 07 июля 2019 15:01
· Личное сообщение · #16

Unfortunately the type system is a bit jank and unclear to use. Here are some blog posts that explain it in more detail:

https://x64dbg.com/blog/2016/12/04/type-system.html
https://x64dbg.com/blog/2016/11/27/weekly-digest-14.html#types

Currently the main issue is that there is no ready-made JSON to import types from (similar to IDA type libraries), so you manually have to hack everything together (the C parser is written by hand and is very crappy). The plan was to write something similar to 010 editor's templates (perhaps kaitai struct) that would allow you to inspect the data in a programmatic way, but I never got around to it.

The API to display custom structures is available for plugins, so it would be possible for example to have a PE parser plugin that will lay out the structure for the user to view. Like most things however it is hardly ever used (I used it only a few times to display a CONTEXT structure) so there are not many improvements happening in that area. If you have specific questions or requests feel free to ask, but nowadays I'm mostly busy improving performance and stability so I don't know if I will be able to address them.

| Сообщение посчитали полезным: Bronco


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 07 июля 2019 15:40
· Личное сообщение · #17

mak пишет:
Надеюсь автор плагина читает эту ветку ..

nfdx64dbg плагин (https://github.com/horsicq/nfdx64dbg) ломает настройки стилей в последней версии дебагера, хотя и в предыдущих тоже, подробности можно посмотреть здесь - --> Link <--


Спасибо за тестирование. Я пишу плагины для x64dbg по туториалу от автора. --> Link <-- Это конечно всё можно исправить, но для этого нужно использовать недокументированные способы, которые могут и не работать в следующих версиях x64dbg.

-----
http://ntinfo.biz





Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 27 июля 2019 05:44
· Личное сообщение · #18

я так понимаю что к листингу в окне диза, доступа через сдк апи нет.
и поиск тех же константных значений по ходу только через фейс отладчика, а результ в реф закладку.
скриптовой файндер заточен только под паттерны. не густо...))
и что быстрее, поиск в текстовом листинге с выходом на всю строку мнемоники, или в бинаре ковыряться через диз?

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 08 октября 2019 21:24 · Поправил: Bronco
· Личное сообщение · #19

Хз какой то косяк пошёл с скриптовым двиглом.
DbgValFromString в место значения из переменной по скрипту, тупо конвертирует в число имя переменной.
Проверил на свежем сдк, баян тот же. студия 2015, вин10.1809

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




Ранг: 23.7 (новичок), 11thx
Активность: 0.040.02
Статус: Участник

Создано: 21 ноября 2019 19:37
· Личное сообщение · #20

случайно ни у кого не завалялся плагин ret-sync для IDA 6.8?
у кого завалялся - поделитесь, пожалуйста!




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 21 ноября 2019 20:09
· Личное сообщение · #21

parfetka пишет:
плагин ret-sync для IDA 6.8?


Последняя версия ret-sync с поддержкой IDA 6.x:
--> ida6.9x <--, --> issue #1: Add support for IDA 6.8 and lower <--
Поддерживаются:
- IDA6.9/Qt5
- IDA6.8/Qt4 и более ранние 6.x

P.S. Тема про x64dbg, а не про IDA.

-----
EnJoy!




Ранг: 23.7 (новичок), 11thx
Активность: 0.040.02
Статус: Участник

Создано: 21 ноября 2019 21:16
· Личное сообщение · #22

Jupiter
P.S. Тема про x64dbg, а не про IDA.

речь про этот плагин:
https://github.com/x64dbg/x64dbgida - он для IDA7 (у меня есть v.1 для IDA 6.8)
и к нему "ответная часть" - плагины для x64dbg:
https://github.com/bootleg/ret-sync - тут во-первых исходники, во-вторых для IDA 7
Нужны ret-sync.dp32 и ret-sync.dp64.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 22 ноября 2019 09:36
· Личное сообщение · #23

parfetka
Нужны ret-sync.dp32 и ret-sync.dp64.

Не так.
Бинари плагинов ret-sync для x64dbg называются:
- x64dbg_sync.dp64
- x64dbg_sync.dp32

См. папку "ret-sync-ida6.9x/ext_x64dbg".

parfetka пишет:
тут во-первых исходники, во-вторых для IDA 7


- Во-первых, там скрипты на питоне (да, это исходники, но для Python это стандартный тип поставки).
- Во-вторых, весь архив специально создан для поддержки legacy версий IDA, включая линейку IDA 6.9x.

Добавлено: Бинарь для x64dbg (32+64):
ret-sync-x64dbg.7z

323c_22.11.2019_EXELAB.rU.tgz - ret-sync-x64dbg.7z

-----
EnJoy!


| Сообщение посчитали полезным: parfetka


Ранг: 69.9 (постоянный), 82thx
Активность: 0.140.73
Статус: Участник

Создано: 22 ноября 2019 21:41
· Личное сообщение · #24

У меня почему-то х64дбг падает при попытке импорта JSON файла dd32. Т.е. создаю в Ида такой файл (через плагин питоновский), делают импорт, и- любое движение мыши, появлется куча мессаджбоксов

Error
---------------------------
Invalid parameter passed to CRT function! Program will now generate an exception.

File: ???
Function: ???
Expression: ???
---------------------------
ОК


Что это может быть?




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 29 ноября 2019 23:41 · Поправил: Bronco
· Личное сообщение · #25

не уверен что многим это надо, или ваще не используют, но в анализе тела функции для построения графа нет парса бранч_табле, в итоге код в кейсах оператора выбора, за пределами анализа. посмотрел у диа по коду, условие для завершения анализа практически два -ласт_рет, если есть больше одного ретурна, и в некоторых случаях jmp_reg(!), если через него нет условия бранча, переход за пределы страницы анализ не завершает(!).
Интресует:
1.прежде всего детект свич конструктора, пока основным условием, наличие инстр с указателем на базу образа.
2.разные вариации генерации свитч конструкции. в с/с++ по ходу один вариант.
3.кол -во элементов в бранч_табле, обязательно "пятится назад", к условию перехода на дефолтный кейс?
пока всё..))

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 03 декабря 2019 12:21 · Поправил: mak
· Личное сообщение · #26

Bronco пишет:
не уверен что многим это надо, или ваще не используют, но в анализе тела функции для построения графа нет парса бранч_табле, в итоге код в кейсах оператора выбора, за пределами анализа. посмотрел у диа по коду, условие для завершения анализа практически два -ласт_рет, если есть больше одного ретурна, и в некоторых случаях jmp_reg(!), если через него нет условия бранча, переход за пределы страницы анализ не завершает(!).
Интресует:
1.прежде всего детект свич конструктора, пока основным условием, наличие инстр с указателем на базу образа.
2.разные вариации генерации свитч конструкции. в с/с++ по ходу один вариант.
3.кол -во элементов в бранч_табле, обязательно "пятится назад", к условию перехода на дефолтный кейс?
пока всё..))


С этой тему лучше сразу в "предложения на реализацию" на гитхаб. Если есть такое ограничение, то теоретически можно сделать список с "переходниками", а граф строить дополнительным анализом указателя переходника, примерно, как ида прыгает в отображении графов. Строить всё не всегда имеет смысл, это нужно делать динамично для экономии памяти, поэтому видимо следует переделать весь алгоритм отображения графа или использовать свой список.

morgot пишет:
У меня почему-то х64дбг падает при попытке импорта JSON файла dd32. Т.е. создаю в Ида такой файл (через плагин питоновский), делают импорт, и- любое движение мыши, появлется куча мессаджбоксов

Error
---------------------------
Invalid parameter passed to CRT function! Program will now generate an exception.

File: ???
Function: ???
Expression: ???
---------------------------
ОК

Что это может быть?


Он вечно падает в этом месте, множество раз было указано, что там, что-то не так ... видимо множественные ошибки, трудно найти ..

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 04 декабря 2019 11:46
· Личное сообщение · #27

mak пишет:
С этой тему лучше сразу в "предложения на реализацию" на гитхаб

на самом деле cfg со 100%+ покрытием, и практически для любого вида анализа, как всего кода, так и отдельными функами. всегда мапится вся страница, потом это через диз, определеятся конец функции, блоки в узлы, узлы в список, но вот перед отрисовкой графа, идёт сортировка узлов, килл дубликатов и "мёртвого кода", и вот тут код в кейсах попадает в значение - "мёртвый код".
Прежде чем вносить предложения надо разобраться сколько ,после сборки, бывает разновидностей свичей, из под разных компиляторов. У меня пока 2 классических на с/с++ - один просто с бранч_табле, второй дополнительно с индексами, переход через jmp_reg. Ещё попадался без таблицы, передача управления на кейс через "call [reg +reg*4+disp]", но в этом случае покрытие есть.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 04 декабря 2019 13:49
· Личное сообщение · #28

Появилась (или планируется) ли возможность подсветки макросов при вызове WinAPI функций или других API-функций в отладчике? Может это плагином ремонтируется? OllyDbg в этом плане очень удобен.



Ранг: 2.4 (гость), 3thx
Активность: 0.04=0.04
Статус: Участник

Создано: 04 декабря 2019 14:27
· Личное сообщение · #29

ELF_7719116 пишет:
подсветки макросов при вызове WinAPI функций

xAnalyzer? https://github.com/ThunderCls/xAnalyzer

| Сообщение посчитали полезным: ELF_7719116

Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 04 декабря 2019 14:59
· Личное сообщение · #30

anony-mouse
Похоже, но в стеке при динамической отладке нихрена ничего не подсвечивается из аргументов.
Если предварительно была экспортирована инфа из *.map файла (ida родила), то результаты работы плага не отображаются.




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 05 декабря 2019 01:39
· Личное сообщение · #31

mak пишет:
Если есть такое ограничение

хз...у диа сейчас всё настроено на граф. даже если обновит, всё равно это прожорливо по памяти/времени на выходе. блоки уже в рендере, раскиданы не линейно (влево_вправо), какой блок ласт понятно только после своей сортировки, физ размеры блоков не известны, из плюсов только что размечено, где вершина, а где вхождение. из практики, таким функционалом анализить 100к тел,размером от 0x10 до 0х4к байт, это на фуево часов..))
попробовал замутить своё, и сразу столкнулся, что в моём случае завершать список надо больше чем в 2 случаях:
1. jmp_imm - если бранч его не обходит.
2. jmp_reg - если бранч его не обходит.
3. jmp_mem - если переходник с базой рип, и если бранч его не обходит
4. call_imm - если он ласт в теле функции, такое бывает, а диа полюбасу ищет в странице рет.
5. ret - как правило ласт, после бранч_дест.
хз может ещё есть заборы?...))
с разметкой и "мёртвым кодом" разобрался быстро, правда пока не тестил на телах где может диз "сломаться".
по табле_бранч пока смакую как это раскрутить.
--------
в капстоне мона свитч га групах инструкций построить?

-----
Чтобы юзер в нэте не делал,его всё равно жалко..



<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 22 . 23 . >>
 eXeL@B —› Софт, инструменты —› x64dbg отладчик
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати