Сейчас на форуме: bartolomeo, -Sanchez-, morgot, sashalogout (+5 невидимых) |
eXeL@B —› Софт, инструменты —› Unicorn - The ultimate CPU emulator |
<< . 1 . 2 . 3 . 4 . 5 . >> |
Посл.ответ | Сообщение |
|
Создано: 19 октября 2017 13:52 · Поправил: mak · Личное сообщение · #1 Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator framework based on QEMU. Unicorn offers some unparalleled features: Multi-architecture: ARM, ARM64 (ARMv8), M68K, MIPS, SPARC, and X86 (16, 32, 64-bit) Clean/simple/lightweight/intuitive architecture-neutral API Implemented in pure C language, with bindings for Crystal, Clojure, Visual Basic, Perl, Rust, Ruby, Python, Java, .NET, Go, Delphi/Free Pascal, Haskell and Pharo. Native support for Windows & *nix (with Mac OSX, Linux, *BSD & Solaris confirmed) High performance via Just-In-Time compilation Support for fine-grained instrumentation at various levels Thread-safety by design Distributed under free software license GPLv2 Последний мастер - Последний релиз Version 1.0.2-rc4 (30.06.2020) - Code:
Сборка - следуем указанию в Code:
*Если MINGW64 Портабельный то здесь нужно указать полный путь с названием диска $ cd c:/msys64/unicorn ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: plutos, Isaev |
|
Создано: 26 июля 2018 15:20 · Личное сообщение · #2 |
|
Создано: 26 июля 2018 21:37 · Личное сообщение · #3 |
|
Создано: 26 июля 2018 21:54 · Поправил: f13nd · Личное сообщение · #4 |
|
Создано: 26 июля 2018 22:50 · Личное сообщение · #5 |
|
Создано: 26 июля 2018 22:56 · Личное сообщение · #6 |
|
Создано: 27 июля 2018 06:15 · Поправил: Bronco · Личное сообщение · #7 f13nd пишет: Если она уже отключена сорян, это в дебаг режиме было отключено. с релиз режимом фаберже те же.. после 15й у меня 2013 не станет, только на варю, а это уже большая возня. и по сборке в 2013 у меня нет уверенности, что там таких качелей не будет. ======= /ADD собирал в mingw( с этими путями к питону, мозг сука высушил), ебала с флагами та же самая. с мастер-сорцов ничего толкового не соберёшь, наглухо убитые апдейтами. и по ходу дело не в студии. в mingw с релизных сорцов 1.01, всё как и надо, где яшечка? давай споём.. как бы намутить солюшен для релиз_сорца? ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 27 июля 2018 14:55 · Личное сообщение · #8 |
|
Создано: 27 июля 2018 16:50 · Личное сообщение · #9 |
|
Создано: 27 июля 2018 18:10 · Личное сообщение · #10 f13nd пишет: да напилингом-паялингом довел до ума. там не напильник нужен, а огромного размера рашпиль. в qemu активно используются расширения компилятора и специфические макросы, это всё добро нужно экранировать дефайнами, и проделывать это нужно практически во всех файлах, возможно автор как раз сломал код делая порт. |
|
Создано: 27 июля 2018 18:12 · Личное сообщение · #11 |
|
Создано: 27 июля 2018 18:27 · Личное сообщение · #12 |
|
Создано: 27 июля 2018 18:49 · Личное сообщение · #13 |
|
Создано: 28 июля 2018 08:51 · Личное сообщение · #14 f13nd пишет: Опенсурс. Бессмысленный и беспощадный. ага...инклудов всего ничего, экспорта то же, и как бы под студией такую матрёшку не по дебажишь с наскоку. выше уже писал, что код делится на базовые блоки. это стандарт. посмотрел на доступную инфо, при хуке на блок. дают начало блока и размер блока. вершины блока определяют правильно. но после брэнч логика кода такова. Code:
хз если ласт это вершина, то почему то должна быть не равна. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 28 июля 2018 14:41 · Поправил: f13nd · Личное сообщение · #15 Bronco sync_eflags() если я правильно понял это только рассчет значения ефлагс через helper_compute_all (видимо чтоб считать их только для инструкций, влияющих на бранч), если тебе не нравится частый синхрон, хз куда уж реже. Там нету ни одного вызова с импорта, просто сама по себе функция широка и обильна и наряду в ней нет. gen_uc_tracecode() уже с импортом, с критическими секциями и Sleep'ами. Наверное главные затупы там. ЗЫ: отлаживать можно и не в студии, легко и непринужденно ставить бряки куда надо помогает MessageBeep. И if () MessageBeep(0); ЗЗЫ: и если я вообще правильно все понял (такое бывает нечасто), то эту штуку нельзя к эмуляторам отнести. Ее вообще стоило бы отнести кое-куда и там оставить Добавлено спустя 2 часа 31 минуту Code:
----- 2 оттенка серого |
|
Создано: 29 июля 2018 00:06 · Личное сообщение · #16 f13nd пишет: если тебе не нравится частый синхрон, хз куда уж реже упс...всё не так...)) получается , что для пользователя, при "UC_HOOK_CODE", его ваще нет. даже на бранчах. в контексте рога состояние рфлагс , какое то остаточное, и не совпадает с текущим. хотя код исполняется правильно. я добавил покрытие для коротких прыгов, но получается шляпа. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 29 июля 2018 00:17 · Поправил: f13nd · Личное сообщение · #17 |
|
Создано: 29 июля 2018 00:25 · Личное сообщение · #18 |
|
Создано: 29 июля 2018 00:34 · Поправил: shellstorm · Личное сообщение · #19 Bronco пишет: так это с релизом самому лень смотреть, глянь в релизе, translate.c поиск: закомментирована эта строка или нет if (num_insns + 1 == max_insns && (tb->cflags & CF_LAST_IO)) Bronco пишет: но это же для одного флага это был достаточно серье.зный патч, интересно найти проблему, где сломали код |
|
Создано: 29 июля 2018 00:38 · Личное сообщение · #20 |
|
Создано: 29 июля 2018 06:12 · Личное сообщение · #21 Погорячился с выводами про ефлагс, считает он их в обработчике каждой инструкции. Линканутая выше конструкция просто вызывает зарегистрированные UC_HOOK_CODE, хз зачем она такая умная. Без нагрузки в хуках рса1024 (около 4млн чтоли инструкций, экспонента публичная) считает мгновенно и даже каким-то чудом правильно. ----- 2 оттенка серого |
|
Создано: 29 июля 2018 06:59 · Поправил: Bronco · Личное сообщение · #22 f13nd пишет: хз зачем она такая умная угу..ну так метод НС никто не отменял. бранч это завершение блока, на вершинах синхронизация рфлагс, и в конструкторе функции всё в порядке. только это синхрон для "внутреннего потребления", надо лезть в экспорт, там где рег_реад. почему там нет синхронизации. //ADD 1 млять..любопытно же, что на самом деле. дбг в дбг, и давай ловить мошеника. нифуя не по вершинам блока, синхрон с рфлагс на всех инстр где REG WRITE: X86_REG_RFLAGS что очень даже правильно. //ADD 2 рег_рид читает весь банч, для ефлагс свой кейс: Code:
это толпой патчили на гите, автор учёл, но оно нифуя не работает: Code:
в итоге тупо возвращают с чем пришли: Code:
что то тут синхронизации не видно.. //ADD 3 да ну нах такие качели, так и моск высохнет, код рог правильно исполняет, но ипись с этим синхроном, покрытие можно по другому сделать. как бы баян этот для себя прикрыл, но кто чего нароет_починит, велком. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 29 июля 2018 17:28 · Личное сообщение · #23 |
|
Создано: 29 июля 2018 19:17 · Поправил: Bronco · Личное сообщение · #24 shellstorm пишет: там нет ничего интересного не прав, сам поток как раз там синхронизирут. рассчет значения ефлагс через helper_compute_all (видимо чтоб считать их только для инструкций, влияющих на бранч) а вот фейсы лагают, ибо у них свой метод из хелпера. из - за этого же качели по операторам флага. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 29 июля 2018 19:34 · Личное сообщение · #25 |
|
Создано: 29 июля 2018 19:44 · Поправил: f13nd · Личное сообщение · #26 |
|
Создано: 29 июля 2018 20:10 · Поправил: Bronco · Личное сообщение · #27 f13nd, синхрон для эмуляции потока, нах его под нопы? либо улетим в ебеня, либо полонез агинского.. чтобы оттуда доставать, надо в структуры вникать, и не под отладчиком дебажить. а к студии подключать_настраивать целое дело. по регистрам, через фейсы, вывод инфо нормальный, они то же нужны. в апи без синхрона только ефлагс. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 29 июля 2018 20:40 · Поправил: f13nd · Личное сообщение · #28 |
|
Создано: 29 июля 2018 21:16 · Личное сообщение · #29 f13nd, с хуками полный порядок, их ваще дофига разных, можно комби. есть и для сервисов. и с ними покруче чем юзать стелс бряки. UC_HOOK_CODE это мне приспичило. ибо дбг_диа, хоть и в контексте процесса, но чтение и запись, через всю ось таскает, и для трейсера это нехилые тормоза. а рогу чего надо? контекст_старт_финиш. с буфером он работает. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 29 июля 2018 21:24 · Поправил: f13nd · Личное сообщение · #30 |
|
Создано: 28 августа 2019 05:37 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . >> |
eXeL@B —› Софт, инструменты —› Unicorn - The ultimate CPU emulator |