eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме:
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Софт, инструменты —› Mr.eXoDia x64 dbg
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 17 . 18 . >>
Посл.ответ Сообщение

Ранг: 7.7 (гость)
Статус: Участник

Создано: 11 декабря 2013 11:49 · Поправил: 3 мая 2016 21:30 Ra1n0 New!
Цитата · Личное сообщение · #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


Ранг: 20.5 (новичок)
Статус: Участник

Создано: 18 февраля 2016 11:40 New!
Цитата · Личное сообщение · #2

viyoh55 пишет:
вопрос, при открытии фаила ничего не появляется, в чем проблема?

Посмотрите вкладу лог (log) - там должно быть всё написано. Вне зависимости от защиты файл должен запуститься с остановом в недрах NTDLL, а после на entry point.
Файло вообще запускается без отладчика??


Ранг: 269.8 (наставник)
Статус: Участник
Advisor

Создано: 18 февраля 2016 12:50 · Поправил: 18 февраля 2016 12:52 Bronco New!
Цитата · Личное сообщение · #3

обновился снапшот..пару сладкого тыкнули
неплохо бы и NtApiTool обновить. у меня косячки на вин10 для х64
а для х32 просто не работает.

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


Ранг: 0.6 (гость)
Статус: Участник

Создано: 18 февраля 2016 13:52 New!
Цитата · Личное сообщение · #4

hello пишет:
Посмотрите вкладу лог (log) - там должно быть всё написано. Вне зависимости от защиты файл должен запуститься с остановом в недрах NTDLL, а после на entry point.
Файло вообще запускается без отладчика??

вроде открыл, как распаковать то? где то инструкцию потерял( откралсь тока дллка


Ранг: 85.6 (постоянный)
Статус: Участник

Создано: 3 мая 2016 14:54 New!
Цитата · Личное сообщение · #5

А может кто скомпилировать последнюю версию --> ScyllaHide <-- нужны версии для 32/64 x64dbg + olly2


Ранг: 50.4 (постоянный)
Статус: Участник

Создано: 3 мая 2016 16:36 · Поправил: 3 мая 2016 16:42 UniSoft New!
Цитата · Личное сообщение · #6

Apocalypse пишет:
А может кто скомпилировать последнюю версию --> ScyllaHide <-- нужны версии для 32/64 x64dbg + olly2

https://github.com/x64dbg/ScyllaHide

и вот тут всегда свежая и отстроенная:
https://ci.appveyor.com/project/mrexodia/scyllahide/build/artifacts

| Сообщение посчитали полезным: Apocalypse, Hellspawn, v00doo



Ранг: 269.8 (наставник)
Статус: Участник
Advisor

Создано: 4 мая 2016 16:53 · Поправил: 4 мая 2016 17:00 Bronco New!
Цитата · Личное сообщение · #7

Bronco пишет:
неплохо бы и NtApiTool обновить

UniSoft пишет:
и вот тут всегда свежая и отстроенная:

оперативненько...)))
Неплохо бы и плаг OllyDumpEx_X64Dbg.dp64 как нить пофиксить, валит дебагер на Get eip as oep
Bronco пишет:
Неплохо бы и плаг OllyDumpEx_X64Dbg.dp64 как нить пофиксить

мега оперативненько...)))
странно что в снапшоте нет обновлённых плагов


Ранг: 269.8 (наставник)
Статус: Участник
Advisor

Создано: 29 мая 2016 09:37 · Поправил: 29 мая 2016 09:47 Bronco New!
Цитата · Личное сообщение · #8

Круто парни взялись за апгрейд, столько плюшек...
--> Mr.eXoDia x64 dbg <--
По регистру RFLAG просветите, при прерывании, одно состояние, при сейве другое..Какое правильно ?


Ранг: 655.4 (! !)
Статус: Участник
CyberMonk

Создано: 29 мая 2016 11:39 New!
Цитата · Личное сообщение · #9

Bronco пишет:
Круто парни взялись за апгрейд, столько плюшек...
--> Mr.eXoDia x64 dbg <--
По регистру RFLAG просветите, при прерывании, одно состояние, при сейве другое..Какое правильно ?


Оба же правильные, после взвода флага можно выйти из прерывания, потом RFLAG восстанавливается, если конечно ты не говоришь, о чём-то другом, где подменяется контекст.

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


