SlideShare a Scribd company logo
1 of 15
Download to read offline
Н.И. Фурсова
Актуальность темы
 Широкое распространение
мобильных устройств
 Растущая популярность написания
ПО для мобильных устройств
 Необходимость анализировать и
отлаживать приложения
2
Проблемы
 Обратная отладка приложений
 Отладка самого симулятора
 Отладка приложений, использующих
сеть
 Отладка realtime приложений
 Анализ приложений
3
Решение проблем
Детерминированное воспроизведение –
технология, позволяющая записывать и
воспроизводить сценарии работы
программ
4
Выбор пути
 Модификация Java-машины
 Большой объем работы
 Невозможность расширения (не получится
отлаживать линукс-приложения)
 Воспроизведение только Java-приложений
 Модификация симулятора Android
 Возможность портирования части кода
 Возможность воспроизведения всей системы
 Возможность отлаживать линукс-приложения
5
Симулятор Android
 Разработан на основе Qemu
 Доступны исходные файлы
 Поддержка Google
 Динамическая трансляция (позволяет
работать симулятору с приемлемой
скоростью)
6
Структура симулятора
Hosthardware
Booted Android system
Emulated goldfish board
Emulator
Dynamic Binary
Translation
QEMUD
Services
QEMU Process
ARM CPU
stdio
Android Kernel
QEMU-
monitor
Serial
port 1
QEMUD
Multiplexer
7
Принцип работы
Журнал событий – своеобразный лог
недетерминированных событий,
возникающих в процессе работы
симулятора
Запись выполняется последовательно,
без индексации
8
Принцип работы
 Запись
 Выполнение инструкции
 Чтение часов
 Нажатие клавиш на клавиатуре
 Движение мыши
 Сетевые пакеты
 Воспроизведение
 Считывание показаний часов из журнала
 Передача сообщений от клавиатуры, мыши,
звуковой и сетевой карт
 Обновление внутреннего счетчика команд
9
Изменения
Hosthardware
Booted Android system
Emulated goldfish board
Emulator
Dynamic Binary
Translation
QEMUD
Services
QEMU Process
ARM CPU
stdio
Android Kernel
QEMU-
monitor
Serial
port 1
QEMUD
Multiplexer
10
Доработка симулятора
 Модуль трансляции кода
Перед выполнением инструкции
выполняется код, увеличивающий счетчик
инструкций
 Таймеры
При записи показания записываются в
журнал, при воспроизведении –
считываются из журнала
 Аудио
Данные из микрофона записываются в
очередь и вызываются в определенное
время
11
Доработка симулятора
 Дисплей
Прерывание обновления экрана
происходит не когда угодно, а когда в
журнале появится соответствующее
событие
 Сеть
Входящие сетевые пакеты
записываются в журнал и при
возникновении необходимости берутся
не из внешней сети, а из журнала
12
Доработка симулятора
 Модуль работы с образами дисков
Пути решения:
 Записывать полученные данные в журнал
○ Большой объем данных
○ Сложность реализации
 Копировать файлы и осуществлять
запись данных во временные файлы
○ Простота реализации
○ Журнал не используется
13
Выводы
 Полностью воспроизводится загрузка
ОС (свыше 27 млрд инструкций)
 Доработаны модули, отвечающие за:
 Мышь
 Клавиатуру
 Аудио
 Таймеры
 Образы дисков
 Дисплей
 Сеть (частично)
14
Список литературы
 П.М. Довгалюк, В.А. Макаров
Обратная отладка с помощью
детерминированного
воспроизведения программ в
виртуальной машине
 https://wiki.diebin.at/Under_the_hood_of
_Android_Emulator_(appcert)
15

More Related Content

What's hot

презентация на защиту 06.06
презентация на защиту 06.06презентация на защиту 06.06
презентация на защиту 06.06Boris Kizko
 
2009 Inquisitor 3
2009 Inquisitor 32009 Inquisitor 3
2009 Inquisitor 3Liudmila Li
 
Open suse microsoft powerpoint
Open suse microsoft powerpointOpen suse microsoft powerpoint
Open suse microsoft powerpointNick535
 
