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

 eXeL@B —› Софт, инструменты —› Unicorn - The ultimate CPU emulator
<< . 1 . 2 . 3 . 4 . 5 .
Посл.ответ Сообщение


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

Создано: 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


Последний мастер - --> Link <--
Последний релиз Version 1.0.2-rc4 (30.06.2020) - --> Link <--

Code:
  1. Version 1.0.2-rc4
  2.  
  3. This version fixes some issues and improves over v1.0.2-rc3.
  4.  
  5. No longer require Python to build
  6. Fix recursive UC_HOOK_MEM callbacks for cross pages access
  7. Remove UC_ERR_TIMEOUT, so timeout on uc_emu_start() is not considered error
  8. Added UC_QUERY_TIMEOUT to query exit reason
  9. Fix UAF when deleting hook while in hook callback
  10. Ensure that hooks are unaffected by a request to stop emulation.
  11. Fix block hooks being called twice after an early exit from execution.
  12. Fix binding install on python2 (MacOS)
  13. X86:
  14. Support read/write STn registers
  15. Support read/write X64 base regs
  16. ARM64:
  17. Support some new registers


Сборка - следуем указанию в --> Link <--

Code:
  1.  MINGW64 /n
  2. $ cd msys64/unicorn
  3.  
  4. @PC MINGW64 /n/msys64/unicorn
  5. $ ./make.sh cross-win64
  6. cd qemu && \
  7. ./configure --cc="x86_64-w64-mingw32-gcc" --extra-cflags="-DUNICORN_HAS_X86 -DUNICORN_HAS_ARM -DUNICORN_HAS_M68K -DUNICORN_HAS_ARM64 -DUNICORN_HAS_MIPS -DUNICORN_HAS_MIPSEL -DUNICORN_HAS_MIPS64 -DUNICORN_HAS_MIPS64EL -DUNICORN_HAS_SPARC " --target-list="x86_64-softmmu, arm-softmmu, m68k-softmmu, aarch64-softmmu, mips-softmmu, mipsel-softmmu, mips64-softmmu, mips64el-softmmu, sparc-softmmu,sparc64-softmmu," --disable-stack-protector

*Если MINGW64 Портабельный то здесь нужно указать полный путь с названием диска $ cd c:/msys64/unicorn

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


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


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

Создано: 12 июня 2020 21:35
· Личное сообщение · #2

difexacaw держи семпл

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





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 12 июня 2020 21:42
· Личное сообщение · #3

Безумие есть повторение одного и того же действия раз за разом в надежде, что на этот раз крелк точно собирался дискутировать.

-----
2 оттенка серого





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

Создано: 12 июня 2020 21:57
· Личное сообщение · #4

difexacaw пишет:
Bronco

Так что всё слив не ты первый вы все слились. Если ты приводишь стату то её непременно проверят и вычислят; да там 3-го класса математика ппц. Ты работал с апп не накрытым сложным протектором, которые крутить нужно долго.

Но суть то в ином, лишь только я могу крутить апп до условия(критерия) EP. Потому что я его сформулировал и реализовал. Ты ничего про OEP не знаешь.


Семпла ты не увидишь, т.к. семпл стоит денег, но он тебе и не нужен, т.к. нет смысла замерять тайминги в проекте, который заточен под конкретный парсинг, это бред замерять тайминг в этом случае, если даже поставить макротайминги на сам эмулятор, это тоже бред, т.к. проект заточен под конкретную задачу и эта задача отличается от твоего двига почти полностью. Если ты хочешь замерить тайминги для Unicorn, то есть биндинг для ассемблера, можно напрямую через пару апишек подключить либу и на своём примере сделать замер и сравнить результаты с твоим двигом. Unicorn использует бинарную трансляцию. Можешь сам выложить семпл, будет время я сделаю пример по замеру тайминга. Тайминги Bronco совершенно другая тема и твои замеры там не подойдут. Всё, что вы обсуждаете это фигня --> Link <--

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


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


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

Создано: 13 июня 2020 00:55
· Личное сообщение · #5

mak, это конечно не битва Железных Канцлеров, но через призму форума, Светлейший Князь Горчаков.А.М со своей дипломатией просто отдыхает.
лайкнул за толерантность.

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





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 13 июня 2020 06:24 · Поправил: difexacaw
· Личное сообщение · #6

mak

Так о чём тогда речь идёт, если семпл какой то приват. Меня не интересует содержимое, я даже не посмотрю сервисный лог, интереса у меня два - профайл и отработает ли дий, если он упадёт то это действительно интересно.

Ну а без семмпла Bronco приводит цифры с головы". Что интересно его тайминг совпадает с дий - 1.5Mips, если там трансляция, то этого не может быть, как минимум должно быть на пордок выше. Дий не транслятор, там тупо повторные копирования в буфер и выполнение. Я говорил что трансляция сводится к макс по скорости выборке в кэш, эта задача решена: 150Mips сама выборка в кэш, при этом синхрон. Но я пока не собрал всё, другие есть дела

