Читаем бинарные файлы iOS-приложений

На хабре есть много статей о том, как работает рантайм Swift/Objective-C, но для еще более полного понимания того, что происходит под капотом, полезно залезть на самый низкий уровень и посмотреть, как код iOS приложений укладывается в бинарные файлы. Кроме того, безусловно, под капот приходится залезать при решении реверс-инжиниринговых задач. В этой статье мы обсудим самые простые конструкции Objective-C, а о Swift и более сложных примерах поговорим в последующих статьях.

В первых двух секциях я постарался максимально подробно осветить практические подробности, чтобы читателю, желающему пройти этот тьюториал, не нужно было каждые две минуты гуглить вещи в стиле «где найти бинарный файл приложения в Xcode». Дальше все максимально информативно.


Читать дальше →
Читаем бинарные файлы iOS-приложений
Source: habrahabr

Пост №3028134

Автор: KotProglot

СуперКот лежит на помощь! Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3028134″ }, «headline»: «СуперКот лежит на помощь! / живность :: суперкот :: котэ (прикольные картинки с кошками)», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/%D0%BA%D0%BE%D1%82%D1%8D-%D0%B6%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D1%81%D1%83%D0%BF%D0%B5%D1%80%D0%BA%D0%BE%D1%82-3723821.jpeg», «height»: 449, «width»: 600 }, «datePublished»: «2017-03-16T11:37:58+03:00», «dateModified»: «2017-03-16T11:37:58+03:00», «author»: { «@type»: «Person», «name»: «KotProglot» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3028134
Source: Joyreactor

Пост №3028130

Автор: KotProglot







Развернуть



{
«@context»: «http://schema.org»,
«@type»: «BlogPosting»,
«mainEntityOfPage»:{
«@type»:»WebPage»,
«@id»:»/post/3028130″
},
«headline»: «живность :: котэ (прикольные картинки с кошками)»,
«image»: {
«@type»: «ImageObject»,
«url»: «http://img1.joyreactor.cc/pics/post/full/%D0%BA%D0%BE%D1%82%D1%8D-%D0%B6%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C-3723801.jpeg»,
«height»: 448,
«width»: 540 },
«datePublished»: «2017-03-16T11:33:51+03:00»,
«dateModified»: «2017-03-16T11:33:51+03:00»,
«author»: {
«@type»: «Person»,
«name»: «KotProglot»
},
«publisher»: {
«@type»: «Organization»,
«name»: «JoyReactor.cc»,
«logo»: {
«@type»: «ImageObject»,
«url»: «http://joyreactor.cc/images/joyreactor_ie6.png»,
«width»: 207,
«height»: 54
}
},
«description»: «»
}

Комментировать 
Пост №3028130
Source: Joyreactor

Пост №3028129

Автор: KotProglot

«Думаю, он догадался, что за подарок мы для него приготовили…» Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3028129″ }, «headline»: «»Думаю, он догадался, что за подарок мы для него приготовили…» / живность :: подарок :: котэ (прикольные картинки с кошками)», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/%D0%BA%D0%BE%D1%82%D1%8D-%D0%B6%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%BF%D0%BE%D0%B4%D0%B0%D1%80%D0%BE%D0%BA-3723800.jpeg», «height»: 332, «width»: 450 }, «datePublished»: «2017-03-16T11:33:33+03:00», «dateModified»: «2017-03-16T11:33:33+03:00», «author»: { «@type»: «Person», «name»: «KotProglot» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3028129
Source: Joyreactor

Пост №3028123

Автор: KotProglot

Девушка взяла из приюта глухонемого безухого старого всеми забытого кота, который впоследствии её спасЭто Отит — кот, который потерял надежду найти любящих хозяев из-за отсутствия ушей, которые ему удалили из-за кистыДевятилетний глухой кот одиноко проводил свои дни в приютеМолли, страдающая от беспокойств и панических атак, сразу влюбилась в негоОна «усыновила» кота, и теперь они неразлучны! Отит помогает ей справляться со стрессом и паническими атаками«Я сказала себе, что, когда я буду готова к питомцу, я возьму только взрослого кота со специальными потребностями»Отит так благодарен за спасение, что все время обнимается со своей хозяйкой»Иногда он — единственное, что может меня успокоить»Молли говорит, что Отит — ее «эмоциональное животное поддержки», которое всегда рядом с ней«Он лучшее, что у меня было, и на самом деле это он спас меня, а не я его»Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3028123″ }, «headline»: «Девушка взяла из приюта глухонемого безухого старого всеми забытого кота, который впоследствии её сп / живность :: длиннопост :: котэ (прикольные картинки с кошками)», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/%D0%BA%D0%BE%D1%82%D1%8D-%D0%B6%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%B4%D0%BB%D0%B8%D0%BD%D0%BD%D0%BE%D0%BF%D0%BE%D1%81%D1%82-3723805.jpeg», «height»: 700, «width»: 700 }, «datePublished»: «2017-03-16T11:29:33+03:00», «dateModified»: «2017-03-16T11:29:33+03:00», «author»: { «@type»: «Person», «name»: «KotProglot» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «ас Это Отит — кот, который потерял надежду найти любящих хозяев из-за отсутствия ушей, которые ему удалили из-за кисты Девятилетний глухой кот одиноко проводил свои дни в приюте Молли, страдающая от беспокойств и панических атак, сразу влюбилась в него Она «усыновила» кота, и теперь они неразлучны» }
Комментировать 
Пост №3028123
Source: Joyreactor