презентация костина сравнение 8.1 7
презентация костина сравнение 8.1 7презентация костина сравнение 8.1 7
презентация костина сравнение 8.1 7sasha4334556
 
15 принцип работы и классификация эвм
15 принцип работы и классификация эвм15 принцип работы и классификация эвм
15 принцип работы и классификация эвмSergey Lomakin
 
презентация клевин александр
презентация клевин александрпрезентация клевин александр
презентация клевин александрsasha4334556
 
Кирилл Науменко. "Выжать максимум". IT-пятница, сентябрь 2018.
Кирилл Науменко. "Выжать максимум". IT-пятница, сентябрь 2018.Кирилл Науменко. "Выжать максимум". IT-пятница, сентябрь 2018.
Кирилл Науменко. "Выжать максимум". IT-пятница, сентябрь 2018.GigaCloud
 
Презентация к защите курсовой работы на заказ на www.studentam-in.ru
Презентация к защите курсовой работы на заказ на www.studentam-in.ruПрезентация к защите курсовой работы на заказ на www.studentam-in.ru
Презентация к защите курсовой работы на заказ на www.studentam-in.ruAlexandr Konfidentsialno
 
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesTMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesIosif Itkin
 
процессоры и куллеры
процессоры и куллерыпроцессоры и куллеры
процессоры и куллерыKozinskaIS
 
процессоры и кулеры
процессоры и кулерыпроцессоры и кулеры
процессоры и кулерыKozinskaIS
 
Android Telegram S Optimizations
Android Telegram S OptimizationsAndroid Telegram S Optimizations
Android Telegram S OptimizationsStepan Korshakov
 
Os
OsOs
OsIKTO
 
Терминалы DEPO Sky
Терминалы DEPO SkyТерминалы DEPO Sky
Терминалы DEPO SkyDEPO Computers
 
Операционные системы
Операционные системыОперационные системы
Операционные системыyaevents
 
Игорь Павлов и Глеб Головин
Игорь Павлов и Глеб ГоловинИгорь Павлов и Глеб Головин
Игорь Павлов и Глеб ГоловинCodeFest
 
"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)
"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)
"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)AvitoTech
 

What's hot (19)

презентация на защиту 06.06
презентация на защиту 06.06презентация на защиту 06.06
презентация на защиту 06.06
 
2009 Inquisitor 3
2009 Inquisitor 32009 Inquisitor 3
2009 Inquisitor 3
 
Open suse microsoft powerpoint
Open suse microsoft powerpointOpen suse microsoft powerpoint
Open suse microsoft powerpoint
 
Windw
WindwWindw
Windw
 
презентация костина сравнение 8.1 7
презентация костина сравнение 8.1 7презентация костина сравнение 8.1 7
презентация костина сравнение 8.1 7
 
15 принцип работы и классификация эвм
15 принцип работы и классификация эвм15 принцип работы и классификация эвм
15 принцип работы и классификация эвм
 
презентация клевин александр
презентация клевин александрпрезентация клевин александр
презентация клевин александр
 
Кирилл Науменко. "Выжать максимум". IT-пятница, сентябрь 2018.
Кирилл Науменко. "Выжать максимум". IT-пятница, сентябрь 2018.Кирилл Науменко. "Выжать максимум". IT-пятница, сентябрь 2018.
Кирилл Науменко. "Выжать максимум". IT-пятница, сентябрь 2018.
 
Презентация к защите курсовой работы на заказ на www.studentam-in.ru
Презентация к защите курсовой работы на заказ на www.studentam-in.ruПрезентация к защите курсовой работы на заказ на www.studentam-in.ru
Презентация к защите курсовой работы на заказ на www.studentam-in.ru
 
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesTMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
 
Gpgpu
GpgpuGpgpu
Gpgpu
 
процессоры и куллеры
процессоры и куллерыпроцессоры и куллеры
процессоры и куллеры
 
процессоры и кулеры
процессоры и кулерыпроцессоры и кулеры
процессоры и кулеры
 
Android Telegram S Optimizations
Android Telegram S OptimizationsAndroid Telegram S Optimizations
Android Telegram S Optimizations
 
Os
OsOs
Os
 
Терминалы DEPO Sky
Терминалы DEPO SkyТерминалы DEPO Sky
Терминалы DEPO Sky
 
