{"id":199130,"date":"2013-11-15T00:01:03","date_gmt":"2013-11-14T20:01:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=199130"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=199130","title":{"rendered":"<span class=\"post_title\">\u041b\u043e\u043c\u0430\u0435\u043c iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435! \u0427\u0430\u0441\u0442\u044c 2<\/span>"},"content":{"rendered":"<div class=\"content html_format\">       \u0412 <a href=\"http:\/\/habrahabr.ru\/post\/199128\/\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u043c\u044b \u0438\u0437\u0443\u0447\u0438\u043b\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 <i>\u0434\u0430\u043d\u043d\u044b\u0445<\/i>. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0437\u0430\u0449\u0438\u0442\u0435 <i>\u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u0434\u0430<\/i>. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0435\u043c \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433. \u0418 \u0441\u043d\u043e\u0432\u0430, \u043f\u043e\u043c\u043d\u0438\u0442\u0435! \u041d\u0430\u0448\u0430 \u0446\u0435\u043b\u044c \u2014 \u043d\u0435 \u0441\u0442\u0430\u0442\u044c \u0433\u0430\u0434\u043a\u0438\u043c \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a\u043e\u043c, \u0430 \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0442 \u0437\u043b\u043e\u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/412\/621\/944\/4126219446922efb37f654de16208801.png\"\/><a name=\"habracut\"><\/a><\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u044d\u0442\u043e\u0442 \u0443\u0440\u043e\u043a, \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440. \u0410\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u043e\u0432\u0435\u0442\u0443\u0435\u0442 \u043f\u0440\u043e\u0439\u0442\u0438 <a href=\"http:\/\/www.raywenderlich.com\/37181\/ios-assembly-tutorial\">\u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u043f\u043e ARM<\/a> (\u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c).<\/p>\n<p>  \u0412\u043e\u043e\u0431\u0449\u0435-\u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u0441\u043c\u044b\u0441\u043b \u0443\u0440\u043e\u043a\u0430, \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u2014 \u044d\u0442\u043e \u043f\u0430\u0440\u0443 \u043c\u0438\u043d\u0443\u0442 \u043f\u043e\u0433\u0443\u0433\u043b\u0438\u0442\u044c \u043f\u043e \u0445\u043e\u0434\u0443 \u0434\u0435\u043b\u0430. \u041d\u0443 \u0432\u044b \u0431\u043b\u0438\u0436\u0435 \u043a \u043a\u043e\u043d\u0446\u0443 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u0430\u043c\u0438 \u0440\u0435\u0448\u0438\u0442\u0435, \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0438\u043b\u0438 \u043d\u0435\u0442. \ud83d\ude42 <i> \u2014 \u041f\u0440\u0438\u043c. \u043f\u0435\u0440.<\/i><\/p>\n<h2>\u041d\u0430\u0447\u043d\u0451\u043c<\/h2>\n<p>  \u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/github.com\/x128\/MemeCollector\">Meme Collector<\/a> \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438.  <\/li>\n<li>\u0423\u0442\u0438\u043b\u0438\u0442\u0430 <a href=\"https:\/\/code.google.com\/p\/networkpx\/wiki\/class_dump_z\">class-dump-z<\/a>.  <\/li>\n<li>\u041e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u044b\u0439 HEX-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0434\u043b\u044f OS X: <a href=\"http:\/\/ridiculousfish.com\/hexfiend\/\">Hex Fiend<\/a>.  <\/li>\n<li>\u0414\u0435\u043c\u043e-\u0432\u0435\u0440\u0441\u0438\u044f <a href=\"https:\/\/www.hex-rays.com\/products\/ida\/support\/download_demo.shtml\">IDA<\/a> \u2014 \u044d\u0442\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u0439 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0438 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a. \u0423 \u0434\u0435\u043c\u043e-\u0432\u0435\u0440\u0441\u0438\u0438 \u0435\u0441\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f, \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u043a\u0430.  <\/li>\n<\/ul>\n<p>  \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435 \u043e\u0431 \u044d\u0442\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u043c\u043d\u043e\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e!<\/p>\n<h2>\u041c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441\u043e \u0441\u0440\u0435\u0434\u043e\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (runtime)<\/h2>\n<p>  \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0435\u0440\u0438\u0438 \u043c\u044b \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0444\u0430\u0439\u043b\u044b .plist \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u0442\u043a\u0430 \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u0441\u0447\u0451\u0442\u0435. \u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u043f\u0440\u044f\u043c\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0442\u043e, \u0447\u0442\u043e \u0437\u043e\u0432\u0451\u0442\u0441\u044f runtime). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u0435\u0431\u0430\u0433\u0433\u0435\u0440 LLDB.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0432\u0441\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0441 GDB, \u043d\u043e<\/b><\/p>\n<div class=\"spoiler_text\">\u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f Xcode \u0434\u043e 5.0.1 (\u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430) \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 GDB \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0442\u0430\u043d\u0446\u044b \u0441 \u0431\u0443\u0431\u043d\u043e\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0443\u0442\u044f\u0436\u0435\u043b\u044f\u0442\u044c \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b, \u044f \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043b \u0435\u0433\u043e \u043f\u043e <a href=\"http:\/\/lldb.llvm.org\/lldb-gdb.html\">\u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439 \u043a\u043e\u043c\u0430\u043d\u0434 \u043c\u0435\u0436\u0434\u0443 LLDB \u0438 GDB<\/a>. <i> \u2014 \u041f\u0440\u0438\u043c. \u043f\u0435\u0440.<\/i><\/div>\n<\/div>\n<p>  \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u043f\u0430\u043f\u043a\u0443 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0431\u0430\u043d\u0434\u043b\u0430 (<code>Meme Collector.app<\/code>), \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 iOS. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u044f\u0435\u0442\u0435\u0441\u044c \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0437\u0430\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u0432 <a href=\"http:\/\/habrahabr.ru\/post\/199128\/\">\u043f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c<\/a>.<\/p>\n<p>  \u0417\u0430\u043d\u0438\u043c\u0430\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e: \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0437\u0430\u043f\u0443\u0449\u0435\u043d, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e, \u043d\u043e \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e.<\/p>\n<p>  \u0412 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u043d\u0430\u0431\u0435\u0440\u0438\u0442\u0435:<\/p>\n<pre><code class=\"bash\">lldb <\/code><\/pre>\n<p>  \u0414\u0435\u0431\u0430\u0433\u0433\u0435\u0440 \u0437\u0430\u043f\u0443\u0449\u0435\u043d, \u043e\u0442\u043b\u0438\u0447\u043d\u043e. \u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u043e\u0442 \u043d\u0435\u0433\u043e: <code>(lldb)<\/code><\/p>\n<p>  \u041d\u0430\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0434\u043b\u044f \u0434\u0435\u0431\u0430\u0433\u0433\u0435\u0440\u0430:<br \/>  <i>\u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044b <code>(lldb)<\/code> \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u043b\u0438 \u043f\u0440\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438<\/i><\/p>\n<pre><code class=\"bash\">attach --name &quot;Meme Collector&quot; --waitfor <\/code><\/pre>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u0430 <code>attach<\/code> \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043f\u0440\u043e\u0441\u0438\u043c LLDB, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043f\u043e\u0434\u043e\u0436\u0434\u0430\u043b \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c &quot;<code>Meme&nbsp;Collector<\/code>&quot; \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043a \u043d\u0435\u043c\u0443.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0434\u0435\u0431\u0430\u0433\u0433\u0435\u0440 \u0436\u0434\u0451\u0442. \u041f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u0421\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443 iOS \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0435 (\u043f\u043e \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0443\u0440\u043e\u043a\u0430) \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0437 \u043c\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u0447\u043d\u043e\u0441\u0442\u0438, \u0438 \u0434\u0430\u043b\u0435\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a (\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0437 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430, \u043d\u0435 \u0438\u0437 IDE) \u2014 \u0434\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u00ab\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u00bb.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0441\u0451 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, LLDB \u043d\u0430\u0447\u043d\u0451\u0442 <s>\u0432\u043c\u0435\u0441\u0442\u0435&nbsp;\u0432\u0435\u0441\u0435\u043b\u043e&nbsp;\u0448\u0430\u0433\u0430\u0442\u044c<\/s> \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u0432 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435. \u041e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443, \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438 \u0441\u043a\u0430\u0436\u0435\u0442:<\/p>\n<pre><code class=\"bash\">Process 1427 stopped Executable module set to &quot;\/Users\/dmitriy\/Library\/Application Support\/iPhone Simulator\/7.0.3\/Applications\/9A72F266-8851-4A25-84E4-9CF8EFF95CD4\/Meme Collector.app\/Meme Collector&quot;. Architecture set to: i486-apple-macosx. <\/code><\/pre>\n<p>  \u0418 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b: <code>(lldb)<\/code><\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0442\u043e\u0447\u043a\u0443 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430 (breakpoint) \u043f\u0435\u0440\u0435\u0434 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u043a\u0430\u0436\u0434\u043e\u0433\u043e ViewController\u2019\u0430. \u042d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u043e \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0432\u0435\u0449\u0435\u0439. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0442\u0430\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0442\u043e\u0447\u043a\u0443 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430 <code>viewDidLoad<\/code>, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 iOS \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u044b <code>UIViewController<\/code>\u2019\u0430 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 <code>viewDidLoad<\/code>.<\/p>\n<p>  \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435:<\/p>\n<pre><code class=\"bash\">b viewDidLoad <\/code><\/pre>\n<p>  \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 <code>viewdidload<\/code> \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0451\u0442.<\/p>\n<p>  \u042d\u0442\u0438\u043c \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0442\u043e\u0447\u043a\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430 \u043d\u0430 \u0432\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f <code>viewDidLoad<\/code> (\u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043c\u0435\u0442\u043e\u0434\u044b C++ \u0438 Objective C). \u041f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438, \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u043e\u0432 ObjC \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0432\u0435\u0441\u0442\u0438 \u0438\u0445 \u0438\u043c\u0435\u043d\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>-[UIViewController viewDidLoad]<\/code>, \u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043b\u044f \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0430 <code>UIViewController<\/code>.<\/p>\n<p>  \u0418\u0442\u0430\u043a, LLDB \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043d\u0430\u043c, \u0447\u0442\u043e \u043e\u043d \u043d\u0430\u0448\u0451\u043b 15 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043c\u0435\u0441\u0442 \u0434\u043b\u044f \u0442\u043e\u0447\u0435\u043a \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430:<\/p>\n<pre><code class=\"bash\">Breakpoint 1: 15 locations. <\/code><\/pre>\n<p>  \u041e\u0442\u043b\u0438\u0447\u043d\u043e. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0443\u0434\u0430 \u043e\u043d \u0438\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b. \u0412\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">br l <\/code><\/pre>\n<p>  (\u042d\u0442\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 <code>breakpoint list<\/code> \u2014 \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b.)<\/p>\n<p>  \u041d\u0443 \u0438 \u0432\u043e\u0442 \u043e\u043d\u0438:<\/p>\n<pre><code class=\"bash\">Current breakpoints: 1: name = 'viewDidLoad', locations = 15, resolved = 15   1.1: where = Meme Collector`-[ViewController viewDidLoad] + 18 at ViewController.m:27, address = 0x0001f482, resolved, hit count = 0    1.2: where = UIKit`-[UIViewController viewDidLoad], address = 0x005d3db5, resolved, hit count = 0    1.3: where = UIKit`-[_UIModalItemsPresentingViewController viewDidLoad], address = 0x0065ab4b, resolved, hit count = 0    1.4: where = UIKit`-[UIKeyboardCandidateGridCollectionViewController viewDidLoad], address = 0x00680729, resolved, hit count = 0    1.5: where = UIKit`-[UIActivityGroupViewController viewDidLoad], address = 0x008d2b6b, resolved, hit count = 0    1.6: where = UIKit`-[UIPrintPanelTableViewController viewDidLoad], address = 0x009be80f, resolved, hit count = 0    1.7: where = UIKit`-[UIPrintStatusViewController viewDidLoad], address = 0x009c8828, resolved, hit count = 0    1.8: where = UIKit`-[UIPrintRangeViewController viewDidLoad], address = 0x009d29ae, resolved, hit count = 0    1.9: where = UIKit`-[_UILongDefinitionViewController viewDidLoad], address = 0x00a10cf4, resolved, hit count = 0    1.10: where = UIKit`-[_UINoDefinitionViewController viewDidLoad], address = 0x00a1249d, resolved, hit count = 0    1.11: where = UIKit`-[UIReferenceLibraryViewController viewDidLoad], address = 0x00a13bd4, resolved, hit count = 0    1.12: where = UIKit`-[_UIFallbackPresentationViewController viewDidLoad], address = 0x00a77877, resolved, hit count = 0    1.13: where = UIKit`-[_UIViewServiceViewControllerOperator viewDidLoad], address = 0x00aba23b, resolved, hit count = 0    1.14: where = UIKit`-[UIActivityViewController viewDidLoad], address = 0x00b4f296, resolved, hit count = 0    1.15: where = UIKit`-[_UITextEditingController viewDidLoad], address = 0x00b9a6ec, resolved, hit count = 0  <\/code><\/pre>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0442\u0443\u0442 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d breakpoint: <code>-[ViewController viewDidLoad]<\/code>, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 Apple Private API. \u041d\u043e \u043d\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0438\u0445 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c\u0438.<\/p>\n<p>  \u0412\u0435\u0440\u043d\u0451\u043c\u0441\u044f \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f! \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">c <\/code><\/pre>\n<p>  \u0447\u0442\u043e \u0432 \u043f\u043e\u043b\u043d\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a <code>continue<\/code>. \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 <code>viewDidLoad<\/code>:<\/p>\n<pre><code class=\"bash\">Process 1427 resuming Process 1427 stopped * thread #1: tid = 0x83c4, 0x0001f482 Meme Collector`-[ViewController viewDidLoad](self=0x08f7c620, _cmd=0x00c50587) + 18 at ViewController.m:27, queue = 'com.apple.main-thread, stop reason = breakpoint 1.1     frame #0: 0x0001f482 Meme Collector`-[ViewController viewDidLoad](self=0x08f7c620, _cmd=0x00c50587) + 18 at ViewController.m:27    24  \t    25  \t- (void)viewDidLoad    26  \t{ -&gt; 27  \t    [super viewDidLoad];    28  \t    self.memeDescriptionTextView.clipsToBounds = YES;    29  \t    self.memeDescriptionTextView.layer.cornerRadius = 20.0f;    30  \t    [self.moneyLabel sizeToFit]; <\/code><\/pre>\n<p>  \u00ab\u0410 \u0442\u0435\u043f\u0435-\u0435-\u0435\u0440\u044c\u2026 \u043f\u043e\u0440\u0430 \u043d\u0430\u043c \u043f\u043e\u0437\u0430\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f: \u0430 \u0442\u043e \u044f \u043d\u0435 \u0438\u0433\u0440\u0430\u044e!\u00bb<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/42b\/523\/71c\/42b52371c0261dd6a69dc5ce0a24e434.jpg\" title=\"\u041d\u0430\u0434\u043e\u0435\u043b\u0438 \u043c\u0435\u043c\u044b? \u0412\u043e\u0442 \u0432\u0430\u043c \u041a\u0430\u0440\u043b\u0441\u043e\u043d\"\/><\/p>\n<p>  \u041c\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430 \u043a\u0430\u0434\u0440\u0435 (frame) \u043a\u043b\u0430\u0441\u0441\u0430 <code>ViewController<\/code> (\u0444\u0430\u0439\u043b ViewController.m). \u0417\u043d\u0430\u0447\u0438\u0442, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 (instance variables) \u0438 \u043a \u043c\u0435\u0442\u043e\u0434\u0430\u043c. \u041a\u0440\u0443\u0442\u043e? \u0418 \u0435\u0449\u0451! \u0421\u0435\u043a\u0446\u0438\u044f \u043a\u043e\u0434\u0430 \u0443\u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043a\u043b\u0430\u0441\u0441\u0430\u043c, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u2014 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u2014 \u0441\u0438\u043d\u0433\u043b\u0442\u043e\u043d\u044b.<\/p>\n<p>  \u0414\u0430, \u0441\u0438\u043d\u0433\u043b\u0442\u043e\u043d\u044b. \u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u0443\u0447\u0438\u043b\u0438 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 <a href=\"http:\/\/habrahabr.ru\/post\/199128\/\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a>, \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u00ab\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439\u00bb \u043a\u043b\u0430\u0441\u0441 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <code>MoneyManager<\/code>. \u0423 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <code>purchaseCurrency<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0430\u043a \u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0430? \ud83d\ude42<\/p>\n<p>  \u041d\u0430\u0431\u0435\u0440\u0438\u0442\u0435 \u0432 \u043d\u0430\u0448\u0435\u043c <code>(lldb)<\/code>-\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435:<\/p>\n<pre><code class=\"bash\">call [[MoneyManager sharedManager] purchaseCurrency] <\/code><\/pre>\n<p>  \u041c\u044b \u0432\u044b\u0437\u0432\u0430\u043b\u0438 \u043c\u0435\u0442\u043e\u0434! \u041e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u0432\u044b\u0432\u0435\u0434\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"bash\">(BOOL) $0 = YES <\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u043c\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u043e\u0442\u0432\u0435\u0442 <code>YES<\/code> \u2014 \u0437\u043d\u0430\u0447\u0438\u0442, \u043c\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u00ab\u043f\u0440\u0438\u043e\u0431\u0440\u0435\u043b\u0438\u00bb \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0430\u043b\u044e\u0442\u0443. (\u0422\u0443\u0442 \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0431\u043e\u043b\u0442\u0430\u043b\u0441\u044f, \u044d\u0442\u043e \u0438\u043d\u0441\u0430\u0439\u0434\u0435\u0440\u0441\u043a\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f. \u041c\u044b \u2014 \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a\u0438 \u2014 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0435\u0451 \u0437\u043d\u0430\u0442\u044c. \u2014 <i>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440.<\/i>)<\/p>\n<p>  \u0410 \u0435\u0449\u0451 LLDB \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e Enter. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 Enter, \u0447\u0442\u043e\u0431\u044b \u0435\u0449\u0451 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0433\u0440\u0430\u0431\u0438\u0442\u044c <s>\u041c\u0438\u0445\u0430\u043b\u043a\u043e\u0432\u0430<\/s>:<\/p>\n<pre><code class=\"bash\">(lldb) call [[MoneyManager sharedManager] purchaseCurrency] (BOOL) $0 = YES (lldb)  (BOOL) $1 = YES (lldb)  (BOOL) $2 = YES (lldb)  (BOOL) $3 = YES (lldb)  (BOOL) $4 = YES (lldb)  (BOOL) $5 = YES (lldb)  (BOOL) $6 = YES (lldb)  (BOOL) $7 = YES (lldb)  <\/code><\/pre>\n<p>  \u041f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u0435 <s>\u0438 \u0442\u0430\u043a \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e<\/s> \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e \u0442\u0430\u043a\u0438\u043c \u043b\u0451\u0433\u043a\u0438\u043c! \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0430\u0440\u0443 \u0440\u0430\u0437 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<pre><code class=\"bash\">c <\/code><\/pre>\n<p>  \u2026\u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0438\u0441\u044c \u0432\u0441\u0435 breakpoint&#8217;\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043f\u043e\u043d\u0430\u0441\u0442\u0430\u0432\u0438\u043b\u0438, \u0438 \u043e\u0446\u0435\u043d\u0438\u0442\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/f98\/3da\/20f\/f983da20f7f0b0bd9b63a576966e5662.png\"\/><\/p>\n<p>  \u041d\u0435\u043f\u043b\u043e\u0445\u043e, \u0434\u0430? \u041d\u0443-\u043a\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441 \u044d\u0442\u0438\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0441\u043d\u043e\u0432\u0430 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u0441\u044c \u043d\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0438 \u0442\u0430\u043c \u043d\u0430\u0436\u043c\u0438\u0442\u0435 Ctrl+C. \u041e\u0442\u043b\u0430\u0434\u0447\u0438\u043a LLDB \u0441\u043d\u043e\u0432\u0430 \u0433\u043e\u0442\u043e\u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043d\u0430\u0448\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043a\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043c \u0441\u0435\u0430\u043d\u0441 \u043e\u0442\u043b\u0430\u0434\u043a\u0438: \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <b><code>q<\/code><\/b> \u0438 \u0437\u0430\u0442\u0435\u043c \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f <b><code>y<\/code><\/b>:<\/p>\n<pre><code class=\"bash\">(lldb) q Quitting LLDB will detach from one or more processes. Do you really want to proceed: [Y\/n] y <\/code><\/pre>\n<p>  \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u043f\u0435\u0440\u0435\u0445\u0438\u0442\u0440\u0438\u0442\u044c \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0445 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a?<\/p>\n<h2>\u0417\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 runtime-\u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439<\/h2>\n<p>  \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0435\u0441\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u0437\u043d\u0430\u0442\u044c, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043b\u0438 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u043a \u043d\u0430\u0448\u0435\u043c\u0443 \u043a\u043e\u0434\u0443! \u041d\u043e \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u042d\u0442\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043b\u0438 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u0432 \u0434\u0430\u043d\u043d\u043e\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u0425\u0430\u043a\u0435\u0440 (\u043a\u0440\u044d\u043a\u0435\u0440, \u0447\u0438\u0442\u0435\u0440, &#8230;) \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u043d\u0435 \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u0435\u0442 \u043e\u0431 \u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u042d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u043e \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u043c\u0435\u0440\u0435 \u0434\u0432\u0443\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438:<\/p>\n<ol>\n<li>\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0432 \u0446\u0438\u043a\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (run loop), \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e.  <\/li>\n<li>\u041f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0432 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0445 \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u0445 \u043a\u043e\u0434\u0430, \u0433\u0434\u0435 \u043d\u0430\u0441 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u043e\u043b\u043d\u0443\u0435\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c.  <\/li>\n<\/ol>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u0435\u043d. \u0415\u0433\u043e \u0446\u0435\u043d\u0430 \u2014 \u0442\u0440\u0430\u0442\u0430 \u0434\u0440\u0430\u0433\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 <s>\u043d\u0430&nbsp;\u043d\u0430\u0433\u0440\u0435\u0432&nbsp;\u0434\u0435\u0432\u0430\u0439\u0441\u0430<\/s>. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0439\u0434\u0451\u043c \u043f\u043e \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0443\u0442\u0438.<\/p>\n<p>  \u041e\u0434\u043d\u043e \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2014 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430 \u0432 \u0441\u0438\u043d\u0433\u043b\u0442\u043e\u043d\u0435 <code>MoneyManager<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u0435\u0441\u043b\u0438 \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0442\u043b\u0430\u0434\u043a\u0430, \u0442\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c <code>nil<\/code> \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Advanced Mode<\/b><\/p>\n<div class=\"spoiler_text\">\u0412 Objective C \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u0442.\u043a. \u043c\u0435\u0442\u043e\u0434\u044b \u0432 Objective C \u2014 \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0443\u0442\u0438 \u043d\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u0430 <a href=\"http:\/\/ru.wikipedia.org\/wiki\/Objective-C\">\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/a>. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430 \u2014 \u043e\u043d\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442, \u0442.\u0435. \u043a\u043e\u0434 \u043d\u0435 \u043f\u0430\u0434\u0430\u0435\u0442.  <\/div>\n<\/div>\n<p>  \u041d\u0443 \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e, \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043a\u043e\u0434\u043e\u043c! \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442 (\u0432 \u0432\u0430\u0448\u0435\u0439 \u043b\u044e\u0431\u0438\u043c\u043e\u0439 IDE \u0438\u043b\u0438 \u0432 Xcode) \u0438 \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043a \u0444\u0430\u0439\u043b\u0443 MoneyManager.m. \u0412\u043e\u0442 \u0447\u0442\u043e \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c: \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043c\u0430\u043a\u0440\u043e\u0441 \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442, \u0432 \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0431\u0440\u0430\u043d\u043e \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0438 \u0435\u0441\u043b\u0438 \u044d\u0442\u043e Release, \u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442, \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043b\u0438 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a. \u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0443\u0449\u0435\u043d, \u0432\u0435\u0440\u043d\u0451\u0442 <code>nil<\/code>. \u0418\u043d\u0430\u0447\u0435 \u0432\u0441\u0451 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e.<\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 3 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u043c\u0435\u0442\u043e\u0434\u0430 <code>sharedManager<\/code> \u043a\u043b\u0430\u0441\u0441\u0430 <code>MoneyManager<\/code>:<\/p>\n<pre><code class=\"cpp\">#ifndef DEBUG     SEC_IS_BEING_DEBUGGED_RETURN_NIL(); #endif <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u0435\u0442\u043e\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/474\/420\/b86\/474420b860a06d62fb5286c189e38634.png\"\/><\/p>\n<p>  <code>SEC_IS_BEING_DEBUGGED_RETURN_NIL()<\/code> \u2014 \u044d\u0442\u043e \u0432\u044b\u0437\u043e\u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043c\u0430\u043a\u0440\u043e\u0441\u0430 \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>nil<\/code>, \u0435\u0441\u043b\u0438 \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a.<\/p>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u044d\u0442\u043e\u0442 \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Release. \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043b\u0435\u0434\u0438\u043b\u0438 \u0437\u0430 \u043d\u0430\u043c\u0438 \u0432 \u0447\u0430\u0441\u0442\u0438 \u043f\u0435\u0440\u0432\u043e\u0439, \u0432\u044b \u0443\u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u043b\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0435\u043b\u0438\u0437.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">(\u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0430\u043f\u043e\u043c\u043d\u044e)<\/b><\/p>\n<div class=\"spoiler_text\">Xcode: <b>Product &gt; Scheme &gt; Edit&nbsp;scheme\u2026<\/b> (<b>\u2318&lt;<\/b>) \u2014 \u0441\u043b\u0435\u0432\u0430 \u0432\u044b\u0431\u0440\u0430\u0442\u044c Run\u2026, \u0441\u043f\u0440\u0430\u0432\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0430 Info &gt; Build&nbsp;Configuration: Release.<\/p>\n<p>  AppCode: <b>Run &gt; Edit&nbsp;configurations\u2026<\/b> &gt; Configuration: Release.<\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Advanced Mode<\/b><\/p>\n<div class=\"spoiler_text\">\u041a\u0442\u043e-\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c ObjC-\u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0421\u0438-\u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432\u043c\u0435\u0441\u0442\u043e \u043c\u0430\u043a\u0440\u043e\u0441\u0430 \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. \u041d\u043e! \u0415\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u043a\u0440\u043e\u0441. \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0443\u0436\u0435 \u0443\u0437\u043d\u0430\u043b\u0438, \u0447\u0442\u043e \u043b\u044e\u0431\u043e\u0439 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u043c\u0435\u043d\u0430 \u0432\u0441\u0435\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 (\u0437\u0430\u0431\u0435\u0433\u0430\u044f \u0432\u043f\u0435\u0440\u0451\u0434: \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435) \u2014 \u0437\u043d\u0430\u044f \u044d\u0442\u043e, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0441\u043f\u0440\u044f\u0442\u0430\u0442\u044c \u043d\u0430\u0448\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0434\u0435\u0441\u044c, \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 \u0441\u0438\u043d\u0433\u043b\u0442\u043e\u043d\u0430). \u0412 \u043e\u0431\u0449\u0435\u043c, \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0442\u0440\u0443\u0434\u043d\u0435\u0435 \u043d\u0430\u0439\u0442\u0438 \u0438 \u043f\u0440\u043e\u043f\u0430\u0442\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u0430, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f \u0432 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435.<\/div>\n<\/div>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0437 IDE (\u043d\u0435 \u0437\u0430\u0431\u044b\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e Release?)<\/p>\n<p>  Xcode: <b>Run<\/b> (\u2318R)<br \/>  AppCode: <b>Debug<\/b> (Ctrl+D)<\/p>\n<p>  Xcode \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a LLDB \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b Run. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043d\u0430 \u0441\u0447\u0451\u0442\u0435 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f! \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0433\u0434\u0435-\u0442\u043e \u0442\u0430\u043c <code>nil<\/code>:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/d41\/1d4\/ec5\/d411d4ec556e084f209c51cb32546313.png\"\/><\/p>\n<p>  \u0410 \u0432 AppCode \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u0432\u0435 \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b: \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <b>Run<\/b> \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a, \u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <b>Debug<\/b> \u2014 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442. \u0423\u0434\u043e\u0431\u043d\u043e.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0430\u0448\u0430 \u0437\u0430\u0449\u0438\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435: \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438 \u0432\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u043a\u0443\u043f\u0438\u0442\u044c \u0447\u0442\u043e-\u0442\u043e? <code>MoneyManager<\/code> \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u2014 \u0437\u043d\u0430\u0447\u0438\u0442, \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435.<\/p>\n<p>  \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043d\u0430\u0436\u0430\u0432 \u0432 IDE \u043a\u043d\u043e\u043f\u043a\u0443 <b>Stop<\/b> (\u0441 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u043c). \u0422\u0430\u043a\u0436\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0434\u0435\u0431\u0430\u0433\u0433\u0435\u0440 LLDB. \u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u0441\u044c \u043d\u0430 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u0442\u0443\u0434\u0430. \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442 \u0432\u0430\u043b\u044e\u0442\u0443, \u0442.\u043a. \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d.<\/p>\n<p>  \u041a\u0430\u043a \u043c\u044b \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435, \u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435:<\/p>\n<pre><code class=\"bash\">ps aux | grep &quot;Meme Collector&quot; <\/code><\/pre>\n<p>  \u0412\u044b\u0432\u043e\u0434 \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u0432 \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0444\u0440\u0430\u0437\u0430 \u00abMeme Collector\u00bb:<\/p>\n<pre><code class=\"bash\">dmitriy          2008   0,0  0,0  2432784    636 s001  S+    1:05     0:00.00 grep Meme Collector dmitriy          2001   0,0  0,4   857416  32240   ??  S     1:04     0:00.65 \/Users\/dmitriy\/Library\/Application Support\/iPhone Simulator\/7.0.3\/Applications\/9A72F266-8851-4A25-84E4-9CF8EFF95CD4\/Meme Collector.app\/Meme Collector <\/code><\/pre>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u0432\u0442\u043e\u0440\u0430\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0430\u043f\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 (\u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446). \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e 2001.<\/p>\n<p>  \u0418\u0437 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c LLDB \u0441 \u043a\u043b\u044e\u0447\u043e\u043c <code>-p<\/code>, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443 \u043f\u043e \u043d\u043e\u043c\u0435\u0440\u0443:<\/p>\n<pre><code class=\"bash\">lldb -p {\u0432\u0430\u0448 \u043d\u043e\u043c\u0435\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430} <\/code><\/pre>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0431\u0440\u0430\u0442\u044c \u00ablldb -p 2001\u00bb.<\/p>\n<p>  LLDB \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u0438 \u0441\u043e\u043e\u0431\u0449\u0438\u0442 \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443:<\/p>\n<pre><code class=\"bash\">Attaching to process with:     process attach -p 2001 Process 2001 stopped Executable module set to &quot;\/Users\/dmitriy\/Library\/Application Support\/iPhone Simulator\/7.0.3\/Applications\/9A72F266-8851-4A25-84E4-9CF8EFF95CD4\/Meme Collector.app\/Meme Collector&quot;. Architecture set to: i486-apple-macosx. <\/code><\/pre>\n<p>  \u041a\u043e\u0433\u0434\u0430 LLDB \u0437\u0430\u043f\u0443\u0449\u0435\u043d, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0438\u043d\u0433\u043b\u0442\u043e\u043d\u0443 <code>MoneyManager<\/code>:<\/p>\n<pre><code class=\"bash\">call [[MoneyManager sharedManager] purchaseCurrency] <\/code><\/pre>\n<p>  \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u00ab\u043a\u0443\u043f\u0438\u0442\u044c\u00bb \u0432\u0430\u043b\u044e\u0442\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>NO<\/code>, \u0442\u043e \u0435\u0441\u0442\u044c, \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442.<\/p>\n<p>  \u0410 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <code>sharedManager<\/code>. \u041d\u0430\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">po [MoneyManager sharedManager] <\/code><\/pre>\n<p>  \u0418 \u0447\u0442\u043e \u0436\u0435 \u0432 \u044d\u0442\u043e\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438?<\/p>\n<pre><code class=\"bash\"> nil <\/code><\/pre>\n<p>  \u0427\u0435\u0433\u043e \u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f! \u041d\u0430\u0448 \u0441\u0438\u043d\u0433\u043b\u0442\u043e\u043d \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0445\u043e\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0432\u0440\u0430\u0437\u0443\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u043e\u043a\u0443\u043f\u043a\u0438. \u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a\u0443 <code>nil<\/code>.<\/p>\n<p>  \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"bash\">c <\/code><\/pre>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043b\u0435\u0433\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0441\u0447\u0451\u0442 \u043f\u043e \u043a\u043d\u043e\u043f\u043a\u0435 \u00abPurchase Currency\u00bb. \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u044b\u0439\u0434\u0435\u0442! \u0412\u0435\u0434\u044c LLDB \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/ab3\/f18\/22a\/ab3f1822a6c2e58e9e215839f5597f7a.png\"\/><\/p>\n<p>  \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430: \u043d\u0430\u0436\u0430\u0442\u044c <b>Ctrl+C<\/b> \u0438 \u0437\u0430\u0442\u0435\u043c \u0432\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <b>q<\/b>. \u041a\u043d\u043e\u043f\u043a\u0430 \u00abPurchase Currency\u00bb \u0441\u043d\u043e\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  \u0412 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0436\u0451\u0441\u0442\u043a\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434. \u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>ptrace<\/code> \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 <s>\u043f\u043e&nbsp;\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438<\/s> \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e GDB \/ LLDB \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e.<\/p>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u0432 IDE \u0438 \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 <b>main.m<\/b>. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043e\u0434\u0438\u043d \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"cpp\">#include &lt;sys\/ptrace.h&gt; <\/code><\/pre>\n<p>  \u0418 \u0442\u0440\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>main<\/code>:<\/p>\n<pre><code class=\"cpp\">#ifndef DEBUG     ptrace(PT_DENY_ATTACH, 0, 0, 0); #endif <\/code><\/pre>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>ptrace<\/code> \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u044e\u0442 \u2014 \u043a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0435\u043b\u0438 \u2014 GDB \u0438 LLDB. \u041c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u044b\u0437\u043e\u0432 <code>ptrace<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <code>PT_DENY_ATTACH<\/code> \u043f\u0440\u043e\u0441\u0438\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c (\u0442\u043e \u0435\u0441\u0442\u044c, \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430\u043c) \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u043d\u0430\u0448\u0435\u043c\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0437 IDE.<\/p>\n<p>  <b>Xcode<\/b>: \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f. \u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442? \u041c\u044b \u0432\u0438\u0434\u0438\u043c \u043d\u0430 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u0447\u0451\u0440\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0443\u0442 \u0436\u0435 \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442 \u2014 \u044d\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c Xcode \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u043d\u0435\u043c\u0443 LLDB, \u043d\u043e iOS \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430. \u00ab\u0420\u0430\u0437 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d, \u2014 \u0434\u0443\u043c\u0430\u0435\u0442 Xcode, \u2014 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u044e-\u043a\u0430 \u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u00bb. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0444\u0440\u0430\u0437\u0430 \u0437\u0432\u0443\u0447\u0438\u0442 \u0434\u0438\u043a\u043e, \u043d\u043e \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a.<i> \u2014 \u041f\u0440\u0438\u043c. \u043f\u0435\u0440.<\/i><\/p>\n<p>  <b>AppCode<\/b>: \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 <b>Run<\/b> (\u2318R) \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f, \u0430 \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 <b>Debug<\/b> (Ctrl+D) \u00ab\u043f\u0430\u0434\u0430\u0435\u0442\u00bb \u043f\u043e\u0434\u043e\u0431\u043d\u043e Xcode.<\/p>\n<p>  \u0418 \u0438\u0437 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u043d\u0435\u043c\u0443 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a, \u043a\u0430\u043a \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435:<\/p>\n<pre><code class=\"bash\">lldb -p {\u043d\u043e\u043c\u0435\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 Meme Collector} <\/code><\/pre>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u2014 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u0439:<\/p>\n<pre><code class=\"bash\">Attaching to process with:     process attach -p 3435 error: attach failed: process did not stop (no such process or permission problem?) <\/code><\/pre>\n<p>  \u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0434\u0435\u0442\u0435\u0439, \u043d\u0430\u0447\u0438\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0445\u0430\u0431\u0440\u0430, \u043e\u0442 \u0438\u0433\u0440 \u0441 \u0432\u0430\u0448\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0431\u043e\u0440\u043e\u0434\u0430\u0442\u044b\u0445 \u0445\u0430\u043a\u0435\u0440\u043e\u0432. \u041e\u043d\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442 \u0432\u0430\u0448 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>ptrace<\/code> \u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044e\u0442 \u0435\u0451 \u043f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/84b\/18a\/343\/84b18a34389f79ff1bf3e3b1edec04e9.png\"\/><\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u043d\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435 \u0441\u0435\u0431\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e. \u0425\u0430\u043a\u0435\u0440\u044b \u043b\u044e\u0431\u044f\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"http:\/\/www.cycript.org\/\">Cycript<\/a> \u2014 \u044f\u0437\u044b\u043a \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 (\u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0438\u0439 JavaScript) \u2014 \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u043d\u0430\u0434 ObjC-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u0417\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0434\u0435\u0431\u0430\u0433\u0433\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438, \u043d\u0435 \u0437\u0430\u0449\u0438\u0442\u0438\u0442 \u0432\u0430\u0441 \u043e\u0442 Cycript. \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u0441 \u0447\u0435\u0433\u043e \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435:  <\/p>\n<blockquote><p><b>\u041d\u0438 \u043e\u0434\u043d\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c!<\/b>  <\/p><\/blockquote>\n<p>  <\/p>\n<h2>\u041f\u0440\u0435\u043f\u0430\u0440\u0438\u0440\u0443\u0435\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a<\/h2>\n<p>  \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u044b\u044f\u0441\u043d\u0438\u043c, \u043a\u0430\u043a \u0435\u0433\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043d\u0430 \u0447\u0430\u0441\u0442\u0438, \u0438 \u0447\u0442\u043e \u043a \u0447\u0435\u043c\u0443.<\/p>\n<p>  \u042f \u0431\u0443\u0434\u0443 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0441\u044b\u043b\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0435 \u0434\u043b\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043f\u043e\u043d\u044f\u0442\u0438\u0439. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435 \u0442\u0430\u043a\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430, \u043a\u0430\u043a \u0443 \u043c\u0435\u043d\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u0430\u044f \u0441 \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u043e\u0439 Xcode), \u043b\u0438\u0431\u043e \u0432\u044b \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e Debug \u0432\u043c\u0435\u0441\u0442\u043e Release, \u043b\u0438\u0431\u043e \u0441\u0430\u043c\u0438 \u0432\u043d\u043e\u0441\u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u2014 \u0430\u0434\u0440\u0435\u0441\u0430 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u043c\u0438. \u041f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0432\u0430\u0441 \u043d\u0435 \u0441\u043c\u0443\u0449\u0430\u0435\u0442 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u0438\u0434\u0435\u044e.<\/p>\n<p>  \u0424\u043e\u0440\u043c\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 OS X \u0438 iOS \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <b>Mach-O<\/b>. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 <b>\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430<\/b> (header), \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043e \u0432\u0441\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u043c, \u0433\u0434\u0435 \u0438 \u043a\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0435\u0441\u0442\u044c \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0435. \u0417\u0430 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0442 <b>\u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438<\/b> (load commands), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443\u0442 \u0432\u0430\u043c \u043e \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0435 \u0444\u0430\u0439\u043b\u0430 \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u043b\u0430\u0433\u0438: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u044b \u043b\u0438 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435.<\/p>\n<p>  \u0412 \u043a\u0430\u0436\u0434\u043e\u043c <b>\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435<\/b> (segment) \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e <b>\u0441\u0435\u043a\u0446\u0438\u0439<\/b> (sections). \u0414\u0432\u0430 \u0432\u0438\u0434\u0430 \u0441\u0435\u043a\u0446\u0438\u0439 \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c:<\/p>\n<ul>\n<li><b>\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0441\u0435\u043a\u0446\u0438\u044f<\/b>. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f (read-only). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u0421\u0438-\u0441\u0442\u0440\u043e\u043a\u0438, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438 \u0442.\u0434. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c read-only \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c, \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u0438 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c (\u0435\u0441\u043b\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f) \u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u0437 \u0444\u0430\u0439\u043b\u0430.  <\/li>\n<li><b>\u0421\u0435\u043a\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/b>. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u043b\u044f \u0442\u0435\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438\u0437 \u043a\u043e\u0434\u0430. \u041e\u043d\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0432 \u0441\u0435\u0431\u044f BSS-\u0441\u0435\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, common-\u0441\u0435\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Data_segment\">\u0438 \u0442.\u0434.<\/a>  <\/li>\n<\/ul>\n<p>  \u0410 \u0435\u0449\u0451 \u0443 Apple \u0435\u0441\u0442\u044c <a href=\"https:\/\/developer.apple.com\/library\/mac\/documentation\/DeveloperTools\/Conceptual\/MachORuntime\/Reference\/reference.html\">\u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a \u043f\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0443 Mach-O<\/a> \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c. <i> \u2014 \u041f\u0440\u0438\u043c. \u043f\u0435\u0440.<\/i><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <code>Meme Collector<\/code>, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0441\u0451 \u044d\u0442\u043e \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438. \u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430. \u0412 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435, \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u0432 \u043f\u0430\u043f\u043a\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0431\u0430\u043d\u0434\u043b\u0430 \u00abMeme Collector.app\u00bb, \u0432\u0432\u0435\u0434\u0438\u0442\u0435:<\/p>\n<pre><code class=\"bash\">otool -h &quot;Meme Collector&quot; <\/code><\/pre>\n<p>  \u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u00abMeme Collector\u00bb. \u041f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">Meme Collector: Mach header       magic cputype cpusubtype  caps    filetype ncmds sizeofcmds      flags  0xfeedface       7          3  0x00          2    25       3372 0x01000085 <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Advanced Mode<\/b><\/p>\n<div class=\"spoiler_text\">0xfeedface (0xFEEDFACE) \u2014 \u044d\u0442\u043e \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0438\u0440\u0438\u0447\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0438\u043b\u0438\u2026 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0444\u0440\u0430\u0437\u0430 \u043f\u043e-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438, \u0432\u0430\u043c \u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f? \u041e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 <a href=\"http:\/\/ru.wikipedia.org\/wiki\/Hexspeak\">\u0412\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u044f<\/a>. <i> \u2014 \u041f\u0440\u0438\u043c. \u043f\u0435\u0440.<\/i>  <\/div>\n<\/div>\n<p>  \u0417\u0430\u043c\u0435\u0442\u0438\u043c: \u0444\u0430\u0439\u043b \u0438\u043c\u0435\u0435\u0442 25 \u043a\u043e\u043c\u0430\u043d\u0434 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 (<code>cmds<\/code>), \u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043e\u043d\u0438 3372 \u0431\u0430\u0439\u0442 (<code>sizeofcmds<\/code>). \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u044d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<pre><code class=\"bash\">otool -l &quot;Meme Collector&quot; <\/code><\/pre>\n<p>  (\u041f\u0435\u0440\u0435\u0434 \u044d\u0442\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u043e\u043a\u043d\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430, \u043d\u0430\u0436\u0430\u0432 \u2318K. \u0422\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u043b\u0438\u0441\u0442\u0430\u0442\u044c. \u2014 <i>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440.<\/i>)<\/p>\n<p>  \u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u043c\u043d\u043e\u0433\u043e-\u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0440\u043e\u043a. \u0418\u0437 \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u043e\u043a (\u0434\u0430\u0436\u0435 \u0431\u0435\u0437 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438) \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0441\u0435\u043a\u0446\u0438\u0439 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c. \u041d\u043e \u044d\u0442\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430, \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0435\u0433\u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u043c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0430 <a href=\"http:\/\/lists.apple.com\/archives\/xcode-users\/2008\/Aug\/msg00503.html\">\u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0435<\/a> \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u0410 \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u043d\u0430\u0448 \u0443\u0440\u043e\u043a. \u041d\u0430\u0439\u0434\u0438\u0442\u0435 (<b>\u2318F<\/b>) \u0441\u0435\u043a\u0446\u0438\u044e \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <code>__objc_classname<\/code>, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 <code>offset<\/code> \u2014 \u044d\u0442\u043e \u00ab\u043f\u043e\u0437\u0438\u0446\u0438\u044f\u00bb \u0438\u043b\u0438 \u00ab\u0441\u0434\u0432\u0438\u0433\u00bb \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u043e\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Advanced Mode<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u0440\u043e <code>offset<\/code>. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0435, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u0443\u0436\u0435 \u043f\u043e\u043d\u044f\u043b\u0438 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 <code>addr<\/code> \u0438 <code>offset<\/code>, \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u0430 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0432\u0435\u0437\u0434\u0435 \u0440\u0430\u0432\u043d\u0430 0x1000 = 4096 \u0431\u0430\u0439\u0442? \u0415\u0441\u043b\u0438 \u0435\u0449\u0451 \u043d\u0435\u0442, \u0442\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 <a href=\"https:\/\/developer.apple.com\/library\/mac\/documentation\/DeveloperTools\/Conceptual\/MachORuntime\/Reference\/reference.html\">\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/a> \u043f\u0440\u043e <code>__PAGEZERO<\/code>, \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430.<\/div>\n<\/div>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0441\u0434\u0432\u0438\u0433 \u0441\u0435\u043a\u0446\u0438\u0438 <code>__objc_classname<\/code> \u0440\u0430\u0432\u0435\u043d 159942 \u0431\u0430\u0439\u0442 (\u0432 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438). \u041d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u043d\u0438\u0436\u0435, \u0432 \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u2014 \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u043d\u0443\u0442\u043e \u043a\u0440\u0430\u0441\u043d\u044b\u043c.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b. \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043d\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 (<b>\u2318N<\/b>) \u0438 \u0438\u0437 \u0442\u043e\u0439 \u0436\u0435 \u043f\u0430\u043f\u043a\u0438 \u00abMeme&nbsp;Collector.app\u00bb \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435:<\/p>\n<pre><code class=\"bash\">strings -o &quot;Meme Collector&quot; <\/code><\/pre>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u0430 <code>strings<\/code> \u0438\u0449\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435, \u0430 \u0444\u043b\u0430\u0433 <code>-o<\/code> \u043d\u0430\u043f\u0438\u0448\u0435\u0442 \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0435\u0451 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<p>  \u041d\u0443-\u043a\u0430, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 159942? \u0418\u043c\u0435\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u043e\u0432! (\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u043a\u0440\u0430\u0441\u043d\u044b\u043c.) \u041b\u043e\u0433\u0438\u0447\u043d\u043e, \u043c\u044b \u0436\u0435 \u0438\u0441\u043a\u0430\u043b\u0438 \u0441\u0435\u043a\u0446\u0438\u044e <code>__objc_classname<\/code>:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/672\/a12\/884\/672a128844df847cb1d4242bf3bf3602.png\"\/><\/p>\n<p>  \u041d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430\u0434 \u044d\u0442\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0435\u0439 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0441\u0435\u043a\u0446\u0438\u044e <code>__objc_methname<\/code>, \u043e\u043d\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 140887 \u2014 \u0437\u0434\u0435\u0441\u044c \u0443 \u043d\u0430\u0441 \u0438\u043c\u0435\u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 (\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u0441\u0438\u043d\u0438\u043c), \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043c\u0435\u0442\u043e\u0434\u0430 <code>init<\/code>.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Advanced Mode<\/b><\/p>\n<div class=\"spoiler_text\">\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043f\u043e\u0447\u0435\u043c\u0443 \u043c\u0435\u0442\u043e\u0434 <code>init<\/code> \u0438\u0434\u0451\u0442 \u043f\u0435\u0440\u0432\u044b\u043c?  <\/div>\n<\/div>\n<p>  \u0422\u0430\u043c, \u0433\u0434\u0435 \u0438\u043c\u0435\u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f, \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u043e\u0432. \u0421\u0435\u043a\u0446\u0438\u044f <code>__objc_classname<\/code> \u0438\u0434\u0451\u0442 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0441\u0435\u043a\u0446\u0438\u0438 <code>__objc_methname<\/code>. \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043e\u043d\u0438 \u0448\u043b\u0438 \u0434\u0440\u0443\u0433 \u0437\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u2014 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u043a\u0430\u043a \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 (load commands) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0442\u044c \u0442\u043e\u0442 \u0445\u0430\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0444\u0430\u0439\u043b Mach-O. \u0421 \u044d\u0442\u0438\u043c \u0437\u043d\u0430\u043d\u0438\u0435\u043c \u043c\u044b \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c\u2026 \u0442\u0430\u0434\u0430\u0430\u0430\u043c! \u043a \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0435\u043a\u0446\u0438\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<h2>\u0422\u044f\u0436\u0451\u043b\u0430\u044f \u0430\u0440\u0442\u0438\u043b\u043b\u0435\u0440\u0438\u044f: \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0438 \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433<\/h2>\n<p>  \u0412\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0445\u043e\u0434 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0435 \u043f\u0443\u0448\u043a\u0438? \u041d\u0430\u043a\u043e\u043d\u0435\u0446 \u043c\u044b \u0443\u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f!<\/p>\n<p>  \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0432\u044b \u0447\u0430\u0441\u0442\u043e \u0441\u043b\u044b\u0448\u0438\u0442\u0435 \u0432 \u0436\u0438\u0437\u043d\u0438 \u0444\u0440\u0430\u0437\u0443: \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u00ab\u0432\u0437\u043b\u043e\u043c\u0430\u043d\u043e\u00bb. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u043a\u0442\u043e-\u0442\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u0430\u043a, \u0447\u0442\u043e \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u2026 \u043c\u043c\u043c\u2026 \u0438\u043d\u0430\u0447\u0435, \u0447\u0435\u043c \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435 \u043f\u0440\u043e\u0441\u0438\u0442 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b (\u0430\u0432\u0442\u043e\u0440 \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a) \u0438\u0441\u043a\u0440\u0435\u043d\u043d\u0435 \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u043d\u0430\u0448 \u0442\u0440\u0443\u0434 \u043f\u043e\u0441\u043b\u0443\u0436\u0438\u0442 \u0432\u0430\u043c \u0432\u043e \u0431\u043b\u0430\u0433\u043e. <b>\u0422\u043e\u043b\u044c\u043a\u043e<\/b> \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u0421\u043a\u0430\u0447\u0430\u0439\u0442\u0435 <a href=\"https:\/\/www.hex-rays.com\/products\/ida\/support\/download_demo.shtml\">IDA Demo<\/a> \u0438 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c HEX-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"http:\/\/ridiculousfish.com\/hexfiend\/\">Hex Fiend<\/a>. IDA \u2014 \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0445\u0430\u043a\u0435\u0440\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432. \u042d\u0442\u043e \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043c\u043e\u0449\u043d\u044b\u0439 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440, \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u0438 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440. \u0418 \u043f\u043e\u043b\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0441\u0442\u043e\u0438\u0442 \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u0434\u043e\u0440\u043e\u0433\u043e.<\/p>\n<p>  \u041d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0435\u0449\u0451 \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u044b \u043a\u0443\u043f\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u0441\u043b\u044b\u0448\u0430\u043b\u0438 15 \u0441\u0435\u043a\u0443\u043d\u0434 \u043d\u0430\u0437\u0430\u0434, IDA \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u043c. \u0412 \u0434\u0435\u043c\u043e-\u0432\u0435\u0440\u0441\u0438\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b \u0442\u0438\u043f\u044b \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0432 \u043d\u0451\u043c \u0438\u0437\u0443\u0447\u0430\u0442\u044c. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<p>  \u041d\u043e \u0432 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u043d\u0430\u0448 \u0442\u0438\u043f \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 x86. \u0410 \u0432\u0441\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u2014 Hex Fiend.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Advanced Mode<\/b><\/p>\n<div class=\"spoiler_text\">\u00ab\u0422\u0438\u043f \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430\u2026 \u043a\u0430\u043a \u044d\u0442\u043e x86? \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 ARM?\u00bb \u2014 \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u0432\u044b. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f ARM-\u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u043c. \u041d\u043e \u0434\u043b\u044f \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u043e\u0434 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 x86. \u041a\u043e\u0434, \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b, \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439.<\/div>\n<\/div>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 IDA. \u041d\u0430\u0441 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0410\u0434\u0430 \u041b\u0430\u0432\u043b\u0435\u0439\u0441 (Ada Lovelace) \u2014 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432 \u043c\u0438\u0440\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442:<br \/>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/4ea\/ecb\/0a5\/4eaecb0a5374593a830dfae10f215520.png\"\/><br \/>  \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 <b>Go<\/b>. \u0412 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u043c\u044b (\u0434\u0430-\u0434\u0430) \u0432\u0441\u0451 \u0435\u0449\u0451 \u043d\u0430\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 \u0431\u0430\u043d\u0434\u043b\u0430 (<code>Meme Collector.app<\/code>). \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0432 Finder&#8217;\u0435:<\/p>\n<pre><code class=\"bash\">open -R . <\/code><\/pre>\n<p>  \u041d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043f\u0440\u043e \u0442\u043e\u0447\u043a\u0443 \u0432 \u043a\u043e\u043d\u0446\u0435. \u0421\u0438\u043c\u0432\u043e\u043b \u0442\u043e\u0447\u043a\u0438 \u0437\u0434\u0435\u0441\u044c \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u00ab\u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043f\u0430\u043f\u043a\u0443\u00bb.<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0432 \u043e\u0442\u043a\u0440\u044b\u0432\u0448\u0435\u043c\u0441\u044f \u043e\u043a\u043d\u0435 Finder: \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 &gt; <b>\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043f\u0430\u043a\u0435\u0442\u0430<\/b>:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/f6e\/396\/ee5\/f6e396ee537645e59580e64c4affca6b.png\"\/><\/p>\n<p>  (OS Mavericks \u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0431\u0430\u043d\u0434\u043b (bundle) \u00ab\u043f\u0430\u043a\u0435\u0442\u043e\u043c\u00bb, \u043d\u043e \u043c\u043d\u0435 \u044d\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u044b\u043c. <i> \u2014 \u041f\u0440\u0438\u043c. \u043f\u0435\u0440.<\/i>)<\/p>\n<p>  \u0412\u043d\u0443\u0442\u0440\u0438 \u0431\u0430\u043d\u0434\u043b\u0430-\u043f\u0430\u043a\u0435\u0442\u0430 \u0432\u044b \u043d\u0430\u0439\u0434\u0451\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b <code>Meme Collector<\/code>, \u043f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u043c \u0435\u0433\u043e \u0432 \u043e\u043a\u043d\u043e IDA \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/5b5\/09f\/172\/5b509f172790d9e67ca66e636594ca3a.png\"\/><\/p>\n<p>  \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, IDA \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b i386.<\/p>\n<p>  \u0412\u0430\u0448\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043c, \u0447\u0442\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b \u0432\u044b\u0448\u0435 (\u0434\u0443\u043c\u0430\u044e, \u0432\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043d\u0438\u0447\u0435\u0433\u043e \u043c\u0435\u043d\u044f\u0442\u044c) \u2014 \u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0439\u0442\u0435 <s>\u00ab\u041f\u043e\u0435\u0445\u0430\u043b\u0438!\u00bb<\/s> OK. \u0414\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u0442 \u0444\u0430\u0439\u043b \u043f\u043e \u043c\u0435\u043b\u043a\u0438\u043c \u043a\u0443\u0441\u043e\u0447\u043a\u0430\u043c \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0435\u0433\u043e \u0441\u0445\u0435\u043c\u0443 (mapping) \u2014 \u0442\u043e, \u0447\u0435\u043c \u043c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u044c \u0432\u044b\u0448\u0435, \u043d\u043e\u2026 \u043a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c\u2026 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e. \ud83d\ude42<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u00abObjective-C 2.0 structures detected. Do you want to parse them and rename methods?\u00bb \u2014 \u043e\u0442\u0432\u0435\u0447\u0430\u0439\u0442\u0435 Yes. \u0415\u0441\u043b\u0438 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e \u00abproximity view\u00bb, \u043e\u0442\u0432\u0435\u0447\u0430\u0439\u0442\u0435 No.<\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 IDA \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u0432\u044b <s>\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043f\u0440\u0438\u0434\u0451\u0442\u0435 \u0432 \u0448\u043e\u043a<\/s> \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d. \u0415\u0441\u043b\u0438 \u043e\u043a\u043d\u043e IDA \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043d\u0438\u0436\u0435, \u0442\u043e \u0432 \u043b\u0435\u0432\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u043d\u0430\u0439\u0434\u0438\u0442\u0435 \u0438\u043c\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>start<\/code>, \u0449\u0451\u043b\u043a\u043d\u0438\u0442\u0435 \u043d\u0430 \u043d\u0451\u043c \u0438 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0436\u0438\u043c\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0431\u0435\u043b \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u043a\u0440\u0430\u0441\u0438\u0432\u0443\u044e \u0431\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0443:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/e07\/e4d\/ed9\/e07e4ded9902675bd32745ec1bc6c948.png\"\/><br \/>  (\u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0431\u0435\u043b\u0430, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0435\u0449\u0451 Enter \u043d\u0430\u0436\u0430\u0442\u044c \u0440\u0430\u0437-\u0434\u0440\u0443\u0433\u043e\u0439. \u041d\u0443 \u0432\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043a \u0447\u0435\u043c\u0443. <i> \u2014 \u041f\u0440\u0438\u043c. \u043f\u0435\u0440.<\/i>)<\/p>\n<p>  \u0418 \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 Xcode \u0438\u043b\u0438 AppCode. \u0412 \u0446\u0435\u043b\u044f\u0445 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043c\u044b \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u043f\u043e\u0434\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u043a\u043e\u0434.<\/p>\n<p>  \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 <b>MoneyManager.m<\/b> \u0438 \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434 <code>buyObject:<\/code><\/p>\n<pre><code class=\"cpp\">- (BOOL)buyObject:(id&lt;PurchasableItemProtocol&gt;)object {     NSUInteger totalMoney = self.money.unsignedIntegerValue;     NSUInteger cost = [object cost].unsignedIntegerValue;          if (totalMoney &lt; cost) {         return NO;     }          _money = @(totalMoney - cost);          return [self saveState]; } <\/code><\/pre>\n<p>  \u0418\u0437\u0443\u0447\u0438\u0442\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043e\u043d \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439. \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u044d\u043a\u043b\u0435\u043c\u043f\u043b\u044f\u0440\u0430 <code>_money<\/code> \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u043f\u043b\u0430\u0442\u0438\u0442\u044c\u0441\u044f, \u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u0435\u0440\u043d\u0451\u0442 <code>NO<\/code>, \u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430. \u042d\u0442\u043e\u0442 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440, \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0438\u0439\/\u0437\u0430\u043f\u0440\u0435\u0449\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u043a\u0443\u043f\u043a\u0443, \u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u043d\u043e \u0431\u0443\u043b\u0435\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435: \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0438 \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u0435\u043d\u0435\u0433? (\u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043b\u044e\u0434\u0435\u0439 \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435? \u2014 <i>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440.<\/i>)<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0431\u044b \u044d\u0442\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043e\u0431\u043e\u0439\u0442\u0438 (\u00ab\u043f\u0435\u0440\u0435\u043f\u0440\u044b\u0433\u043d\u0443\u0442\u044c\u00bb, \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430) \u2014 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043a\u0443\u043f\u0438\u0442\u044c \u0432\u0441\u0451, \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e, \u0442\u043e\u0433\u0434\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>_money<\/code> \u0443\u0436\u0435 \u0431\u044b <b>\u043d\u0435<\/b> \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u043e\u0441\u044c \u043a\u0430\u043a \u0444\u0430\u043a\u0442\u043e\u0440 \u043f\u0440\u0438 \u043f\u043e\u043a\u0443\u043f\u043a\u0435.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0439\u0434\u0451\u043c \u0442\u043e\u0442 \u0436\u0435 \u043a\u043e\u0434 \u0432 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435. \u0412\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u043a IDA, \u0449\u0451\u043b\u043a\u043d\u0438\u0442\u0435 \u043f\u043e \u043b\u044e\u0431\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 Functions (\u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u0430\u043d\u0435\u043b\u044c) \u0438 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0436\u043c\u0438\u0442\u0435 <b>\u0421trl+F<\/b> (\u0438\u043b\u0438 \u0438\u0437 \u043c\u0435\u043d\u044e: <b>Edit&nbsp;&gt; Quick&nbsp;Filter<\/b>). \u041f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0430\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <code>buyObject:<\/code><\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/a70\/2b9\/238\/a702b92386d98fcb483a3db89db4b1f8.png\"\/><\/p>\n<p>  \u0410\u0433\u0430, \u043d\u0430\u0448\u043b\u0438, \u0434\u0432\u0430\u0436\u0434\u044b \u0449\u0451\u043b\u043a\u043d\u0438\u0442\u0435 \u043d\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u043c\u0435\u0442\u043e\u0434\u0430. IDA \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u043e\u043a\u043e\u0448\u043a\u043e \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0438 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/6f7\/538\/26c\/6f753826c05b354ac587d71014ea07bb.png\"\/><\/p>\n<p>  \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u0438\u0437 <s>\u0448\u043a\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430<\/s> \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430, \u0438\u0437 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c <code>buyObject:<\/code> \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u0437\u0435\u043b\u0451\u043d\u0430\u044f \u0441\u0442\u0440\u0435\u043b\u043a\u0430 \u00ab\u0432\u043f\u0440\u0430\u0432\u043e\u00bb \u2014 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e \u043c\u0435\u0441\u0442\u043e, \u043a\u0443\u0434\u0430 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0445\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u043f\u043e\u0439\u0442\u0438, \u0442\u0430\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439. \u0410 \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043a\u043e\u0434 \u043f\u043e\u0434 \u043a\u0440\u0430\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u043e\u0439 \u00ab\u0432\u043b\u0435\u0432\u043e\u00bb \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0435 &quot;<code>return nil<\/code>&quot;.<\/p>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0443 \u0432\u0430\u0441 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043e\u043c. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 (\u00abjump\u00bb), \u0441\u0430\u043c\u044b\u0439 \u043d\u0438\u0436\u043d\u0438\u0439 \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0431\u043b\u043e\u043a\u0435, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438\u0434\u0443\u0442 \u0434\u0432\u0435 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u2014 \u043a\u0440\u0430\u0441\u043d\u0430\u044f \u0438 \u0437\u0435\u043b\u0451\u043d\u0430\u044f. \u042d\u0442\u043e <b><code>jnb<\/code><\/b>, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u00abjump if not below\u00bb (\u043f\u0435\u0440\u0435\u0439\u0442\u0438, \u0435\u0441\u043b\u0438 \u00ab\u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435\u00bb). \u0421\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043d\u0430 \u00abjump always\u00bb \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e <b><code>jmp<\/code><\/b>.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c, \u043d\u0443\u0436\u043d\u043e \u0435\u0451 \u043d\u0430\u0439\u0442\u0438. \u0414\u0432\u0430\u0436\u0434\u044b \u0449\u0451\u043b\u043a\u043d\u0438\u0442\u0435 \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0435 <code>jnb<\/code>. \u041e\u043d \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u0438\u0442\u0441\u044f \u0436\u0451\u043b\u0442\u044b\u043c. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043f\u0440\u043e\u0431\u0435\u043b, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0436\u0438\u043c.<\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0442\u0430 \u0436\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043d\u043e \u0432 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>jnb<\/code> (\u044d\u0442\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430):<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/993\/335\/174\/993335174a754e1330858719bc3a99a5.png\"\/><\/p>\n<p>  \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0430\u0434\u0440\u0435\u0441 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f 0x00018D88. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0443 \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u0430\u0434\u0440\u0435\u0441.<\/p>\n<p>  \u041a\u043e\u0434 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430 &quot;<code>jnb short<\/code>&quot; \u2014 \u044d\u0442\u043e <code>0x73??<\/code>, \u0433\u0434\u0435 \u0437\u043d\u0430\u043a\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445, \u043a\u0443\u0434\u0430 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0435\u0440\u0435\u0439\u0442\u0438. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043a\u043e\u0434 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430 \u043d\u0430 <code>0xEB??<\/code> \u2014 \u043a\u043e\u0434 \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 &quot;<code>jmp short<\/code>&quot; (\u043d\u0430 \u0442\u043e \u0436\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442). \u041e\u0442\u043a\u0443\u0434\u0430 \u044f \u0432\u0437\u044f\u043b \u043a\u043e\u0434\u044b \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u043e\u0432? \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437 <a href=\"http:\/\/download.intel.com\/products\/processor\/manual\/325462.pdf\">Intel Software Developer\u2019s Manual<\/a> (\u043a\u0441\u0442\u0430\u0442\u0438, \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u0447\u0442\u0435\u043d\u0438\u0435!)<\/p>\n<p>  \u0421\u043a\u0430\u0447\u0430\u0439\u0442\u0435 (\u0435\u0441\u043b\u0438 \u0435\u0449\u0451 \u043d\u0435 \u0441\u043a\u0430\u0447\u0430\u043b\u0438) <a href=\"http:\/\/ridiculousfish.com\/hexfiend\/\">Hex Fiend<\/a>. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0435\u0433\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0432 \u0432 \u043f\u0430\u043f\u043a\u0443 <code>\/Applications<\/code>. \u0418\u0437 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044f, \u0447\u0442\u043e \u043c\u044b \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043d\u0430\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 \u0431\u0430\u043d\u0434\u043b\u0430 \u00abMeme&nbsp;Collector.app\u00bb) \u043d\u0430\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">open -a &quot;\/Applications\/Hex Fiend.app\/&quot; &quot;Meme Collector&quot; <\/code><\/pre>\n<p>  \u041e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u043e\u043a\u043d\u043e \u0441 \u043d\u0430\u0448\u0438\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u043c. \u041a\u0440\u0430\u0441\u0438\u0432\u043e, \u043f\u0440\u0430\u0432\u0434\u0430? \u0412\u043e\u0442 \u043e\u043d\u0438 \u2014 \u043d\u0430\u0448\u0438 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435: <code>__objc_classname<\/code> \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0435\u043a\u0446\u0438\u0438. \u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u044f\u0432\u043d\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/1af\/46d\/0f5\/1af46d0f57c8064e56fa5c6437cd1675.png\"\/><br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0431\u0435\u0440\u0438\u0442\u0435 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435:<\/p>\n<pre><code class=\"bash\">otool -l &quot;Meme Collector&quot; | grep -a10 &quot;sectname __text&quot; <\/code><\/pre>\n<p>  \u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0435\u043b\u0438 \u0440\u0430\u043d\u0435\u0435, <code>otool -l<\/code> \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c. \u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0441\u0435\u043a\u0446\u0438\u044f \u043a\u043e\u0434\u0430 (\u00ab\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f\u00bb \u0441\u0435\u043a\u0446\u0438\u044f), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0441\u0443\u0436\u0430\u0435\u043c \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>grep<\/code>. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u043e\u0442\u0432\u0435\u0442:<\/p>\n<pre><code class=\"bash\">  segname __TEXT    vmaddr 0x00001000    vmsize 0x0002e000   fileoff 0  filesize 188416   maxprot 0x00000007  initprot 0x00000005    nsects 11     flags 0x0 Section   sectname __text    segname __TEXT       addr 0x00002970       size 0x0001dec3     offset 6512      align 2^4 (16)     reloff 0     nreloc 0      flags 0x80000400  reserved1 0  reserved2 0 <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0441\u0435\u043a\u0446\u0438\u0438 (<code>addr<\/code>) 0x00002970, \u0430 \u0441\u0434\u0432\u0438\u0433 (<code>offset<\/code>) \u2014 6512 (\u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e). \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0437\u044f\u0442\u044c IDA \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0434 \u2014 \u0438\u043c\u0435\u043d\u043d\u043e 0x2970, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u043a\u0440\u043e\u043b\u043b\u0438\u0442\u044c (\u0432 \u00ab\u043b\u0438\u043d\u0435\u0439\u043d\u043e\u043c\u00bb \u0432\u0438\u0434\u0435) \u043d\u0430 \u0441\u0430\u043c\u044b\u0439-\u0441\u0430\u043c\u044b\u0439 \u0432\u0435\u0440\u0445. (\u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u0432\u0430\u0448\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u0441\u043c\u044b\u0441\u043b \u0442\u043e\u0442 \u0436\u0435).<\/p>\n<p>  \u041e\u0442\u043b\u0438\u0447\u043d\u043e! \u0412\u0440\u0435\u043c\u044f \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u043e\u0439: \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <code>jnb<\/code> (\u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0435 \u0434\u043b\u044f \u00ab\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439\u00bb \u0441\u0435\u043a\u0446\u0438\u0438) \u0432 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0431\u0430\u0439\u0442\u044b \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443, \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u043c\u0443 \u0432 IDA, \u0432\u044b \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0433\u0434\u0435-\u0442\u043e \u0441\u043b\u043e\u0432\u0438\u0442\u0435 \u043a\u0440\u044d\u0448, \u0442.\u043a. \u043e\u043d\u0438 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u043c \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u0432\u043b\u0435\u043a\u0430\u0442\u044c\u0441\u044f, \u044f \u043f\u0440\u0438\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u0434\u043b\u044f \u0432\u0430\u0441 \u0444\u043e\u0440\u043c\u0443\u043b\u0443:<\/p>\n<p>  {\u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u0430\u044f&nbsp;\u043f\u043e\u0437\u0438\u0446\u0438\u044f&nbsp;\u043a\u043e\u043c\u0430\u043d\u0434\u044b&nbsp;\u0432&nbsp;\u0431\u0438\u043d\u0430\u0440\u043d\u043e\u043c&nbsp;\u0444\u0430\u0439\u043b\u0435} =<br \/>  {\u0430\u0434\u0440\u0435\u0441&nbsp;\u043a\u043e\u043c\u0430\u043d\u0434\u044b} &ndash; {\u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439&nbsp;\u0430\u0434\u0440\u0435\u0441&nbsp;\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439&nbsp;\u0441\u0435\u043a\u0446\u0438\u0438} + {\u0441\u0434\u0432\u0438\u0433&nbsp;\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439&nbsp;\u0441\u0435\u043a\u0446\u0438\u0438}<\/p>\n<p>  \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435:<\/p>\n<p>  \u0410\u0434\u0440\u0435\u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>jnb<\/code> = 0x18D88 (\u0438\u0437 IDA)<br \/>  \u0421\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 = 0x2970 (\u0438\u0437 <code>otool<\/code>)<br \/>  \u0421\u0434\u0432\u0438\u0433 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 = \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0435 6512 (\u0438\u0437 <code>otool<\/code>)<\/p>\n<p>  \u0411\u0435\u0440\u0451\u043c \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440, \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0438\u0437 \u043c\u0435\u043d\u044e: <b>\u0412\u0438\u0434 &gt; \u0414\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u2026<\/b> (\u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043d\u0430 \u043d\u0443\u0436\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u0432\u0432\u043e\u0434\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0445 \u0438 16-\u0440\u0438\u0447\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b).<\/p>\n<p>  \u0423 \u043c\u0435\u043d\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:<br \/>  0x18D88 &ndash; 0x2970 + 6512 = 0x17D88<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Advanced Mode<\/b><\/p>\n<div class=\"spoiler_text\">\u0427\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u043e\u0432 \u00abAdvanced Mode\u00bb \u0443\u0436\u0435 \u043f\u043e\u043d\u044f\u043b\u0438, \u043f\u043e\u0447\u0435\u043c\u0443 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u0444\u0430\u0439\u043b\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043a\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 0x1000 (0x18D88 &ndash; 0x17D88).<\/div>\n<\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0430\u0448\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0432\u0435\u0440\u043d\u044b, \u044d\u0442\u043e \u0438 \u0431\u0443\u0434\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <code>jnb<\/code>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0432\u0438\u0434\u0435\u043b\u0438 \u0432 IDA. \u0422\u0435\u043f\u0435\u0440\u044c \u0432 Hex Fiend \u043d\u0430\u0436\u043c\u0438\u0442\u0435 <b>\u2318L<\/b> (\u043b\u0438\u0431\u043e \u0438\u0437 \u043c\u0435\u043d\u044e <b>Edit &gt; Jump To Offset<\/b>), \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0430\u0434\u0440\u0435\u0441\u0430. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u0432\u043e\u0451 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 (\u0435\u0441\u043b\u0438 \u0432\u0432\u043e\u0434\u0438\u0442\u0435 \u0432 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0438\u0440\u0438\u0447\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 <code>0x<\/code> \u0432 \u043d\u0430\u0447\u0430\u043b\u0435).<\/p>\n<p>  \u0425\u043c, \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u043e\u043a \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u0432 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u041d\u0443 \u043b\u0430\u0434\u043d\u043e, \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0435\u043c: 0x17D88 = 97672, \u0442.\u0435. \u043e\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 97664 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0449\u0451 8 \u0431\u0430\u0439\u0442 \u0432\u043f\u0440\u0430\u0432\u043e. 8 \u0431\u0430\u0439\u0442 = 16 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0438\u0440\u0438\u0447\u043d\u044b\u0445 \u0446\u0438\u0444\u0440 = \u0434\u0432\u0430 4-\u0431\u0430\u0439\u0442\u043d\u044b\u0445 \u0441\u043b\u043e\u0432\u0430. \u0412\u0438\u0434\u0438\u0442\u0435, Hex Fiend \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u00ab\u0442\u0435\u043a\u0441\u0442\u00bb \u043f\u043e \u0441\u043b\u043e\u0432\u0430\u043c:<br \/>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/a1e\/46a\/c66\/a1e46ac6604beb27b767e877ac6dc548.png\"\/><\/p>\n<p>  \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u0441\u043b\u043e\u0432\u0430, \u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \u2014 \u0432\u043e\u0442 \u043e\u043d \u2014 \u043d\u0430\u0448 \u043a\u043e\u0434 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 <code>0x7304<\/code>. <code>0x73<\/code> \u2014 \u043a\u043e\u0434 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0430 <code>0x04<\/code> \u2014 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435, \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0439\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u00ab\u043f\u0440\u044b\u0433\u043d\u0443\u0442\u044c\u00bb \u0432\u043f\u0435\u0440\u0451\u0434.<\/p>\n<p>  \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 <code>0x73<\/code> \u043d\u0430 <code>0xEB<\/code> (\u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e: \u043e\u0434\u043d\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u0435 Backspace \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 1 \u0431\u0430\u0439\u0442 = \u0434\u0432\u0430 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0438\u0440\u0438\u0447\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u0430). \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 (<b>\u2318S<\/b>) \u0438 \u0437\u0430\u043a\u0440\u043e\u0439\u0442\u0435 \u0444\u0430\u0439\u043b. \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440, \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 (\u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0437 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430, \u0430 \u043d\u0435 \u0438\u0437 IDE, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043d\u043e\u0432\u043e). \u00ab\u041f\u043e\u043a\u0443\u043f\u0430\u0439\u0442\u0435\u00bb \u043c\u0435\u043c\u044b, \u043f\u043e\u043a\u0430 \u0443 \u0432\u0430\u0441 \u043d\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0430\u0442\u0441\u044f \u0434\u0435\u043d\u044c\u0433\u0438. \u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u043a\u0443\u043f\u0438\u0442\u044c \u0442\u043e\u0432\u0430\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u043e\u0438\u0442 \u0434\u043e\u0440\u043e\u0436\u0435, \u0447\u0435\u043c \u0443 \u0432\u0430\u0441 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u00ab\u0434\u0435\u043d\u0435\u0433\u00bb?<\/p>\n<p>  \u0414\u0430, \u043c\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043a\u0438\u043d\u0443\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u00ab\u0435\u0441\u0442\u044c \u043b\u0438 \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u0435\u043d\u044c\u0433\u0438?\u00bb \u0414\u0430\u0436\u0435 \u0431\u0435\u0437 \u0434\u0435\u043d\u0435\u0433, \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f. \u0418 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u043e\u043d\u0443\u0441: unsigned-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>_money<\/code> \u00ab\u0437\u0430\u0446\u0438\u043a\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f\u00bb, \u0432 \u0441\u0438\u043b\u0443 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0447\u0438\u0441\u0435\u043b \u0432 \u043f\u0430\u043c\u044f\u0442\u0438, \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0447\u0443\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c 10<sup>32<\/sup> (\u043e\u043a\u043e\u043b\u043e 4 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432).<\/p>\n<h2>\u0417\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433\u0430<\/h2>\n<p>  \u041a\u0430\u043a \u0436\u0435 \u043d\u0430\u043c \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c\u0441\u044f? \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u044f \u0433\u043e\u0432\u043e\u0440\u0438\u043b: \u00ab\u043d\u0438\u0447\u0442\u043e \u043d\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u00bb. \u042d\u0442\u043e \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0437\u0434\u0435\u0441\u044c. \u0420\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u043c\u043e\u0436\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0438\u0442\u044c, \u043d\u043e \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 <u>\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c<\/u> \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a\u0430, \u0435\u0441\u043b\u0438 \u043e\u043d \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e. \u0412\u0430\u0448\u0430 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043d\u0430\u0434\u0435\u0436\u0434\u0430 \u2014 \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u043e\u0432 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u043e\u043d\u0438 \u0431\u0440\u043e\u0441\u044f\u0442 \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u0438 \u043f\u043e\u0439\u0434\u0443\u0442 \u043b\u043e\u043c\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u041e\u0434\u0438\u043d \u0438\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u2014 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u0430 \u0432\u0430\u0436\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440. \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 IDE \u0438 \u043d\u0430\u0439\u0434\u0438\u0442\u0435 \u0432 \u043d\u0451\u043c \u0444\u0430\u0439\u043b \u00abMeme&nbsp;Collector-Prefix.pch\u00bb. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \u043d\u0435\u0433\u043e \u0441\u0442\u0440\u043e\u0447\u043a\u0443:<\/p>\n<pre><code class=\"cpp\">#define MoneyManager DS_UIColor_Theme <\/code><\/pre>\n<p>  \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0437\u0430\u043c\u0435\u043d\u0438\u0442 \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f &quot;<code>MoneyManager<\/code>&quot; \u043d\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a\u0430\u043c \u043c\u0435\u043d\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c: &quot;<code>DS_UIColor_Theme<\/code>&quot;.<\/p>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u043b\u043e\u043c\u0430\u0442\u044c. \u041d\u0443\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u043d\u0430 100%, \u0447\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u043d\u043e\u0432\u043e\u0435 \u0438\u043c\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u0418\u043d\u0430\u0447\u0435 \u0437\u0430\u043f\u0443\u0442\u0430\u0435\u0442\u0435 \u0441\u0430\u043c\u0438 \u0441\u0435\u0431\u044f, \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043d\u0430\u0447\u043d\u0443\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043c\u044b\u0435 \u0432\u0435\u0449\u0438.<\/p>\n<p>  \u041e\u0431\u044b\u0447\u043d\u043e \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0435\u0441\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0432 \u0447\u0438\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432. \u0418 \u0432\u043e\u0442, \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c \u043a\u043e\u0434 \u2014 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u042d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043f\u0440\u044f\u0442\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 C\u0438 \u0438 C++, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f Objective C \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <code>objc_msgSend()<\/code>.<\/p>\n<p>  \u0421\u043d\u043e\u0432\u0430 \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 <b>MoneyManager.m<\/b> \u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0421\u0438-\u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432 \u043d\u0430\u0447\u0430\u043b\u043e:<\/p>\n<pre><code class=\"cpp\">BOOL aSecretFunction(void) {     return YES; } <\/code><\/pre>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0441\u043d\u043e\u0432\u0430 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0439\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. \u0418\u0437 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430:<\/p>\n<pre><code class=\"bash\">nm &quot;Meme Collector&quot; | grep aSecretFunction <\/code><\/pre>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u0430 <code>nm<\/code> \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u0430 <code>grep<\/code> \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0412\u043e\u0442, \u043e\u043d\u0430 \u0442\u0443\u0442 \u0435\u0441\u0442\u044c:<\/p>\n<pre><code class=\"bash\">00018b8f t _aSecretFunction <\/code><\/pre>\n<p>  \u041b\u0451\u0433\u043a\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438\u0437 iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430\u0439\u0442\u0438 \u0434\u0432\u0435 \u043e\u043f\u0446\u0438\u0438: Deployment&nbsp;Postprocessing \u0438 Strip&nbsp;Linked&nbsp;Product, \u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u0432 Yes:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/77a\/06c\/4aa\/77a06c4aae3983741311d0025d84e361.png\"\/><\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u00ab\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c\u00bb \u043f\u0440\u043e\u0435\u043a\u0442 (Xcode: <b>Product &gt; Clean<\/b> \u0438\u043b\u0438 \u0432 AppCode: <b>Run &gt; Clean<\/b>) \u0438 \u0437\u0430\u043d\u043e\u0432\u043e \u0441\u043a\u043e\u043c\u043f\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0442\u0443 \u0436\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">nm &quot;Meme Collector&quot; | grep aSecretFunction <\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u043d\u043e! \u041c\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0441\u044b\u043b\u0430\u043b\u0441\u044f \u043d\u0430 <code>aSecretFunction()<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a\u0443 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u0432 \u043a\u043e\u0434\u0435.<\/p>\n<h2>\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435?<\/h2>\n<p>  \u041c\u044b \u0443\u0431\u0435\u0434\u0438\u043b\u0438\u0441\u044c, \u0447\u0442\u043e \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442:<\/p>\n<ul>\n<li>\u043b\u0435\u0433\u043a\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u043e\u0432 Objective C;  <\/li>\n<li>\u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435;  <\/li>\n<li>\u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435;  <\/li>\n<li>\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0440\u0435\u0434\u043e\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f;  <\/li>\n<li>\u043c\u0435\u043d\u044f\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.  <\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u044d\u0442\u0438 \u0432\u0435\u0449\u0438. \u041f\u043e\u0434\u0443\u043c\u0430\u0439\u0442\u0435, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u0438\u043b\u0438\u0439 \u0432\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c. <b>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c?<\/b> \u042d\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0430\u043b\u0430\u043d\u0441 \u043c\u0435\u0436\u0434\u0443 \u0432\u0430\u0448\u0438\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 (\u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c), \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0434\u043b\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0438 \u2014 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u0437\u043b\u043e\u043c\u0430.<\/p>\n<p>  \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u0430\u044f \u0442\u0435\u043c\u0430. \u041c\u043e\u0436\u043d\u043e \u0435\u0449\u0451 \u043c\u043d\u043e\u0433\u043e\u043c\u0443 \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f. \u041f\u043e\u043a\u0430 \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u043f\u043e\u0441\u043a\u0440\u0435\u0431\u043b\u0438 \u043f\u043e \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438. \u0412\u0435\u0441\u044c \u0441\u043f\u0435\u043a\u0442\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0433\u043b\u0443\u0431\u0436\u0435. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u044d\u0442\u0430 \u0442\u0435\u043c\u0430, \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e \u0434\u0436\u0435\u0439\u043b\u0431\u0440\u0435\u0439\u043a\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0434\u0435\u0432\u0430\u0439\u0441\u0430. \u0424\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u0430\u0441\u0442 \u0431\u043e\u0433\u0430\u0442\u0443\u044e \u043f\u0438\u0449\u0443 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u043c, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u043a\u043d\u0438\u0433\u043e\u0439 <b>Hacking and Securing iOS Applications<\/b> (\u0430\u0432\u0442\u043e\u0440 Jonathan Zdziarski). \u0425\u043e\u0442\u044f \u043e\u043d\u0430 \u0441\u043b\u0435\u0433\u043a\u0430 \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430 (\u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u043e\u0433\u0443\u0433\u043b\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 Apple), \u043d\u043e \u0443 \u0430\u0432\u0442\u043e\u0440\u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u043b\u044e\u0431\u0438\u043c\u044b\u0445 \u043a\u043d\u0438\u0433 \u043f\u043e iOS \u0438 \u043f\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<br \/>  \u0415\u0449\u0451 \u043f\u0430\u0440\u0430 \u043a\u043d\u0438\u0433:<br \/>  <b>Hacking: The Art of Exploitation, 2nd Edition<\/b> by Jon Erickson<br \/>  <b>Mac OS X and iOS Internals: To the Apple&#8217;s Core<\/b> by Jonathan Levin<br \/>  \u0424\u043e\u0440\u0443\u043c\u044b:<br \/>  <a href=\"http:\/\/www.woodmann.com\">http:\/\/www.woodmann.com<\/a><br \/>  <a href=\"http:\/\/www.reddit.com\/r\/ReverseEngineering\">http:\/\/www.reddit.com\/r\/ReverseEngineering<\/a><br \/>  \u0421\u0442\u0430\u0442\u044c\u044f \u043f\u043e \u0438\u043d\u044a\u0435\u043a\u0446\u0438\u0438 \u043a\u043e\u0434\u0430:<br \/>  <a href=\"http:\/\/blog.timac.org\/?p=761\">http:\/\/blog.timac.org\/?p=761<\/a><\/p>\n<p>  \u0410\u0432\u0442\u043e\u0440\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c <a href=\"http:\/\/www.raywenderlich.com\/46223\/ios-app-security-analysis-part-2#comments\">\u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u044b<\/a>, \u0430 \u043f\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0443 \u043f\u0438\u0448\u0438\u0442\u0435 \u043d\u0430 \u043f\u043e\u0447\u0442\u0443 <i>dev<code>@<\/code>x128.ru<\/i>.   \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/199130\/\"> http:\/\/habrahabr.ru\/post\/199130\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">       \u0412 <a href=\"http:\/\/habrahabr.ru\/post\/199128\/\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u043c\u044b \u0438\u0437\u0443\u0447\u0438\u043b\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 <i>\u0434\u0430\u043d\u043d\u044b\u0445<\/i>. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0437\u0430\u0449\u0438\u0442\u0435 <i>\u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u0434\u0430<\/i>. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0435\u043c \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433. \u0418 \u0441\u043d\u043e\u0432\u0430, \u043f\u043e\u043c\u043d\u0438\u0442\u0435! \u041d\u0430\u0448\u0430 \u0446\u0435\u043b\u044c \u2014 \u043d\u0435 \u0441\u0442\u0430\u0442\u044c \u0433\u0430\u0434\u043a\u0438\u043c \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a\u043e\u043c, \u0430 \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0442 \u0437\u043b\u043e\u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/412\/621\/944\/4126219446922efb37f654de16208801.png\"\/><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-199130","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/199130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=199130"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/199130\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=199130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=199130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=199130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}