Пост №3028119

Автор: TK-231

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»http://sw.reactor.cc/post/3028119″ }, «headline»: «Мандалорцы (Мандо’аде) :: SW расы :: Звездные Войны (Star Wars) :: фэндомы», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/%D0%97%D0%B2%D0%B5%D0%B7%D0%B4%D0%BD%D1%8B%D0%B5-%D0%92%D0%BE%D0%B9%D0%BD%D1%8B-%D1%84%D1%8D%D0%BD%D0%B4%D0%BE%D0%BC%D1%8B-%D0%9C%D0%B0%D0%BD%D0%B4%D0%B0%D0%BB%D0%BE%D1%80%D1%86%D1%8B-SW-%D1%80%D0%B0%D1%81%D1%8B-3723779.png», «height»: 988, «width»: 1141 }, «datePublished»: «2017-03-16T11:24:31+03:00», «dateModified»: «2017-03-16T11:24:31+03:00», «author»: { «@type»: «Person», «name»: «TK-231» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3028119
Source: Joyreactor

Обзор тепловизора Seek Thermal и его применение


Нас окружает множество предметов, и все они излучают тепловые волны. Да, абсолютно любой, даже если температура поверхности много ниже нуля, это может показаться странным, но это так. И поскольку все предметы излучают тепло, люди захотели его увидеть. Само собой, наши глаза не настолько совершенны и не работают в таком спектре, поэтому был придуман специальный прибор. Читать дальше →
Обзор тепловизора Seek Thermal и его применение
Source: geektimes

Эволюция модульного JavaScript


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


Не будем лукавить: JavaScript никогда не был идеальным языком программирования. Одним из слабых мест в JS была модульность, а точнее её отсутствие. Действительно, зачем в скриптовом языке, который анимирует падающие на странице снежинки и валидирует форму, заботиться об изоляции кода и зависимостях? Ведь всё может прекрасно жить и общаться между собой в одной глобальной области — window.


С течением времени JavaScript трансформировался в язык общего назначения, так его начали использовать для построения сложных приложений в различных средах (браузер, сервер). При этом нельзя было положиться на старые подходы взаимодействия компонентов программы через глобальную область: с ростом объёма кода приложение становилось очень хрупким. Как результат для упрощения процесса разработки создавались различные реализации модульности.


Эта статья появилась в результате общения с участниками TC39 и разработчиками фреймворков, а также чтения исходных кодов, блогов и книг. Мы рассмотрим следующие подходы/форматы: Namespace, Module, Detached Dependency Definitions, Sandbox, Dependency Injection, CommonJS, AMD, UMD, Labeled Modules, YModules и ES2015 Modules. Кроме того, мы восстановим исторический контекст их появления и развития.

Читать дальше →
Эволюция модульного JavaScript
Source: habrahabr

Зимние Олимпийские игры 2018 года будут транслироваться в VR

Если вы хоть раз присутствовали на каком-либо спортивном событии, то наверняка знаете, что просмотр по телевизору не способен передать той атмосферы, если бы вы находились в зале или на стадионе. […]
Зимние Олимпийские игры 2018 года будут транслироваться в VR
Source: 4pda

[Из песочницы] Как пасти скотов. Советы руководителю подразделения разработчиков

Помимо извечной проблемы отцов и детей, на мой взгляд, существует ещё одна проблема — подчиненных и руководителей. Именно об этой проблеме я и хотел бы поговорить в своей статье. Точнее, о таком частном случае, как взаимоотношения подчиненных и руководителей при разработке программного обеспечения, конструкторской и технологической документации. Руководители зачастую считают подчиненных безответственными разгильдяями, а подчиненные руководителей — некомпетентными пастухами, которым надо пасти стада, а не командовать подразделением разработчиков. Часто ситуация усугубляется непониманием, т.к. руководитель не разбирается в разработке, а подчиненный плохо понимает административные нюансы. Эта статья призвана помочь плохим руководителям стать хорошими руководителями. Вы, конечно, скажете: «Эй, полегче, какие ещё плохие руководители?». И будете, наверное, правы, я сильно сгущаю краски. Не очень-то и плохие. Обычные руководители, каких сотни и тысячи. Но чтобы качественно выстроить процесс разработки, нужны лучшие специалисты — и исполнители, и руководители. Поэтому руководителей я делю на хороших и не хороших. Без полутонов. Как и разработчиков, кстати, об этом сказано в последнем совете. Как понять, хороший Вы руководитель, или плохой? Почитайте нижеследующие правила. Если какие-то из них кажутся Вам чушью и потаканием бездельникам — значит статья написана для Вас. Читать дальше →
[Из песочницы] Как пасти скотов. Советы руководителю подразделения разработчиков
Source: habrahabr