Операционные системы
Операционные системыОперационные системы
Операционные системы
 
Игорь Павлов и Глеб Головин
Игорь Павлов и Глеб ГоловинИгорь Павлов и Глеб Головин
Игорь Павлов и Глеб Головин
 
"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)
"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)
"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)
 

Viewers also liked (16)

Presentation_1367082257221
Presentation_1367082257221Presentation_1367082257221
Presentation_1367082257221
 
Presentation_1367999317486
Presentation_1367999317486Presentation_1367999317486
Presentation_1367999317486
 
Presentation_1367318177373
Presentation_1367318177373Presentation_1367318177373
Presentation_1367318177373
 
Presentation_1370437255967
Presentation_1370437255967Presentation_1370437255967
Presentation_1370437255967
 
Presentation_1369906540313
Presentation_1369906540313Presentation_1369906540313
Presentation_1369906540313
 
Presentation_1364048887589
Presentation_1364048887589Presentation_1364048887589
Presentation_1364048887589
 
lolka
lolkalolka
lolka
 
Presentation_1369858819595
Presentation_1369858819595Presentation_1369858819595
Presentation_1369858819595
 
Presentation_1371106072301
Presentation_1371106072301Presentation_1371106072301
Presentation_1371106072301
 
Presentation_1367057821440
Presentation_1367057821440Presentation_1367057821440
Presentation_1367057821440
 
Presentation_1367055087514
Presentation_1367055087514Presentation_1367055087514
Presentation_1367055087514
 
Presentation_1367144693918
Presentation_1367144693918Presentation_1367144693918
Presentation_1367144693918
 
Presentation_1368279364123
Presentation_1368279364123Presentation_1368279364123
Presentation_1368279364123
 
Presentation_1367098410636
Presentation_1367098410636Presentation_1367098410636
Presentation_1367098410636
 
Presentation_1364048929475
Presentation_1364048929475Presentation_1364048929475
Presentation_1364048929475
 
Presentation_1371603097527
Presentation_1371603097527Presentation_1371603097527
Presentation_1371603097527
 

Similar to Presentation_1369674095019

6 кареев киров
6 кареев киров6 кареев киров
6 кареев кировqasib
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)guest40e031
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Serversrit2010
 
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...DrupalCamp MSK
 
Непрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применениеНепрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применениеdevclub
 
Что такое мобильная платформа HyperHive
Что такое мобильная платформа HyperHiveЧто такое мобильная платформа HyperHive
Что такое мобильная платформа HyperHivePavel Lipanov
 
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesWhite Nights Conference
 
DevOps в реальном времени
DevOps в реальном времениDevOps в реальном времени
DevOps в реальном времениAndriy Samilyak
 
Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Эльвина Сакаева
 
Сергей Комлач "Итоги Google I/O: что нас ждет"
Сергей Комлач "Итоги Google I/O: что нас ждет"Сергей Комлач "Итоги Google I/O: что нас ждет"
Сергей Комлач "Итоги Google I/O: что нас ждет"Fwdays
 
Использование Symfony
Использование SymfonyИспользование Symfony
Использование SymfonyMedia Gorod
 
Презентация Защита данных от Dell Software: краткий обзор и планы развития ...
Презентация Защита данных от Dell Software:  краткий обзор и планы  развития ...Презентация Защита данных от Dell Software:  краткий обзор и планы  развития ...
Презентация Защита данных от Dell Software: краткий обзор и планы развития ...Marina Gryshko
 
Защита данных от Dell Software: краткий обзор и планы развития продуктов
Защита данных от Dell Software: краткий обзор и планы  развития продуктов   Защита данных от Dell Software: краткий обзор и планы  развития продуктов
Защита данных от Dell Software: краткий обзор и планы развития продуктов BAKOTECH
 
Вебинар: «Новые возможности ИТ-инфраструктуры». Евгений Тарелкин. Fujitsu
Вебинар: «Новые возможности ИТ-инфраструктуры». Евгений Тарелкин. FujitsuВебинар: «Новые возможности ИТ-инфраструктуры». Евгений Тарелкин. Fujitsu
Вебинар: «Новые возможности ИТ-инфраструктуры». Евгений Тарелкин. FujitsuFujitsu Russia
 

