{"id":13,"date":"2012-03-21T23:57:49","date_gmt":"2012-03-21T19:57:49","guid":{"rendered":"http:\/\/ilya2606.ru\/?p=13"},"modified":"2012-03-22T17:23:17","modified_gmt":"2012-03-22T13:23:17","slug":"%d1%80%d0%b0%d1%81%d0%bf%d0%be%d0%b7%d0%bd%d0%b0%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%ba%d1%80%d1%8f%d0%ba%d0%bd%d1%83%d1%82%d0%be%d0%b9-%d0%b2%d0%b5%d1%80%d1%81%d0%b8%d0%b8-anti-piracy","status":"publish","type":"post","link":"http:\/\/ilya2606.ru\/?p=13","title":{"rendered":"\u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u043a\u0440\u044f\u043a\u043d\u0443\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 (Anti-Piracy)"},"content":{"rendered":"<p style=\"text-align: center;\"><a href=\"http:\/\/ilya2606.ru\/wp-content\/uploads\/2012\/03\/anti-piracy.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-47\" title=\"anti-piracy\" src=\"http:\/\/ilya2606.ru\/wp-content\/uploads\/2012\/03\/anti-piracy-300x278.jpg\" alt=\"\" width=\"300\" height=\"278\" srcset=\"http:\/\/ilya2606.ru\/wp-content\/uploads\/2012\/03\/anti-piracy-300x278.jpg 300w, http:\/\/ilya2606.ru\/wp-content\/uploads\/2012\/03\/anti-piracy-323x300.jpg 323w, http:\/\/ilya2606.ru\/wp-content\/uploads\/2012\/03\/anti-piracy.jpg 450w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0430\u043f\u0438\u0448\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0432\u0437\u043b\u043e\u043c\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0431\u043e\u0440\u044c\u0431\u044b \u0441 \u043f\u0438\u0440\u0430\u0442\u0441\u0442\u0432\u043e\u043c.<\/p>\n<p>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u0421\u043f\u043e\u0441\u043e\u0431\u044b, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0438\u0436\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u0437\u0430\u0449\u0438\u0442\u044b. \u0417\u0430 \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0435 \u043d\u0435\u0441\u0435\u0442 \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0430\u043c\u043e\u0439 iOS. \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043b\u0443\u0436\u0438\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0437\u0430\u0449\u0438\u0442\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c.<\/p>\n<p><!--more-->\u0418\u0442\u0430\u043a, \u0445\u0432\u0430\u0442\u0438\u0442 \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439, \u043d\u0430\u0447\u043d\u0435\u043c:<\/p>\n<p><strong>1) \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430<\/strong>. \u0421\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435:<\/p>\n<div>\n<div>\u041a\u043e\u0434:<\/div>\n<pre dir=\"ltr\">#if !TARGET_IPHONE_SIMULATOR\r\nint root = getgid();\r\nif (root &lt;= 10) {\r\n\t\/\/\u041a\u0440\u044f\u043a\u043d\u0443\u0442\u0430\r\n}\r\n#endif<\/pre>\n<\/div>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432(\u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u043e 10). \u0415\u0441\u043b\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f, \u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0442\u043e\u0447\u043d\u043e \u0432\u0437\u043b\u043e\u043c\u0430\u043d\u0430.<\/p>\n<p>\u041c\u0435\u0442\u043e\u0434 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043f\u043e\u0440\u0442\u0430\u0442\u0438\u0432\u0435\u043d \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u043a\u0440\u044f\u043a\u043d\u0443\u0442\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043a\u043e\u0434 \u043b\u0435\u0433\u043a\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u044e\u0449\u0438\u043c\u0438 \u0445\u0430\u043a\u0435\u0440\u0430\u043c\u0438.<\/p>\n<p><strong>2) \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432<\/strong>. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d \u043e\u0434\u043d\u0438\u043c \u0444\u043e\u0440\u0443\u043c\u0447\u0430\u043d\u0438\u043d\u043e\u043c \u043a\u0440\u0443\u043f\u043d\u043e\u0433\u043e \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u0443\u043c\u0430 \u0434\u0435\u0432\u0435\u043b\u043e\u043f\u0435\u0440\u043e\u0432:<\/p>\n<div>\n<div>\u041a\u043e\u0434:<\/div>\n<pre dir=\"ltr\">#define kInfoSize 500\r\n\/\/Place your NSLog Plist Size into the above Define statment\r\nNSString* bundlePath = [[NSBundle mainBundle] bundlePath];\r\nNSString* path = [NSString stringWithFormat:@\"%@\/Info.plist\", bundlePath ];\r\nNSDictionary *fileInfo = [[NSBundle mainBundle] infoDictionary];\r\nNSFileManager *fileManager = [NSFileManager defaultManager];\r\nNSDictionary *fileAttributes = [fileManager fileAttributesAtPath:path traverseLink:YES];\r\n\r\nif (fileAttributes != nil) {\r\n\tNSNumber *fileSize;\r\n\tif(fileSize = [fileAttributes objectForKey:NSFileSize]){\r\n\t\tNSLog(@\"File Size:  %qi\\n\", [fileSize unsignedLongLongValue]);\r\n\t\t\/\/Best to see the File Size and change it accordingly first\r\n\t\tNSString *cSID = [[NSString alloc] initWithFormat:@\"%@%@%@%@%@\",@\"Si\",@\"gne\",@\"rIde\",@\"ntity\",@\"\"];\r\n\t\tBOOL checkedforPir = false;\r\n\t\tif([fileInfo objectForKey:cSID] == nil || [fileInfo objectForKey:cSID] != nil) {\r\n\t\t\tif([fileSize unsignedLongLongValue] == kInfoSize) {\r\n\t\t\t\tcheckedforPir = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(!checkedforPir){\r\n\t\t\t\/\/\u041a\u0440\u044f\u043a\u043d\u0443\u0442\u0430\r\n\t\t}\r\n\t\t[cSID release];\r\n\t}\r\n}<\/pre>\n<\/div>\n<p>\u041c\u0435\u0442\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 &#8220;Signerldentity&#8221; \u0432 Info.plist. \u0415\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435, \u0442\u043e \u0431\u044c\u0435\u043c \u0442\u0440\u0435\u0432\u043e\u0433\u0443. \u0414\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u043e\u0442 \u0445\u0430\u043a\u0435\u0440\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0438\u0441\u043a\u043e\u043c\u044b\u0445 \u0441\u0442\u0440\u043e\u043a.<\/p>\n<p><strong>3) \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432<\/strong>. \u0411\u043e\u043b\u0435\u0435 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 2\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<div>\n<div>\u041a\u043e\u0434:<\/div>\n<pre dir=\"ltr\">NSBundle *bundle = [NSBundle mainBundle];\r\nNSDictionary *info = [bundle infoDictionary];\r\nif ([info objectForKey: @\"SignerIdentity\"] != nil)\r\n{\r\n\t\/\/\u041a\u0440\u044f\u043a\u043d\u0443\u0442\u0430\r\n}<\/pre>\n<\/div>\n<p>\u041d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u043f\u043e\u0440\u0442\u0430\u0442\u0438\u0432\u0435\u043d. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443, \u0442.\u043a. \u043e\u0442\u043a\u0440\u044b\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043b\u0435\u0433\u043a\u043e \u043d\u0430\u0439\u0442\u0438 \u0434\u0430\u0436\u0435 HEX-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u0442\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<div>\n<div>\u041a\u043e\u0434:<\/div>\n<pre dir=\"ltr\">#define INIT_STRING @\"SignerIdentity\"\r\nNSString *aString = INIT_STRING;<\/pre>\n<\/div>\n<p>\u042d\u0442\u043e \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 &#8220;SignerIdentity&#8221; \u0438\u0437 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0437\u043b\u043e\u043c \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435.<br \/>\n<strong>4) \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432<\/strong>. \u041d\u0435\u043a\u0430\u044f \u043d\u043e\u0432\u0438\u043d\u043a\u0430:<\/p>\n<div>\n<div>\u041a\u043e\u0434:<\/div>\n<pre dir=\"ltr\">NSString* bundlePath = [[NSBundle mainBundle] bundlePath];\r\nBOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:(@\"%@\/_CodeSignature\", bundlePath)];\r\nif (!fileExists) {\r\n\t\/\/\u041a\u0440\u044f\u043a\u043d\u0443\u0442\u0430\r\n\tNSLog(@\"\u041a\u0440\u044f\u043a\u043d\u0443\u0442\u0430\");\r\n}\r\nBOOL fileExists2 = [[NSFileManager defaultManager] fileExistsAtPath:(@\"%@\/CodeResources\", bundlePath)];\r\nif (!fileExists2) {\r\n\t\/\/\u041a\u0440\u044f\u043a\u043d\u0443\u0442\u0430\r\n\tNSLog(@\"\u041a\u0440\u044f\u043a\u043d\u0443\u0442\u04302\");\r\n}\r\nBOOL fileExists3 = [[NSFileManager defaultManager] fileExistsAtPath:(@\"%@\/ResourceRules.plist\", bundlePath)];\r\nif (!fileExists3) {\r\n\t\/\/\u041a\u0440\u044f\u043a\u043d\u0443\u0442\u0430\r\n\tNSLog(@\"\u041a\u0440\u044f\u043a\u043d\u0443\u0442\u04303\");\r\n}<\/pre>\n<\/div>\n<p>\u041c\u0435\u0442\u043e\u0434 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 &#8220;_CodeSignature&#8221;, &#8220;CodeResources&#8221;, \u0438 &#8220;ResourceRules.plist&#8221;. \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u0437\u043b\u043e\u043c\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f. \u041d\u0435 \u0441\u0430\u043c\u044b\u0439 \u043b\u0443\u0447\u0448\u0438\u0439 \u043c\u0435\u0442\u043e\u0434, \u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u043b\u0430\u043c\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u0422\u0430\u043a\u0436\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0438\u0441\u043a\u043e\u043c\u044b\u0445 \u0441\u0442\u0440\u043e\u043a.<\/p>\n<p><strong>5) \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u0430\u0442\u044b<\/strong>. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 &#8211; \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439:<\/p>\n<div>\n<div>\u041a\u043e\u0434:<\/div>\n<pre dir=\"ltr\">NSString* bundlePath = [[NSBundle mainBundle] bundlePath];\r\nNSString* path = [NSString stringWithFormat:@\"%@\/Info.plist\", bundlePath];\r\nNSString* path2 = [NSString stringWithFormat:@\"%@\/AppName\", bundlePath];\r\nNSDate* infoModifiedDate = [[[NSFileManager defaultManager] fileAttributesAtPath:path traverseLink:YES] fileModificationDate];\r\nNSDate* infoModifiedDate2 = [[[NSFileManager defaultManager] fileAttributesAtPath:path2 traverseLink:YES] fileModificationDate];\r\nNSDate* pkgInfoModifiedDate = [[[NSFileManager defaultManager] fileAttributesAtPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@\"PkgInfo\"] traverseLink:YES] fileModificationDate];\r\nif([infoModifiedDate timeIntervalSinceReferenceDate] &gt; [pkgInfoModifiedDate timeIntervalSinceReferenceDate]) {\r\n\t\/\/\u041a\u0440\u044f\u043a\u043d\u0443\u0442\u0430\r\n}\r\nif([infoModifiedDate2 timeIntervalSinceReferenceDate] &gt; [pkgInfoModifiedDate timeIntervalSinceReferenceDate]) {\r\n\t\/\/\u041a\u0440\u044f\u043a\u043d\u0443\u0442\u0430\r\n}<\/pre>\n<\/div>\n<p>\u041e\u0447\u0435\u043d\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0434\u0430\u0442\u0443 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Info.plist, \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 PkgInfo. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0434\u0430\u0442\u0430 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 3\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430. \u041f\u043e\u0441\u043b\u0435 \u0432\u0437\u043b\u043e\u043c\u0430 \u0434\u0430\u0442\u0430 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 Info.plist \u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0430 &#8211; \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u0434\u0430\u0442\u0430 Info.plist \u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0430 \u043f\u043e\u0437\u0434\u043d\u0435\u0435 PkgInfo, \u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u0437\u043b\u043e\u043c\u0430\u043d\u0430 \u0438\u043b\u0438 \u0431\u044b\u043b\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0438.<\/p>\n<p><strong>6) \u0410\u043d\u0442\u0438-\u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a<\/strong>. \u0414\u0430\u043b\u0435\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434:<\/p>\n<div>\n<div>\u041a\u043e\u0434:<\/div>\n<pre dir=\"ltr\">\/\/ The iPhone SDK doesn't have , but it does have ptrace, and it\r\n\/\/ works just fine.\r\ntypedef int (*ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr, int _data);\r\n#if !defined(PT_DENY_ATTACH)\r\n#define  PT_DENY_ATTACH  31\r\n#endif  \/\/ !defined(PT_DENY_ATTACH)\r\n\r\nvoid ZNDebugIntegrity() {\r\n\t\/\/ If all assertions are enabled, we're in a legitimate debug build.\r\n#if TARGET_IPHONE_SIMULATOR || defined(DEBUG) || (!defined(NS_BLOCK_ASSERTIONS) &amp;&amp; !defined(NDEBUG))\r\n\treturn;\r\n#endif\r\n\r\n\t\/\/ Lame obfuscation of the string \"ptrace\".\r\n\tchar* ptrace_root = \"socket\";\r\n\tchar ptrace_name[] = {0xfd, 0x05, 0x0f, 0xf6, 0xfe, 0xf1, 0x00};\r\n\tfor (size_t i = 0; i &lt; sizeof(ptrace_name); i++) {\r\n\t\tptrace_name[i] += ptrace_root[i];\r\n\t}\r\n\r\n\tvoid* handle = dlopen(0, RTLD_GLOBAL | RTLD_NOW);\r\n\tptrace_ptr_t ptrace_ptr = dlsym(handle, ptrace_name);\r\n\tptrace_ptr(PT_DENY_ATTACH, 0, 0, 0);\r\n\tdlclose(handle);\r\n}<\/pre>\n<\/div>\n<p>\u041c\u0435\u0442\u043e\u0434 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0432\u0441\u0435\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445. \u0412\u043a\u0440\u0430\u0442\u0446\u0435, \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043b\u0438 \u043d\u0430\u0448\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u043e\u043c \u0438\u043b\u0438 \u043d\u0435\u0442. \u0415\u0441\u043b\u0438 \u0434\u0430, \u0442\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a. \u041f\u0440\u0438 \u0432\u0437\u043b\u043e\u043c\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e(\u041a\u0440\u0430\u043a\u0443\u043b\u043e\u0443\u0441\u044b &#8211; \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435). \u041c\u0435\u0442\u043e\u0434 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0435\u0433\u043e.<\/p>\n<p><strong>7) \u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/strong>. \u041c\u0435\u0442\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 SignerIdentity, \u043d\u043e \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<div>\n<div>\u041a\u043e\u0434:<\/div>\n<pre dir=\"ltr\">NSLog(@\"Substitution Cipher:\");\r\nchar symCipher[] = { '(', 'H', 'Z', '[', '9', '{', '+', 'k', ',', 'o', 'g', 'U', ':', 'D', 'L', '#', 'S', ')', '!', 'F', '^', 'T', 'u', 'd', 'a', '-', 'A', 'f', 'z', ';', 'b', '\\'', 'v', 'm', 'B', '0', 'J', 'c', 'W', 't', '*', '|', 'O', '\\\\', '7', 'E', '@', 'x', '\"', 'X', 'V', 'r', 'n', 'Q', 'y', '&gt;', ']', '$', '%', '_', '\/', 'P', 'R', 'K', '}', '?', 'I', '8', 'Y', '=', 'N', '3', '.', 's', '&lt;', 'l', '4', 'w', 'j', 'G', '`', '2', 'i', 'C', '6', 'q', 'M', 'p', '1', '5', '&amp;', 'e', 'h' };\r\nchar cfile[256];\r\n[[[NSString alloc] initWithString:@\"SignerIdentity\"] getCString:cfile maxLength:sizeof(cfile) encoding:NSUTF8StringEncoding];\r\nNSLog(@\"%s\",cfile);\r\nfor(int i=0;i&lt;strlen(cfile);i++)\r\n\tcfile[i] = symCipher[cfile[i]-0x21];\r\nNSLog(@\"%s\",cfile);\r\nfor(int i=0;i&lt;strlen(cfile);i++)\r\n{\r\n\tfor(int j=0;j&lt;sizeof(symCipher);j++)\r\n\t{\r\n\t\tif(cfile[i] == symCipher[j])\r\n\t\t{\r\n\t\t\tcfile[i] = j+0x21;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n}\r\nNSLog(@\"%s\",cfile);<\/pre>\n<\/div>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u043c, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0448\u0438\u0444\u0440 \u0437\u0430\u043c\u0435\u043d\u044b, \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 &#8220;SignerIdentity&#8221;. \u0422\u0430\u043a \u043a\u0430\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u0434\u0435\u0442\u044c, \u043c\u0435\u0442\u043e\u0434 \u0448\u0438\u0444\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 &#8220;SignerIdentity&#8221; \u0432 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 , \u0430 \u0437\u0430\u0442\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0435\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 &#8220;SignerIdentity&#8221;<\/p>\n<p>\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0435\u0435 \u0432 signIdentity:<\/p>\n<div>\n<div>\u041a\u043e\u0434:<\/div>\n<pre dir=\"ltr\">char symCipher[] = { '(', 'H', 'Z', '[', '9', '{', '+', 'k', ',', 'o', 'g', 'U', ':', 'D', 'L', '#', 'S', ')', '!', 'F', '^', 'T', 'u', 'd', 'a', '-', 'A', 'f', 'z', ';', 'b', '\\'', 'v', 'm', 'B', '0', 'J', 'c', 'W', 't', '*', '|', 'O', '\\\\', '7', 'E', '@', 'x', '\"', 'X', 'V', 'r', 'n', 'Q', 'y', '&gt;', ']', '$', '%', '_', '\/', 'P', 'R', 'K', '}', '?', 'I', '8', 'Y', '=', 'N', '3', '.', 's', '&lt;', 'l', '4', 'w', 'j', 'G', '`', '2', 'i', 'C', '6', 'q', 'M', 'p', '1', '5', '&amp;', 'e', 'h' };\r\nchar csignid[] = \"V.NwY2*8YwC.C1\";\r\nfor(int i=0;i&lt;strlen(csignid);i++)\r\n{\r\n\tfor(int j=0;j&lt;sizeof(symCipher);j++)\r\n\t{\r\n\t\tif(csignid[i] == symCipher[j])\r\n\t\t{\r\n\t\t\tcsignid[i] = j+0x21;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n}\r\nNSString* signIdentity = [[NSString alloc] initWithCString:csignid encoding:NSUTF8StringEncoding];<\/pre>\n<\/div>\n<p>\u0410\u043b\u043b\u0438\u043b\u0443\u0439\u044f! \u041c\u044b \u0441\u043a\u0440\u044b\u0442\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0443 signIdentity \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c &#8220;SignerIdentity&#8221;. \u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u044d\u0442\u043e \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u043e\u043c \u0434\u043b\u044f \u0445\u0430\u043a\u0435\u0440\u0430 &#8211; \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u041f\u043e\u0441\u043b\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 &#8220;SignerIdentity&#8221; \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430\u0448\u0435\u0439 \u0442\u0430\u0439\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 signIdentity.<\/p>\n<p><strong>8) \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 JailBreak \u21161<\/strong>. \u0421\u0430\u043c\u044b\u0439 \u0430\u043d\u0430\u0440\u0445\u0438\u0447\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434:<\/p>\n<div>\n<div>\u041a\u043e\u0434:<\/div>\n<pre dir=\"ltr\">BOOL yes;\r\n\/\/DETECT JAILBREAK\r\nif ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@\"\/%@%@%@%@%@%@%@\", @\"App\", @\"lic\",@\"ati\", @\"ons\/\", @\"Cyd\", @\"ia.\", @\"app\"]]\r\n || [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@\"\/%@%@%@%@%@%@\", @\"pr\", @\"iva\",@\"te\/v\", @\"ar\/l\", @\"ib\/a\", @\"pt\/\"] isDirectory:&amp;yes]\r\n ||  [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@\"\/%@%@%@%@%@%@\", @\"us\", @\"r\/l\",@\"ibe\", @\"xe\", @\"c\/cy\", @\"dia\"] isDirectory:&amp;yes])\r\n{\r\n\t\/\/Jailbreak \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\r\n}<\/pre>\n<\/div>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432\u0437\u043b\u043e\u043c\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043f\u0430\u043f\u043e\u043a, \u0431\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u0440\u044f\u043a\u043d\u0443\u0442\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c. \u041c\u0435\u0442\u043e\u0434 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0447\u0435\u043d\u044c \u043e\u0442\u0447\u0430\u044f\u0432\u0448\u0438\u043c\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c. \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u0448\u0442\u044b\u043a\u0438 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442 \u0434\u0436\u0435\u0439\u043b\u0431\u0440\u0435\u0439\u043a, \u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u0442\u0438\u0432 \u043d\u0435\u0433\u043e. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u044f\u0442\u0430\u0442\u044c \u0438\u0441\u043a\u043e\u043c\u044b\u0435 \u043f\u0443\u0442\u0438(\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u043d\u0438\u0435).<\/p>\n<p><strong>9) \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 JailBreak \u21162<\/strong>. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043b\u0435\u0433\u0435\u043d\u0434\u044b:<\/p>\n<div>\n<div>\u041a\u043e\u0434:<\/div>\n<pre dir=\"ltr\">NSError *error;\r\n\/\/\u0421\u0442\u0440\u043e\u043a\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438\r\nNSString *str = @\"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u044d\u0442\u043e \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c, \u0442\u043e \u0443 \u0432\u0430\u0441 \u0434\u0436\u0435\u0439\u043b\u0431\u0440\u0435\u0439\u043a!\";\r\n\r\n\/\/\u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\r\n[str writeToFile:@\"\/private\/test_jail.txt\" atomically:YES\r\n         encoding:NSUTF8StringEncoding error:&amp;error];\r\n\/\/\u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u043e\u0441\u044c \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a\r\nif(error==nil){\r\n\t\/\/Jailbreak \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\r\n}<\/pre>\n<\/div>\n<p>\u041c\u0435\u0442\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0444\u0430\u0439\u043b\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0435\u0437 \u0434\u0436\u0435\u0439\u043b\u0431\u0440\u0435\u0439\u043a\u0430 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430.<\/p>\n<p><strong>\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0441\u043a\u0440\u044b\u0442\u044b\u0435(\u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430) \u043c\u0435\u0442\u043e\u0434\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430:<\/strong><\/p>\n<div>\n<div>\u041a\u043e\u0434:<\/div>\n<pre dir=\"ltr\">\/\/1\r\nclose(0);\r\n\r\n\/\/2\r\n[[UIApplication sharedApplication] terminate];\r\n\r\n\/\/3\r\n[[UIApplication sharedApplication] terminateWithSuccess];\r\n\r\n\/\/4\r\nUIWebView *a = [UIWebView alloc];\r\nUIWindow *b = [UIWindow alloc];\r\nUIView *c = [UIView alloc];\r\nUILabel *d = [UILabel alloc];\r\nUITextField *e = [UITextField alloc];\r\nUIImageView *f = [UIImageView alloc];\r\nUIImage *g = [UIImage alloc];\r\nUISwitch *h = [UISwitch alloc];\r\nUISegmentedControl *i = [UISegmentedControl alloc];\r\nUITabBar *j = [UITabBar alloc];\r\n[a alloc];\r\n[b alloc];\r\n[c alloc];\r\n[d alloc];\r\n[e alloc];\r\n[f alloc];\r\n[g alloc];\r\n[h alloc];\r\n[i alloc];\r\n[j alloc];\r\n\r\n\/\/5\r\nsystem(\"killall SpringBoard\");\r\n\r\n\/\/6\r\nnotify_post(\"com.apple.language.changed\");<\/pre>\n<\/div>\n<p>\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0430 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0438 \u043f\u0440\u043e\u0432\u043e\u0446\u0438\u0440\u0443\u044e\u0442 \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435.<\/p>\n<p>\u041f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u0438 \u043d\u0438 \u0432 \u0447\u0435\u043c \u0441\u0435\u0431\u0435 \u043d\u0435 \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0439\u0442\u0435!<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><div align=\"right\"><div class=\"sharexyWidgetNoindexUniqueClassName\"><div id=\"shr_67055920\"><\/div><\/div><\/div><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0430\u043f\u0438\u0448\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0432\u0437\u043b\u043e\u043c\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0431\u043e\u0440\u044c\u0431\u044b \u0441 \u043f\u0438\u0440\u0430\u0442\u0441\u0442\u0432\u043e\u043c. \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u0421\u043f\u043e\u0441\u043e\u0431\u044b, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0438\u0436\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u0437\u0430\u0449\u0438\u0442\u044b. \u0417\u0430 \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0435 \u043d\u0435\u0441\u0435\u0442 \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0430\u043c\u043e\u0439 iOS. \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043b\u0443\u0436\u0438\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f [&#8230;]<\/p>\n<div align=\"right\">\n<div class=\"sharexyWidgetNoindexUniqueClassName\">\n<div id=\"shr_67055920\"><\/div>\n<\/div>\n<\/div>\n<p><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[],"_links":{"self":[{"href":"http:\/\/ilya2606.ru\/index.php?rest_route=\/wp\/v2\/posts\/13"}],"collection":[{"href":"http:\/\/ilya2606.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/ilya2606.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/ilya2606.ru\/index.php?rest_route=\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"http:\/\/ilya2606.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13"}],"version-history":[{"count":5,"href":"http:\/\/ilya2606.ru\/index.php?rest_route=\/wp\/v2\/posts\/13\/revisions"}],"predecessor-version":[{"id":16,"href":"http:\/\/ilya2606.ru\/index.php?rest_route=\/wp\/v2\/posts\/13\/revisions\/16"}],"wp:attachment":[{"href":"http:\/\/ilya2606.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/ilya2606.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/ilya2606.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}