Ранг: 269.8 (наставник)
Статус: Участник
Advisor

Создано: 29 мая 2016 12:02 New!
Цитата · Личное сообщение · #10

mak пишет:
где подменяется контекст.

типо того...в патче свои проверки, + команды которые изменяют состояние rflag, а контекст надо восстанавливать...
mak пишет:
чтобы можно было выборочно загружать описание

то круто, я бы согласился и на сохранение позиций полей, столбцов, клиентских окон.

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


Ранг: 510.2 (!)
Статус: Модератор

Создано: 29 мая 2016 16:33 New!
Цитата · Личное сообщение · #11

Bronco пишет:
то круто, я бы согласился и на сохранение позиций полей, столбцов, клиентских окон.


запросто - делайте ишшю или фича риквест на гитхабе мистера

Ранг: 27.5 (посетитель)
Статус: Участник

Создано: 30 мая 2016 04:39 New!
Цитата · Личное сообщение · #12

mak пишет:
как переключать локализацию я пока не понял

В папку "translations" просто подкидывается файлик локализации x64dbg_ru_RU.qm.
Делается из исходника x64dbg_zh_CN.ts с гитхаба в linguist например.
Подхватится автоматом при запуске.

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



Ранг: 240.4 (наставник)
Статус: Участник

Создано: 9 июня 2016 14:17 New!
Цитата · Личное сообщение · #13