Similar to Presentation_1369674095019 (20)

Presentation_1369673408946
Presentation_1369673408946Presentation_1369673408946
Presentation_1369673408946
 
Presentation_1369673299240
Presentation_1369673299240Presentation_1369673299240
Presentation_1369673299240
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев киров
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Servers
 
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
 
Непрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применениеНепрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применение
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
Что такое мобильная платформа HyperHive
Что такое мобильная платформа HyperHiveЧто такое мобильная платформа HyperHive
Что такое мобильная платформа HyperHive
 
190
190190
190
 
Prezentatsia Elina
Prezentatsia ElinaPrezentatsia Elina
Prezentatsia Elina
 
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
 
DevOps в реальном времени
DevOps в реальном времениDevOps в реальном времени
DevOps в реальном времени
 
Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)
 
Сергей Комлач "Итоги Google I/O: что нас ждет"
Сергей Комлач "Итоги Google I/O: что нас ждет"Сергей Комлач "Итоги Google I/O: что нас ждет"
Сергей Комлач "Итоги Google I/O: что нас ждет"
 
Использование Symfony
Использование SymfonyИспользование Symfony
Использование Symfony
 
IBM Proventia IPS
IBM Proventia IPSIBM Proventia IPS
IBM Proventia IPS
 
Презентация Защита данных от Dell Software: краткий обзор и планы развития ...
Презентация Защита данных от Dell Software:  краткий обзор и планы  развития ...Презентация Защита данных от Dell Software:  краткий обзор и планы  развития ...
Презентация Защита данных от Dell Software: краткий обзор и планы развития ...
 
Защита данных от Dell Software: краткий обзор и планы развития продуктов
Защита данных от Dell Software: краткий обзор и планы  развития продуктов   Защита данных от Dell Software: краткий обзор и планы  развития продуктов
Защита данных от Dell Software: краткий обзор и планы развития продуктов
 
Вебинар: «Новые возможности ИТ-инфраструктуры». Евгений Тарелкин. Fujitsu
Вебинар: «Новые возможности ИТ-инфраструктуры». Евгений Тарелкин. FujitsuВебинар: «Новые возможности ИТ-инфраструктуры». Евгений Тарелкин. Fujitsu
Вебинар: «Новые возможности ИТ-инфраструктуры». Евгений Тарелкин. Fujitsu
 

More from Alexander Nevidimov

чек за платеж за телефон
чек за платеж за телефончек за платеж за телефон
чек за платеж за телефонAlexander Nevidimov
 
чек за платеж за телефон
чек за платеж за телефончек за платеж за телефон
чек за платеж за телефонAlexander Nevidimov
 

More from Alexander Nevidimov (20)

чек за платеж за телефон
чек за платеж за телефончек за платеж за телефон
чек за платеж за телефон
 
чек за платеж за телефон
чек за платеж за телефончек за платеж за телефон
чек за платеж за телефон
 
Presentation_1376917645876
Presentation_1376917645876Presentation_1376917645876
Presentation_1376917645876
 
Presentation_1376678601814
Presentation_1376678601814Presentation_1376678601814
Presentation_1376678601814
 
Presentation_1376311255728
Presentation_1376311255728Presentation_1376311255728
Presentation_1376311255728
 
Presentation_1376222064850
Presentation_1376222064850Presentation_1376222064850
Presentation_1376222064850
 
Presentation_1376220985856
Presentation_1376220985856Presentation_1376220985856
Presentation_1376220985856
 
Presentation_1376220236996
Presentation_1376220236996Presentation_1376220236996
Presentation_1376220236996
 
Presentation_1376218980392
Presentation_1376218980392Presentation_1376218980392
Presentation_1376218980392
 
Presentation_1376168115602
Presentation_1376168115602Presentation_1376168115602
Presentation_1376168115602
 
Presentation_1375882767439
Presentation_1375882767439Presentation_1375882767439
Presentation_1375882767439
 
Presentation_1375882705328
Presentation_1375882705328Presentation_1375882705328
Presentation_1375882705328
 
Presentation_1375280857464
Presentation_1375280857464Presentation_1375280857464
Presentation_1375280857464
 
