{"id":306258,"date":"2020-07-01T21:00:20","date_gmt":"2020-07-01T21:00:20","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=306258"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=306258","title":{"rendered":"IDA Pro: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c (\u043d\u0435 WinAPI)"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/509148\/\">\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442,<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/he\/cl\/d4\/hecld4kn_msnzxx5gh28gljqdoe.png\"><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432 IDA \u043c\u043d\u0435, \u0434\u0430 \u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430, \u0432\u0430\u043c \u0442\u043e\u0436\u0435, \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u0442\u044c \u0434\u0435\u043b\u043e \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u044a\u0451\u043c \u043a\u043e\u0434\u0430, \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438, \u043a \u0442\u043e\u043c\u0443 \u0436\u0435, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043c\u043d\u043e\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043d\u0443\u0436\u043d\u043e \u0443\u043c\u0435\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c \u043e\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c. \u0418, \u0435\u0441\u043b\u0438 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u043e\u0434\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e <code>int<\/code>, <code>void *<\/code> \u0434\u0430 <code>const char *<\/code>, \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0434\u0435\u043b\u0430\u0442\u044c\u0441\u044f \u043e\u0434\u043d\u0438\u043c\u0438 \u043b\u0438\u0448\u044c \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430\u043c\u0438 (\u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e FLAIR-\u0443\u0442\u0438\u043b\u0438\u0442 sig-\u0444\u0430\u0439\u043b\u044b). \u041d\u043e, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b, \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e, \u0442\u0443\u0442 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0433\u0438\u0438 \u043d\u0435 \u043e\u0431\u043e\u0439\u0434\u0451\u0448\u044c\u0441\u044f\u2026 \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u044f \u0431\u0443\u0434\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0438\u0433\u0440\u043e\u0439 \u0434\u043b\u044f Sony Playstation 1, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <code>PSYQ v4.7<\/code>.<a name=\"habracut\"><\/a><\/p>\n<p>  <\/p>\n<h1 id=\"dopolnitelnaya-magiya\">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0433\u0438\u044f<\/h1>\n<p>  <\/p>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e: \u0432\u0430\u043c \u043f\u043e\u043f\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u043e\u0442 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0436\u0435\u043b\u0435\u0437\u043a\u0438. \u041e\u0431\u044b\u0447\u043d\u044b\u0439 Bare-metal ROM (\u043c\u043e\u0436\u043d\u043e \u0434\u0430\u0436\u0435 \u0441 RTOS). \u0418\u043b\u0438 \u0436\u0435 ROM \u0438\u0433\u0440\u044b. \u0412 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e SDK\/DDK, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043d\u0430\u0431\u043e\u0440 <u>LIB<\/u>\/<u>H<\/u>\/<u>OBJ<\/u> \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043a\u043b\u0435\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u043d\u043a\u0435\u0440\u043e\u043c \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0448 \u043f\u043b\u0430\u043d \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u043c:<\/p>\n<p>  <\/p>\n<ol>\n<li>\u0412\u0437\u044f\u0442\u044c \u0432\u0441\u0435 <u>lib<\/u>\/<u>obj<\/u>-\u0444\u0430\u0439\u043b\u044b, \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b (\u0438\u043b\u0438 \u043d\u0430\u0431\u043e\u0440 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440). \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043b\u0438\u043d\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0439 \u043a\u043e\u0434.<\/li>\n<li>\u0412\u0437\u044f\u0442\u044c \u0432\u0441\u0435 h-\u0444\u0430\u0439\u043b\u044b \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0442\u0438\u043f\u043e\u0432. \u042d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0445\u0440\u0430\u043d\u0438\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u043e \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0438\u043c\u0435\u043d\u0430\u0445 \u0438 \u0442\u0438\u043f\u0430\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f.<\/li>\n<li>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b, \u0447\u0442\u043e\u0431\u044b \u0443 \u043d\u0430\u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0438\u0445 \u0438\u043c\u0435\u043d\u0430.<\/li>\n<li>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0442\u0438\u043f\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/li>\n<\/ol>\n<p>  <\/p>\n<h2 id=\"sozdayom-sig-fayly\">\u0421\u043e\u0437\u0434\u0430\u0451\u043c sig-\u0444\u0430\u0439\u043b\u044b<\/h2>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0431\u043e\u0440\u043e\u043c FLAIR-\u0443\u0442\u0438\u043b\u0438\u0442, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c IDA. \u0421\u043f\u0438\u0441\u043e\u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<\/p>\n<p>  <\/p>\n<ul>\n<li><u><code>pcf<\/code><\/u> \u2014 LIB\/OBJ-parser, \u0441\u043e\u0437\u0434\u0430\u0451\u0442 PAT-\u0444\u0430\u0439\u043b \u0438\u0437 COFF-\u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432<\/li>\n<li><u><code>pelf<\/code><\/u> \u2014 LIB\/OBJ-\u043f\u0430\u0440\u0441\u0435\u0440, \u0441\u043e\u0437\u0434\u0430\u0451\u0442 PAT-\u0444\u0430\u0439\u043b \u0438\u0437 ELF-\u0444\u0430\u0439\u043b\u043e\u0432 (Unix)<\/li>\n<li><u><code>plb<\/code><\/u> \u2014 LIB\/OBJ-parser, \u0441\u043e\u0437\u0434\u0430\u0451\u0442 PAT-\u0444\u0430\u0439\u043b \u0438\u0437 OMF-\u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432<\/li>\n<li><u><code>pmacho<\/code><\/u> \u2014 MACH-O-\u043f\u0430\u0440\u0441\u0435\u0440, \u0441\u043e\u0437\u0434\u0430\u0451\u0442 PAT-\u0444\u0430\u0439\u043b \u0438\u0437 MACH-O-\u0444\u0430\u0439\u043b\u043e\u0432 (MacOS)<\/li>\n<li><u><code>ppsx<\/code><\/u> \u2014 OBJ-\u043f\u0430\u0440\u0441\u0435\u0440, \u0441\u043e\u0437\u0434\u0430\u0451\u0442 PAT-\u0444\u0430\u0439\u043b \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 PSYQ<\/li>\n<li><u><code>ptmobj<\/code><\/u> \u2014 OBJ-\u043f\u0430\u0440\u0441\u0435\u0440, \u0441\u043e\u0437\u0434\u0430\u0451\u0442 PAT-\u0444\u0430\u0439\u043b \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 Trimedia<\/li>\n<li><u><code>sigmake<\/code><\/u> \u2014 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 PAT-\u0444\u0430\u0439\u043b \u0432 SIG-\u0444\u0430\u0439\u043b, \u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u0439 IDA<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e <code>ppsx<\/code>. \u0421\u043e\u0431\u0438\u0440\u0430\u044e bat-\u0444\u0430\u0439\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u044e \u0432\u0441\u0435 <code>lib-<\/code> \u0438 <code>obj-<\/code>\u0444\u0430\u0439\u043b\u044b, \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u043a \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0432\u044b\u0437\u043e\u0432 <code>ppsx<\/code>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0433\u043e PAT-\u0444\u0430\u0439\u043b\u0430. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435:<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">run_47.bat<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">@echo off  ppsx -a 2MBYTE.OBJ psyq47.pat ppsx -a 8MBYTE.OBJ psyq47.pat ppsx -a LIBAPI.LIB psyq47.pat ppsx -a LIBC.LIB psyq47.pat ppsx -a LIBC2.LIB psyq47.pat ppsx -a LIBCARD.LIB psyq47.pat ppsx -a LIBCD.LIB psyq47.pat ppsx -a LIBCOMB.LIB psyq47.pat ppsx -a LIBDS.LIB psyq47.pat ppsx -a LIBETC.LIB psyq47.pat ppsx -a LIBGPU.LIB psyq47.pat ppsx -a LIBGS.LIB psyq47.pat ppsx -a LIBGTE.LIB psyq47.pat ppsx -a LIBGUN.LIB psyq47.pat ppsx -a LIBHMD.LIB psyq47.pat ppsx -a LIBMATH.LIB psyq47.pat ppsx -a LIBMCRD.LIB psyq47.pat ppsx -a LIBMCX.LIB psyq47.pat ppsx -a LIBPAD.LIB psyq47.pat ppsx -a LIBPRESS.LIB psyq47.pat ppsx -a LIBSIO.LIB psyq47.pat ppsx -a ashldi3.obj psyq47.pat ppsx -a ashrdi3.obj psyq47.pat ppsx -a CACHE.OBJ psyq47.pat ppsx -a clear_cache.obj psyq47.pat ppsx -a CLOSE.OBJ psyq47.pat ppsx -a cmpdi2.obj psyq47.pat ppsx -a CREAT.OBJ psyq47.pat ppsx -a ctors.obj psyq47.pat ppsx -a divdi3.obj psyq47.pat ppsx -a dummy.obj psyq47.pat ppsx -a eh.obj psyq47.pat ppsx -a eh_compat.obj psyq47.pat ppsx -a exit.obj psyq47.pat ppsx -a ffsdi2.obj psyq47.pat ppsx -a fixdfdi.obj psyq47.pat ppsx -a fixsfdi.obj psyq47.pat ppsx -a fixtfdi.obj psyq47.pat ppsx -a fixunsdfdi.obj psyq47.pat ppsx -a fixunsdfsi.obj psyq47.pat ppsx -a fixunssfdi.obj psyq47.pat ppsx -a fixunssfsi.obj psyq47.pat ppsx -a fixunstfdi.obj psyq47.pat ppsx -a fixunsxfdi.obj psyq47.pat ppsx -a fixunsxfsi.obj psyq47.pat ppsx -a fixxfdi.obj psyq47.pat ppsx -a floatdidf.obj psyq47.pat ppsx -a floatdisf.obj psyq47.pat ppsx -a floatditf.obj psyq47.pat ppsx -a floatdixf.obj psyq47.pat ppsx -a FSINIT.OBJ psyq47.pat ppsx -a gcc_bcmp.obj psyq47.pat ppsx -a LSEEK.OBJ psyq47.pat ppsx -a lshrdi3.obj psyq47.pat ppsx -a moddi3.obj psyq47.pat ppsx -a muldi3.obj psyq47.pat ppsx -a negdi2.obj psyq47.pat ppsx -a new_handler.obj psyq47.pat ppsx -a op_delete.obj psyq47.pat ppsx -a op_new.obj psyq47.pat ppsx -a op_vdel.obj psyq47.pat ppsx -a op_vnew.obj psyq47.pat ppsx -a OPEN.OBJ psyq47.pat ppsx -a PROFILE.OBJ psyq47.pat ppsx -a pure.obj psyq47.pat ppsx -a read.obj psyq47.pat ppsx -a shtab.obj psyq47.pat ppsx -a snctors.obj psyq47.pat ppsx -a SNDEF.OBJ psyq47.pat ppsx -a SNMAIN.OBJ psyq47.pat ppsx -a SNREAD.OBJ psyq47.pat ppsx -a SNWRITE.OBJ psyq47.pat ppsx -a trampoline.obj psyq47.pat ppsx -a ucmpdi2.obj psyq47.pat ppsx -a udiv_w_sdiv.obj psyq47.pat ppsx -a udivdi3.obj psyq47.pat ppsx -a udivmoddi4.obj psyq47.pat ppsx -a umoddi3.obj psyq47.pat ppsx -a varargs.obj psyq47.pat ppsx -a write.obj psyq47.pat ppsx -a LIBSND.LIB psyq47.pat ppsx -a LIBSPU.LIB psyq47.pat ppsx -a LIBTAP.LIB psyq47.pat ppsx -a LOW.OBJ psyq47.pat ppsx -a MCGUI.OBJ psyq47.pat ppsx -a MCGUI_E.OBJ psyq47.pat ppsx -a NOHEAP.OBJ psyq47.pat ppsx -a NONE3.OBJ psyq47.pat ppsx -a NOPRINT.OBJ psyq47.pat ppsx -a POWERON.OBJ psyq47.pat<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p><code>LIBSN.LIB<\/code> \u0444\u0430\u0439\u043b \u0438\u043c\u0435\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u043e\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 OBJ-\u0444\u0430\u0439\u043b\u044b \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 <code>PSYLIB2.EXE<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 PSYQ. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c <code>run_47.bat<\/code>. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u044b\u0445\u043b\u043e\u043f:<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">run_47.bat output<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">2MBYTE.OBJ: skipped 0, total 1 8MBYTE.OBJ: skipped 0, total 1 LIBAPI.LIB: skipped 0, total 89 LIBC.LIB: skipped 0, total 55 LIBC2.LIB: skipped 0, total 50 LIBCARD.LIB: skipped 0, total 18 LIBCD.LIB: skipped 0, total 51 LIBCOMB.LIB: skipped 0, total 3 LIBDS.LIB: skipped 0, total 36 LIBETC.LIB: skipped 0, total 8 LIBGPU.LIB: skipped 0, total 60 LIBGS.LIB: skipped 0, total 167 LIBGTE.LIB: skipped 0, total 535 LIBGUN.LIB: skipped 0, total 2 LIBHMD.LIB: skipped 0, total 585 LIBMATH.LIB: skipped 0, total 59 LIBMCRD.LIB: skipped 0, total 7 LIBMCX.LIB: skipped 0, total 31 LIBPAD.LIB: skipped 0, total 21 LIBPRESS.LIB: skipped 0, total 7 LIBSIO.LIB: skipped 0, total 4 ashldi3.obj: skipped 0, total 1 ashrdi3.obj: skipped 0, total 1 CACHE.OBJ: skipped 0, total 1 clear_cache.obj: skipped 0, total 1 CLOSE.OBJ: skipped 0, total 1 cmpdi2.obj: skipped 0, total 1 CREAT.OBJ: skipped 0, total 1 ctors.obj: skipped 0, total 0 divdi3.obj: skipped 0, total 1 dummy.obj: skipped 0, total 1 Fatal: Illegal relocation information at file pos 0000022D eh_compat.obj: skipped 0, total 1 exit.obj: skipped 0, total 1 ffsdi2.obj: skipped 0, total 1 fixdfdi.obj: skipped 0, total 1 fixsfdi.obj: skipped 0, total 1 fixtfdi.obj: skipped 0, total 0 fixunsdfdi.obj: skipped 0, total 1 fixunsdfsi.obj: skipped 0, total 1 fixunssfdi.obj: skipped 0, total 1 fixunssfsi.obj: skipped 0, total 1 fixunstfdi.obj: skipped 0, total 0 fixunsxfdi.obj: skipped 0, total 0 fixunsxfsi.obj: skipped 0, total 0 fixxfdi.obj: skipped 0, total 0 floatdidf.obj: skipped 0, total 1 floatdisf.obj: skipped 0, total 1 floatditf.obj: skipped 0, total 0 floatdixf.obj: skipped 0, total 0 FSINIT.OBJ: skipped 0, total 1 gcc_bcmp.obj: skipped 0, total 1 LSEEK.OBJ: skipped 0, total 1 lshrdi3.obj: skipped 0, total 1 moddi3.obj: skipped 0, total 1 muldi3.obj: skipped 0, total 1 negdi2.obj: skipped 0, total 1 Fatal: Illegal relocation information at file pos 0000013D op_delete.obj: skipped 0, total 1 op_new.obj: skipped 0, total 1 op_vdel.obj: skipped 0, total 1 op_vnew.obj: skipped 0, total 1 OPEN.OBJ: skipped 0, total 1 PROFILE.OBJ: skipped 0, total 1 pure.obj: skipped 0, total 1 Fatal: Unknown record type 60 at 0000015F shtab.obj: skipped 0, total 0 Fatal: Unknown record type 60 at 000000EE SNDEF.OBJ: skipped 0, total 0 SNMAIN.OBJ: skipped 0, total 1 SNREAD.OBJ: skipped 0, total 1 SNWRITE.OBJ: skipped 0, total 1 trampoline.obj: skipped 0, total 0 ucmpdi2.obj: skipped 0, total 1 udiv_w_sdiv.obj: skipped 0, total 1 udivdi3.obj: skipped 0, total 1 udivmoddi4.obj: skipped 0, total 1 umoddi3.obj: skipped 0, total 1 varargs.obj: skipped 0, total 1 Fatal: Unknown record type 60 at 00000160 LIBSND.LIB: skipped 0, total 223 LIBSPU.LIB: skipped 0, total 126 LIBTAP.LIB: skipped 0, total 1 LOW.OBJ: skipped 0, total 1 Fatal: can't find symbol F003 MCGUI_E.OBJ: skipped 0, total 1 NOHEAP.OBJ: skipped 0, total 1 NONE3.OBJ: skipped 0, total 1 NOPRINT.OBJ: skipped 0, total 1 POWERON.OBJ: skipped 0, total 1<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u0412\u0438\u0434\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430, \u043d\u043e \u0432 \u0442\u0435\u0445 \u0444\u0430\u0439\u043b\u0430\u0445 \u0432\u0441\u0435\u0433\u043e 1 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430 (total 1), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e. \u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u043c PAT-\u0444\u0430\u0439\u043b \u0432 SIG-\u0444\u0430\u0439\u043b:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">sigmake -n&quot;PsyQ v4.7&quot; psyq47.pat psyq47.sig psyq47.sig: modules\/leaves: 1345\/2177, COLLISIONS: 21 See the documentation to learn how to resolve collisions.<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432:<\/p>\n<p>  <\/p>\n<ul>\n<li><u><code>psyq47.err<\/code><\/u> \u2014 \u0435\u0433\u043e \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u043c<\/li>\n<li><u><code>psyq47.exc<\/code><\/u> \u2014 \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/li>\n<li><u><code>psyq47.pat<\/code><\/u> \u2014 \u0435\u0433\u043e \u0442\u043e\u0436\u0435 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u043c<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043d\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 <code>.exc<\/code>-\u0444\u0430\u0439\u043b. \u0412\u0438\u0434\u0438\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">;--------- (delete these lines to allow sigmake to read this file) ; add '+' at the start of a line to select a module ; add '-' if you are not sure about the selection ; do nothing if you want to exclude all modules<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c <code>---------<\/code>, \u0432\u0441\u0451, \u0447\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 \u043d\u0438\u0436\u0435, \u0431\u0443\u0434\u0435\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0442\u0430\u043c \u0435\u0441\u0442\u044c. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">CdPosToInt                                          60 A21C 0000839001008690022903008010050021104500401002000F00633021104300 DsPosToInt                                          60 A21C 0000839001008690022903008010050021104500401002000F00633021104300<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0443, \u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c, \u043a\u0430\u043a\u0443\u044e \u0438\u0437 \u043d\u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0435\u0432\u0430, \u0440\u044f\u0434\u043e\u043c \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u043d\u0443\u0436\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0442\u0430\u0432\u0438\u043c <code>+<\/code>. \u042f \u0432\u044b\u0431\u0438\u0440\u0430\u044e \u043f\u0435\u0440\u0432\u0443\u044e. \u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c \u0441 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435, \u0435\u0441\u043b\u0438 \u0432\u0441\u0451 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c SIG-\u0444\u0430\u0439\u043b. \u0415\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 IDA.<\/p>\n<p>  <\/p>\n<h2 id=\"sozdayom-til-fayly\">\u0421\u043e\u0437\u0434\u0430\u0451\u043c til-\u0444\u0430\u0439\u043b\u044b<\/h2>\n<p>  <\/p>\n<p>\u042d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u0438\u043f\u0430\u0445, \u043e\u0431 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0442.\u043f. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0421\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u043d\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u044b <code>tilib<\/code>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441 \u0418\u0434\u043e\u0439 (\u0435\u0439, \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e, \u043d\u0443\u0436\u0435\u043d <code>ida.hlp<\/code> \u0444\u0430\u0439\u043b).<\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043d\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u043a\u043e\u0440\u043c\u0438\u0442\u044c include-\u0444\u0430\u0439\u043b\u044b \u0432\u0430\u0448\u0435\u0433\u043e SDK\/DDK. \u041f\u0440\u0438 \u0442\u043e\u043c, \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u044d\u0442\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0442\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c &quot;<em>Parse C header file&#8230;<\/em>&quot; \u0432 \u0441\u0430\u043c\u043e\u0439 IDA. \u0412\u043e\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0437 readme:<\/p>\n<p>  <\/p>\n<blockquote><p>Its functionality overlaps with &quot;Parse C header file&#8230;&quot; from IDA Pro.<br \/>  However, this utility is easier to use and provides more control<br \/>  over the output. Also, it can handle the preprocessor symbols, while<br \/>  the built-in command ignores them.<\/p><\/blockquote>\n<p>\u0423 \u044d\u0442\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u043d\u044e\u0430\u043d\u0441: \u043e\u043d\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0440\u0435\u0436\u0438\u043c, \u043a\u043e\u0433\u0434\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0437\u0430\u043c\u0430\u043d\u0433\u043b\u0435\u043d\u044b \u043b\u0438\u0431\u043e \u0438\u043c\u0435\u044e\u0442 \u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0438\u043c\u0435\u043d\u0438 \u043d\u0438\u0436\u043d\u0435\u0435 \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043b\u0438\u043d\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u044d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0444\u043b\u0430\u0433\u043e\u043c <code>-Gn<\/code>.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0434\u0430\u043d\u043d\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d include-\u0444\u0430\u0439\u043b. \u0415\u0441\u043b\u0438 \u0436\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u043d\u043e\u0433\u043e, \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u043e\u0440\u0443\u0434\u0438\u0442\u044c include-\u0444\u0430\u0439\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"cpp\">#include &quot;header1.h&quot; #include &quot;header2.h&quot; #include &quot;header3.h&quot; \/\/ ...<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u043b\u0430\u0433\u0430 <code>-hFileName.h<\/code>. \u0414\u0430\u043b\u0435\u0435, \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u043f\u0443\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 header-\u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">tilib -c -Gn -I. -hpsyq47.h psyq47.til<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c til-\u0444\u0430\u0439\u043b, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u044b\u0439 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u043b\u0430\u0434\u0451\u043c \u0435\u0433\u043e \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 IDA: <code>sig\\mips<\/code>.<\/p>\n<p>  <\/p>\n<h1 id=\"proveryaem-rezultat\">\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/h1>\n<p>  <\/p>\n<p>\u0417\u0430\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c ROM-\u0444\u0430\u0439\u043b \u0432 IDA, \u0434\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0441\u044f \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u0414\u0430\u043b\u0435\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 <code>Options<\/code>-&gt;<code>Compiler<\/code>:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/t-\/jf\/p6\/t-jfp65zrit1i_wbxx7bbw78oqu.png\"><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0435\u043d\u044f\u0435\u043c <code>Unknown<\/code> \u043d\u0430 <code>GNU C++<\/code> (\u0432 \u0441\u043b\u0443\u0447\u0430\u0435 PSX). \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u0430\u043a \u0435\u0441\u0442\u044c:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/6c\/wg\/-w\/6cwg-wexjqpdhcvrv1hrac7ezrc.png\"><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0436\u043c\u0451\u043c <code>Shift+F5<\/code> (\u043b\u0438\u0431\u043e \u043c\u0435\u043d\u044e <code>View<\/code>-&gt;<code>Open subviews<\/code>-&gt;<code>Signatures<\/code>), \u0436\u043c\u0451\u043c <code>Insert<\/code> \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/fi\/4d\/yz\/fi4dyz4zgsly2w8cdvpsano2zwu.png\"><\/p>\n<p>  <\/p>\n<p>\u0416\u043c\u0451\u043c <code>OK<\/code> \u0438 \u0436\u0434\u0451\u043c, \u043f\u043e\u043a\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b (\u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c 482 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438).<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/nd\/u9\/cq\/ndu9cqvhbv5dfi007gh_kl1b6w8.png\"><\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0442\u0438\u043f\u043e\u0432 (til-\u0444\u0430\u0439\u043b). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0436\u043c\u0451\u043c <code>Shift+F11<\/code> (\u043b\u0438\u0431\u043e <code>View<\/code>-&gt;<code>Open subviews<\/code>-&gt;<code>Type libraries<\/code>) \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e IDA \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 (\u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u0435\u0433\u043e \u0443\u0436\u0435 \u0443\u043a\u0430\u0437\u0430\u043b\u0438):<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/72\/7o\/6m\/727o6mcoljgopyivafqot8sgsnw.png\"><\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u044d\u0442\u043e \u043d\u0430\u043c \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0435 \u043f\u043e\u043c\u0435\u0448\u0430\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c til-\u0444\u0430\u0439\u043b (\u0432\u0441\u0451 \u0442\u0430\u043a \u0436\u0435, \u0447\u0435\u0440\u0435\u0437 <code>Insert<\/code>):<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/3h\/x-\/5y\/3hx-5ypuusvkjzan-3onlydma0k.png\"><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u043e, \u0447\u0442\u043e \u0442\u0430\u043a \u0445\u043e\u0442\u0435\u043b\u0438:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/he\/cl\/d4\/hecld4kn_msnzxx5gh28gljqdoe.png\"><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u0438\u043f\u0430\u0445, \u0438 \u0432\u044b\u0445\u043b\u043e\u043f \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043a\u0443\u0434\u0430 \u043b\u0443\u0447\u0448\u0435:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/z0\/if\/cq\/z0ifcqkb-u5l_rulv61qie3q6va.png\"><\/p>\n<p>  <\/p>\n<h2 id=\"ps\">P.S.<\/h2>\n<p>  <\/p>\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u044d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0430\u0441 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439. \u0423\u0434\u0430\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433\u0430!<\/p>\n<\/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=\"https:\/\/habr.com\/ru\/post\/509148\/\"> https:\/\/habr.com\/ru\/post\/509148\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/509148\/\">\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442,<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/he\/cl\/d4\/hecld4kn_msnzxx5gh28gljqdoe.png\"><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432 IDA \u043c\u043d\u0435, \u0434\u0430 \u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430, \u0432\u0430\u043c \u0442\u043e\u0436\u0435, \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u0442\u044c \u0434\u0435\u043b\u043e \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u044a\u0451\u043c \u043a\u043e\u0434\u0430, \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438, \u043a \u0442\u043e\u043c\u0443 \u0436\u0435, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043c\u043d\u043e\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043d\u0443\u0436\u043d\u043e \u0443\u043c\u0435\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c \u043e\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c. \u0418, \u0435\u0441\u043b\u0438 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u043e\u0434\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e <code>int<\/code>, <code>void *<\/code> \u0434\u0430 <code>const char *<\/code>, \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0434\u0435\u043b\u0430\u0442\u044c\u0441\u044f \u043e\u0434\u043d\u0438\u043c\u0438 \u043b\u0438\u0448\u044c \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430\u043c\u0438 (\u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e FLAIR-\u0443\u0442\u0438\u043b\u0438\u0442 sig-\u0444\u0430\u0439\u043b\u044b). \u041d\u043e, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b, \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e, \u0442\u0443\u0442 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0433\u0438\u0438 \u043d\u0435 \u043e\u0431\u043e\u0439\u0434\u0451\u0448\u044c\u0441\u044f\u2026 \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u044f \u0431\u0443\u0434\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0438\u0433\u0440\u043e\u0439 \u0434\u043b\u044f Sony Playstation 1, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <code>PSYQ v4.7<\/code>.<\/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-306258","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/306258","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=306258"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/306258\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=306258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=306258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=306258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}