Кто-нибудь может пропатчить ScyllaHide под новые билды win10?
Вкратце там присутствует такой код:
Code:
  1.                 if (distorm_decompose(&decomposerCi, decomposerResult, _countof(decomposerResult), &DecodedInstructionsCount) != DECRES_INPUTERR)
  2.                 {
  3.                       if (DecodedInstructionsCount > 2)
  4.                       {
  5. +                          // Windows 10 NtQueryInformationProcess specific
  6. +                          /*
  7. +                          CPU Disasm
  8. +                          Address                                      Hex dump                                   Command                                                                        Comments
  9. +                          77C86C60 NtQueryInformationProcess               B8 19000000                            MOV EAX,19                                                                     ; NTSTATUS ntdll.NtQueryInformationProcess(ProcessHandle,ProcessInfoClass,Buffer,Bufsize,pLength)
  10. +                          77C86C65                                         E8 04000000                            CALL 77C86C6E
  11. +                          77C86C6A                                         0000                                   ADD [EAX],AL
  12. +                          77C86C6C                                         C177 5A 80                             SAL DWORD PTR [EDI+5A],80                                                      ; Shift out of range
  13. +                          77C86C70                                         7A 03                                  JPE SHORT 77C86C75
  14. +                          77C86C72                                         4B                                     DEC EBX
  15. +                          77C86C73                                         75 0A                                  JNE SHORT 77C86C7F
  16. +                          77C86C75                                         64:FF15 C0000000                       CALL FS:[0C0]
  17. +                          77C86C7C                                         C2 1400                                RETN 14                                     <<<< thinks this is the end of the function
  18. +                          77C86C7F                                         BA C0B4C977                            MOV EDX,gateway                                   <<<< Expecting this, finding nothing
  19. +                          77C86C84                                         FFD2                                   CALL EDX
  20. +                          77C86C86                                         C2 1400                                RETN 14
  21. +                          */


Только вот у меня на win 10 он выглядит так:
Code:
  1. 7775EF00 | B8 19 00 00 00                      | mov eax,19                              |
  2. 7775EF05 | E8 00 00 00 00                      | call ntdll.7775EF0A                     |
  3. 7775EF0A | 5A                                  | pop edx                                 |
  4. 7775EF0B | 80 7A 14 4B                         | cmp byte ptr ds:[edx+14],4B             |
  5. 7775EF0F | 75 0E                               | jne ntdll.7775EF1F                      |
  6. 7775EF11 | 64 FF 15 C0 00 00 00                | call dword ptr fs:[C0]                  |
  7. 7775EF18 | C2 14 00                            | ret 14                                  |
  8.  
  9. 00 00 6f 77
  10.  
  11. 7775EF1F | BA A0 33 77 77                      | mov edx,<ntdll._Wow64SystemServiceCall@ |
  12. 7775EF24 | FF D2                               | call edx                                |
  13. 7775EF26 | C2 14 00                            | ret 14                                  |



Далее в сырках есть проверка:

- DWORD funcSize = GetFunctionSizeRETN(originalBytes, sizeof(originalBytes));
+ // NtQueryInformationProcess on Windows 10 under sysWow64 has an irregular structure, this is a call at +4 bytes from itself
+ bool bSpecialSyscallStructure = (originalBytes[5] == 0xE8 && originalBytes[6] == 0x04);
+
+ // We're "borrowing" another api's code as a template, the ret must match
+ if (bSpecialSyscallStructure)

У меня она естественно не проходит.

Но это еще не всё.
После call edx в исходном коде ожидается такое
Code:
  1. +        CPU Disasm
  2. +        77C9B4C0 syscalledx                          |.  64:8B15 30000000                       MOV EDX,FS:[30]                              <<<< sysWowSpecialJmpAddress
  3. +        77C9B4C7                                     |.  8B92 64040000                          MOV EDX,[EDX+464]
  4. +        77C9B4CD                                     |.  F7C2 02000000                          TEST EDX,00000002
  5. +        77C9B4D3                                     |.- 74 03                                  JZ SHORT 77C9B4D8
  6. +        77C9B4D5                                     |.  CD 2E                                  INT 2E
  7. +        77C9B4D7                                     |.  C3                                     RETN
  8. +        77C9B4D8                                     \>  EA DFB4C977 3300                       JMP FAR 0033:77C9B4DF               <<<< Expects this
  9. +        77C9B4DF                                     /.  41                                     INC ECX
  10. +        77C9B4E0                                     \.  FFA7 F8000000                          JMP [EDI+0F8]
  11. +        */

У меня это выглядит так
Code:
  1. 777733A0 | FF 25 18 12 80 77                   | jmp dword ptr ds:[<_Wow64Transition>]   |
  2.  
  3. //dword [77801218]=77047000
  4. //.text:777733A0 ntdll.dll:$833A0 #827A0 <_Wow64SystemServiceCall@0>
  5. 77047000 | EA 09 70 04 77 33 00                | ljmp 33,77047009                        |
  6. 77047007 | 00 00                               | add byte ptr ds:[eax],al                |
  7. 77047009 | 41                                  | inc ecx                                 |
  8. 7704700A | FF A7 F8 00 00 00                   | jmp dword ptr ds:[edi+F8]               |
  9. 77047010 | 00 00                               | add byte ptr ds:[eax],al                |
  10. 77047012 | 00 00                               | add byte ptr ds:[eax],al                |
  11.  

Код мягко говоря другой.


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 9 июня 2016 15:12 New!
Цитата · Личное сообщение · #14

Nightshade поменяли стабы в вин10, сырки же есть, поправь сам.
а вообще желание отлаживать на вин10 и прятаться, чем обусловлено?)))))


Ранг: 240.4 (наставник)
Статус: Участник

Создано: 9 июня 2016 16:16 New!
Цитата · Личное сообщение · #15

Hellspawn пишет:
Nightshade поменяли стабы в вин10, сырки же есть, поправь сам.
а вообще желание отлаживать на вин10 и прятаться, чем обусловлено?)))))

Да нет у меня под рукой Visual Studio... И win 7 тоже нет. А желание отладить одну вещь с vmprotom есть))

Ранг: 77.9 (постоянный)
Статус: Участник

Создано: 14 июня 2016 19:36 · Поправил: 14 июня 2016 20:08 v00doo New!
Цитата · Личное сообщение · #16

Там вроде как локализацию начали подшивать, решил добавить ее, подумал это лучше, чем если ее черти какую вставят (посмотрел просто переложения перевода и они малость кривые есть, будто из 90-х годов)
На счет корректности: отсебятину не пишу, использую уже общепринятые глоссарии VS2010-VS2013 + от себя какой-то багаж опыта.
Так вот, все же есть места, которые хотелось бы уточнить тут, так как есть расхождения с глоссарием, так чтобы они не смотрелись ужасно относительно других определений, первое это:
Вкладка Patches (да и вообще само определеине).
Оставить как "Патчи" или взять из глоссария: "Исправления"?
Ps Оставлять оригинал считаю правильным только в таких определениях, типо PID, которое будет не совсем понятно в виде ИП.

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