Presentation_1375280653597
Presentation_1375280653597Presentation_1375280653597
Presentation_1375280653597
 
Presentation_1374052137363
Presentation_1374052137363Presentation_1374052137363
Presentation_1374052137363
 
Presentation_1373778041831
Presentation_1373778041831Presentation_1373778041831
Presentation_1373778041831
 
Presentation_1373190655210
Presentation_1373190655210Presentation_1373190655210
Presentation_1373190655210
 
Presentation_1372848115982
Presentation_1372848115982Presentation_1372848115982
Presentation_1372848115982
 
Presentation_1372103147097
Presentation_1372103147097Presentation_1372103147097
Presentation_1372103147097
 
Presentation_1371997361000
Presentation_1371997361000Presentation_1371997361000
Presentation_1371997361000
 

Presentation_1369674095019

  • 2. Актуальность темы  Широкое распространение мобильных устройств  Растущая популярность написания ПО для мобильных устройств  Необходимость анализировать и отлаживать приложения 2
  • 3. Проблемы  Обратная отладка приложений  Отладка самого симулятора  Отладка приложений, использующих сеть  Отладка realtime приложений  Анализ приложений 3
  • 4. Решение проблем Детерминированное воспроизведение – технология, позволяющая записывать и воспроизводить сценарии работы программ 4
  • 5. Выбор пути  Модификация Java-машины  Большой объем работы  Невозможность расширения (не получится отлаживать линукс-приложения)  Воспроизведение только Java-приложений  Модификация симулятора Android  Возможность портирования части кода  Возможность воспроизведения всей системы  Возможность отлаживать линукс-приложения 5
  • 6. Симулятор Android  Разработан на основе Qemu  Доступны исходные файлы  Поддержка Google  Динамическая трансляция (позволяет работать симулятору с приемлемой скоростью) 6
  • 7. Структура симулятора Hosthardware Booted Android system Emulated goldfish board Emulator Dynamic Binary Translation QEMUD Services QEMU Process ARM CPU stdio Android Kernel QEMU- monitor Serial port 1 QEMUD Multiplexer 7
  • 8. Принцип работы Журнал событий – своеобразный лог недетерминированных событий, возникающих в процессе работы симулятора Запись выполняется последовательно, без индексации 8
  • 9. Принцип работы  Запись  Выполнение инструкции  Чтение часов  Нажатие клавиш на клавиатуре  Движение мыши  Сетевые пакеты  Воспроизведение  Считывание показаний часов из журнала  Передача сообщений от клавиатуры, мыши, звуковой и сетевой карт  Обновление внутреннего счетчика команд 9
  • 10. Изменения Hosthardware Booted Android system Emulated goldfish board Emulator Dynamic Binary Translation QEMUD Services QEMU Process ARM CPU stdio Android Kernel QEMU- monitor Serial port 1 QEMUD Multiplexer 10
  • 11. Доработка симулятора  Модуль трансляции кода Перед выполнением инструкции выполняется код, увеличивающий счетчик инструкций  Таймеры При записи показания записываются в журнал, при воспроизведении – считываются из журнала  Аудио Данные из микрофона записываются в очередь и вызываются в определенное время 11
  • 12. Доработка симулятора  Дисплей Прерывание обновления экрана происходит не когда угодно, а когда в журнале появится соответствующее событие  Сеть Входящие сетевые пакеты записываются в журнал и при возникновении необходимости берутся не из внешней сети, а из журнала 12
  • 13. Доработка симулятора  Модуль работы с образами дисков Пути решения:  Записывать полученные данные в журнал ○ Большой объем данных ○ Сложность реализации  Копировать файлы и осуществлять запись данных во временные файлы ○ Простота реализации ○ Журнал не используется 13
  • 14. Выводы  Полностью воспроизводится загрузка ОС (свыше 27 млрд инструкций)  Доработаны модули, отвечающие за:  Мышь  Клавиатуру  Аудио  Таймеры  Образы дисков  Дисплей  Сеть (частично) 14
  • 15. Список литературы  П.М. Довгалюк, В.А. Макаров Обратная отладка с помощью детерминированного воспроизведения программ в виртуальной машине  https://wiki.diebin.at/Under_the_hood_of _Android_Emulator_(appcert) 15