-----
vx





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

Создано: 13 июня 2020 12:23
· Личное сообщение · #7

difexacaw

Не приват, но семпл не стартанёт, т.к. нет ключей, это другая история. Можешь взять идентичный пример для своих тестов здесь - --> Link <-- (это касается чисто замера тайминга исполнения).

difexacaw пишет:
Ну а без семмпла Bronco приводит цифры с головы". Что интересно его тайминг совпадает с дий - 1.5Mips, если там трансляция, то этого не может быть, как минимум должно быть на пордок выше.

Не с головы, а через статистику (Кол.инстр. + Время), этого достаточно, т.к. цели другие, это замер окружения, а не чистого исполнения, об этом я и говорю, что падение профайла было ожидаемо и это нормальные показатели для его целей и окружения. Вы говорите о разных вещах и нет смысла даже пытаться совместить результаты.

difexacaw пишет:
Я говорил что трансляция сводится к макс по скорости выборке в кэш, эта задача решена

Но есть пдф статья

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





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 13 июня 2020 12:35 · Поправил: difexacaw
· Личное сообщение · #8

mak

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

> Но есть пдф статья

Есть моя тема на васм и конечный код. Очень быстрое отображение описателя на указатель(таблицы адресной трансляции 3-х уровневые), обкатанный на многопотоке стабильный.

Добавлено спустя 19 минут
mak

Не очень давно, зимой вроде был шахматный бот в запросах. Он работал под дий достаточно быстро, но профайла не хватало на серверный отклик. Поэтому задача была не решаемой, нужен транслятор. Для игр минимум сотка(100Mips).

-----
vx





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

Создано: 13 июня 2020 14:19 · Поправил: Bronco
· Личное сообщение · #9

difexacaw пишет:
По ссылке какая то игра, дий не вытянет профайл, оно будет висеть пока крутится.

упс...да это же кредо, в ней 2 загрузчика, а если это хакнутое, то ещё и сторонние патчи.
гавнопрот не замерял, думается там не больше 100к строк кода, а вот стартовый дуньки на >лярд строк потянет точно.
в общем вертеться долго будет.
я стартовый дуньки снимал в бинари всего один раз, но без покрытия ветвлений для предусловий.
время однозначно нужно больше, ибо даже для отфильтрованого одной страницы мало.
впрочем кручу-верчу тут ваще не имеет смысла, всё самое сладкое после оеп игры, да и еп второго загрузчика в статике находится за 0.000 мс.
еп аппа чуть дольше, но то же в пределах 3-4 сек...

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





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 13 июня 2020 14:32
· Личное сообщение · #10

Bronco

То что ты пишешь какой то бред. Мои ответы основаны на реальном замере профайла, транслятор к примеру вылизан" на уровне инструкций. 150 это предел на моём железе, примерно 30% уходит на системную обработку - выгрузка контекста с этим ничего нельзя поделать. Но со всеми просадками думаю реально вытянуть при трансляции 100Mips, это достаточно что бы любая игра работала под визором в реалтайме, пусть с тормозами, но всё же позволит крутить автоматикой самые тяжёлые апп без гипервизора.

-----
vx





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

Создано: 14 июня 2020 18:08 · Поправил: Bronco
· Личное сообщение · #11

difexacaw пишет:
150 это предел на моём железе, примерно 30% уходит на системную обработку - выгрузка контекста с этим ничего нельзя поделать.

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

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





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 14 июня 2020 20:06
· Личное сообщение · #12

Bronco

> я не выгружаю контекст

А как же тогда выполнить изоляцию для обработки, это невозможно.

> таргет под отладчиком, у меня процесс уже создан.

А какое отношение к отладчику имеет сабж, дрожок ты бред пишешь.

> i78750

Да без разницы, 1.6Mips это ниочём при трансляции/эмуляции. upx однозначно. Mak пимер какой то игры приводит, так такое с твоим профайлом запустить в принципе невозможно. А есчо за пару минут на трейс, ты даже с этим профайлом за две минуты asprot etc не пройдёшь до oep. Так что диалог мне с тобой не нужен я уже наслушался бреда.

-----
vx





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

Создано: 14 июня 2020 20:20
· Личное сообщение · #13

difexacaw пишет:
это невозможно.

difexacaw пишет:
дрожок ты бред пишешь.

difexacaw пишет:
upx однозначно.

difexacaw пишет:
с твоим профайлом запустить в принципе невозможно

difexacaw пишет:
ты даже с этим профайлом за две минуты asprot etc не пройдёшь до oep

старая шарманка, из которой понятно только одно, визор отстой и афтар бездарь.
difexacaw пишет:
Так что диалог мне с тобой не нужен я уже наслушался бреда.

что и требовалось доказать, зачётный слив...

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


| Сообщение посчитали полезным: DrVB_5_6
<< . 1 . 2 . 3 . 4 . 5 .
 eXeL@B —› Софт, инструменты —› Unicorn - The ultimate CPU emulator
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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