upd
Контекст: Виды бряков (Точки останова)
Строки:
Software - Программно
Hardware - Аппаратно
Memory - В памяти

Handle - Дексриптор

По ходу дела (оно немного медленно продвигается но идет) буду еще оставлять.

Ранг: 1.9 (гость)
Статус: Участник

Создано: 14 июня 2016 20:12 New!
Цитата · Личное сообщение · #17

v00doo пишет:
Там вроде как локализацию начали подшивать, решил добавить ее, подумал это лучше, чем если ее черти какую вставят


А для какой цели локализация? На английском разве не понятно?

Ранг: 77.9 (постоянный)
Статус: Участник

Создано: 14 июня 2016 20:19 New!
Цитата · Личное сообщение · #18

alextexx, я вроде написал же... Итак понятно, что оно многим не нужно, но так или иначе автор добавит локаль, как только там соберут ее (и перевод итак без меня добавляют люди) и судя по текущему тексту (части переводов) выглядит это все не самым достойным образом. Удалить то тоже можно, это не сложно, но мне лично стыдно было бы такое оставлять в виде "вклада русскоговорящего сообщества", считай меня перфекционистом (с допущениями).


Ранг: 240.4 (наставник)
Статус: Участник

Создано: 15 июня 2016 11:08 · Поправил: 15 июня 2016 11:09 Nightshade New!
Цитата · Личное сообщение · #19

v00dooА где можно посмотреть существующие переводы?
Ради интереса накатал отсебятину (Использовать не советую)

{ Атач доступен только для участников форума } - translations.rar

Ранг: 387.2 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 20 июня 2016 17:25 New!
Цитата · Личное сообщение · #20

Вопрос: делал дампик с помощью scylla и фиксил табличку импорта. Однакос, дамп не живёт (ни до и ни после) - 0xC000005, очевидно, из-за кривого фиксинга IAT. Как лечить?

Ранг: 77.9 (постоянный)
Статус: Участник

Создано: 20 июня 2016 17:33 · Поправил: 21 июня 2016 02:52 v00doo New!
Цитата · Личное сообщение · #21

Nightshade, я по мере добавляю сюда:
http://translate.x64dbg.com/proofread/x64dbg/1/en-ru
Сейчас 80% есть, но добавил тестовый импорт на 45%, его надо будет исправить в некоторых местах (там кто-то уже постарался поискал мои косяки, но я все же отдельно тестирую, потом импортирую туда весь материал как он будет готов).

Ранг: 77.9 (постоянный)
Статус: Участник

Создано: 22 июня 2016 15:59 · Поправил: 22 июня 2016 17:35 v00doo New!
Цитата · Личное сообщение · #22

Nightshade пишет:
А где можно посмотреть существующие переводы?

Чтобы натягать строк и добавить их от своего имени? Ну все как обычно тут, не стоило выкладывать текущую версию в паблик явно.
Я видел старый твой перевод (ужасный между прочим, вперемешку все, как и сейчас часть добавленных) и посмотрел те строки, которые ты добавляешь от своего имени, и часть из них из моей локали уж явно, я же попросил не добавлять пока не исправлено все... И добавить нечего.


Ранг: 240.4 (наставник)
Статус: Участник

Создано: 22 июня 2016 23:09 New!
Цитата · Личное сообщение · #23

Посмотри логи сначала на своем сервере - я твой перевод даже не скачивал.

Ранг: 77.9 (постоянный)
Статус: Участник

Создано: 23 июня 2016 03:31 New!
Цитата · Личное сообщение · #24

Nightshade, тогда это очень редкое совпадение, что строки тут:
Nightshade пишет:
afb4_15.06.2016_EXELAB.rU.tgz -

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


Ранг: 240.4 (наставник)
Статус: Участник

Создано: 23 июня 2016 07:11 · Поправил: 27 июня 2016 07:31 Nightshade New!
Цитата · Личное сообщение · #25

То, что я на быструю руку написал для себя и то, что я перевел на веб сайте разные вещи.
Знаешь такой анекдот:
-Вам делать как для себя или хорошо
-Как для себя
-Мне и так сойдет

Кстати здесь snapshot появляется быстрее на день
--> Github snapshot <--

Ранг: 15.9 (новичок)
Статус: Участник

Создано: 29 июня 2016 01:58 New!
Цитата · Личное сообщение · #26

The 'official' x64dbg fork for ScyllaHide is here https://github.com/x64dbg/ScyllaHide someone contributed a fix for Windows 10, but I don't work on that platform so I didn't test. Please send a pull request if you have a fix.

Also thanks for the contributions to the Russian language!

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



Ранг: 655.4 (! !)
Статус: Участник
CyberMonk

Создано: 3 июля 2016 01:56 · Поправил: 3 июля 2016 02:09 mak New!
Цитата · Личное сообщение · #27

Немного не по теме, но о плагинах и о функциях Capstone, публичный пример на си

Code:
  1.  csh handle;
  2.  2     cs_open(CS_ARCH_X86, CS_MODE_32, &handle);
  3.  3 
  4.  4     // allocate memory cache for 1 instruction, to be used by cs_disasm_iter later.
  5.  5     cs_insn *insn = cs_malloc(handle);
  6.  6 
  7.  7     uint8_t *code = "\x90\x91\x92";
  8.  8  size_t code_size = 3; // size of @code buffer above
  9.  9  uint64_t address = 0x1000; // address of first instruction to be disassembled
  10. 10 
  11. 11     // disassemble one instruction a time & store the result into @insn variable above
  12. 12     while(cs_disasm_iter(handle, &code, &code_size, &address, insn)) {
  13. 13         // analyze disassembled instruction in @insn variable ...
  14. 14         // NOTE: @code, @code_size & @address variables are all updated
  15. 15         // to point to the next instruction after each iteration.
  16. 16     }
  17. 17 
  18. 18     // release the cache memory when done
  19. 19     cs_free(insn, 1);


Вопрос на засыпку, что такое - uint64_t address = 0x1000; // address of first instruction to be disassembled, что это за адрес?! В параметрах вызова - &code, &code_size, &address, если адрес это первая инструкция на дизасм, что такое указатель на &code ?! Тупняк у меня вообще ..


dosprog пишет:
mak пишет:
Вопрос на засыпку, что такое - uint64_t address = 0x1000

Видимо, это RVA для VA=.401000


И для чего это?! Мало ли где у меня буфер, причем здесь РВА?! Подобный код есть во всей линейке двигателей, зачем он я не могу понять .. из описания в хидере -

Code:
  1. @handle: handle returned by cs_open()
  2.  @code: buffer containing raw binary code to be disassembled.
  3.  @code_size: size of the above code buffer.
  4.  @address: address of the first instruction in given raw code buffer.
  5.  @insn: array of instructions filled in by this API.
  6.             NOTE: @insn will be allocated by this function, and should be freed
  7.             with cs_free() API.
  8.  @count: number of instructions to be disassembled, or 0 to get all of them
  9.  
  10.  @return: the number of successfully disassembled instructions,
  11.  or 0 if this function failed to disassemble the given code
  12.  
  13.  On failure, call cs_errno() for error code.
  14. */
  15. CAPSTONE_EXPORT
  16. size_t CAPSTONE_API cs_disasm(csh handle,
  17.                  const uint8_t *code, size_t code_size,
  18.                  uint64_t address,
  19.                  size_t count,
  20.                  cs_insn **insn);


Может это смещение относительно буфера?! Но в этом нет логики ..

Ранг: 409.2 (мудрец)
Статус: Участник

Создано: 3 июля 2016 01:59 · Поправил: 3 июля 2016 10:03 dosprog New!
Цитата · Личное сообщение · #28

mak пишет:
Вопрос на засыпку, что такое - uint64_t address = 0x1000


Видимо, это RVA для VA=.401000
(Например. Это если ModuleBase=.400000, +1000h байтов (страница) для MZ+PE хидера).


mak пишет::
И для чего это?! Мало ли где у меня буфер, причем здесь РВА?!


Как это - при чём?
- Для получения дизассемблированной строки нужен адрес дизассемблируемой инструкции? - вот это он и есть.

Например:
..001000: 8AC0 mov al,al

Адрес буфера с выкушенными байтами не при чём.
В буфере при вызове два байта - 8A,C0. В дизассемблируемом коде это адрес VA=.401000 (например), значит, RVA = 1000, без учёта базы.

mak пишет:
Может это смещение относительно буфера?!

Об том и речь. Относительное смещение - Relative Virtual Address, RVA.
Только не относительно буфера, а относительно базы дизассемблируемого кода, которая может быть разной, но чаще всего это .400000.

Пример патча двух байтов по этому самому адресу ..1000 - { Атач доступен только для участников форума } - note.rar

Psalmopoeus Pulcher пишет:
Это особый костыль


Выглядит как фича.

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


Ранг: 35.8 (посетитель)
Статус: Участник

Создано: 3 июля 2016 08:33 · Поправил: 3 июля 2016 08:42 Psalmopoeus Pulcher New!
Цитата · Личное сообщение · #29

Это особый костыль, который прописывается в CsInsn.address, чтобы ты мог в своем дизассемблере сделать
print(" 0x%x:\t%s\t%s" %(insn.address, insn.mnemonic, insn.op_str)).
Грубо говоря ты указываешь imagebase как в ida в начале дизасма.
Простой пример, разница в 0x1000:
Code:
  1.  0xdb4def0:       push  rsi
  2.  0xdb4def1:       push  rdi
  3.  0xdb4def2:       mov   eax, 0x2918
  4.  0xdb4def7:       call  0xdb37990
  5.  
  6.  0xdb4eef0:       push  rsi
  7.  0xdb4eef1:       push  rdi
  8.  0xdb4eef2:       mov   eax, 0x2918
  9.  0xdb4eef7:       call  0xdb38990


Ранг: 655.4 (! !)
Статус: Участник
CyberMonk

Создано: 3 июля 2016 23:42 · Поправил: 3 июля 2016 23:44 mak New!
Цитата · Личное сообщение · #30

dosprog пишет:
mak пишет::
И для чего это?! Мало ли где у меня буфер, причем здесь РВА?!

Как это - при чём?
- Для получения дизассемблированной строки нужен адрес дизассемблируемой инструкции? - вот это он и есть.

Например:
..001000: 8AC0 mov al,al

Адрес буфера с выкушенными байтами не при чём.
В буфере при вызове два байта - 8A,C0. В дизассемблируемом коде это адрес VA=.401000 (например), значит, RVA = 1000, без учёта базы.


Спасибо за разъяснение, обычно я сам расчитываю где мой адрес для дизасма, мне остается только скормить адрес. Адрес дизассемблируемой инструкции в примере я получаю простой ссылкой, зачем мне учитывать РВА?! Как это не причём? Код в других примерах, это указатель на дизассемблированние кода, для примера. Учитывая что пример внутренний, я должен подавать только этот адрес и никаких дополнительных RVA = 1000, коррекцию для других внешних файлов я и сам могу сделать.

Вот пример из кода -

Code:
  1. 00007FF64BDA1024 | 48 8D 05 65 10 00 00                | LEA RAX,QWORD PTR DS:[7FF64BDA2090]                      |
адрес моего тест кода

а вот что будет если будет еще и 1000 добавлена, пустота ..
Code:
  1. 00007FF64BDA3090 | 00 00                               | ADD BYTE PTR DS:[RAX],AL                                 |


Из второго примера разница конечно понятна.

Проблема появилась в том, что видимо я сделал ошибку в другом месте и код для теста в любом варианте не дизасмится. Я вырезал этот участок в отедельный тестовый файл и начал его насиловать всеми возможными способами. В итоге я заметил странную вещь, в &insn должен быть поинтер после выполнения cs_disasm, если пройти по этому поинтеру .. то там всякий хлам, если сделать cs_malloc(handle), то будет такой же хлам, после того как cs_disasm отработает, этот хлам перемешается с данными от дизасма, последующий любой притнф идёт лесом ... Память битая, но почему так происходит, я не могу понять ... Использовал разные версии капстон, результаты такие же, даже инк файл менял и полностью убирал.

Файл с мини исходником и бинарником - --> Link <--

П.С. наверное никто собрать не сможет, но бинарник приложен. Наверное в Си таких проблем нет.

Ранг: 35.8 (посетитель)
Статус: Участник

Создано: 4 июля 2016 07:43 New!
Цитата · Личное сообщение · #31

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

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

<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 17 . 18 . >>
 eXeL@B —› Софт, инструменты —› Mr.eXoDia x64 dbg

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS