{"id":155925,"date":"2012-10-25T01:51:03","date_gmt":"2012-10-24T21:51:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=155925"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=155925","title":{"rendered":"<span class=\"post_title\">\u041a\u0430\u043a \u043c\u0438\u0440\u043d\u044b\u0439 reverse engineering \u043f\u043e\u043c\u043e\u0433 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0438<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0442\u0435\u0440\u0435\u043e\u0442\u0438\u043f, \u0447\u0442\u043e reverse engineering \u2014 \u044d\u0442\u043e \u0437\u0430\u043d\u044f\u0442\u0438\u0435 \u0434\u043b\u044f \u0437\u043b\u044b\u0445 \u0445\u0430\u043a\u0435\u0440\u043e\u0432 \u0432 \u0442\u0435\u043c\u043d\u044b\u0445 \u043e\u0447\u043a\u0430\u0445 \u0438 \u0431\u043b\u0435\u0441\u0442\u044f\u0449\u0438\u0445 \u043a\u043e\u0436\u0430\u043d\u044b\u0445 \u043f\u0430\u043b\u044c\u0442\u043e. \u041f\u043e\u0434 \u043f\u043e\u043a\u0440\u043e\u0432\u043e\u043c \u043d\u043e\u0447\u0438, \u0432 \u043f\u0435\u0440\u0435\u0440\u044b\u0432\u0430\u0445 \u043c\u0435\u0436\u0434\u0443 \u0431\u0435\u0433\u043e\u0442\u043d\u0435\u0439 \u043f\u043e \u0441\u0442\u0435\u043d\u0430\u043c \u0438 \u0440\u0443\u043a\u043e\u043f\u0430\u0448\u043d\u044b\u043c\u0438 \u0441\u0445\u0432\u0430\u0442\u043a\u0430\u043c\u0438 \u0441 \u0442\u043e\u043b\u043f\u0430\u043c\u0438 \u0441\u043f\u0435\u0446\u043d\u0430\u0437\u043e\u0432\u0446\u0435\u0432, \u044d\u0442\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0435 \u043d\u0435\u043b\u044e\u0434\u0438 \u0442\u0432\u043e\u0440\u044f\u0442 \u0441\u0442\u0440\u0430\u0448\u043d\u044b\u0435 \u0432\u0437\u043b\u043e\u043c\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043f\u0435\u043d\u0442\u0430\u0433\u043e\u043d\u043e\u0432 \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445. \u0421\u0430\u043c\u0438 \u0432\u0437\u043b\u043e\u043c\u044b \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \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 \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u041d\u0443 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0432\u0437\u043b\u043e\u043c\u0430 \u043f\u043e \u0447<i>\u041e<\/i>\u0440\u043d\u044b\u043c \u044d\u043a\u0440\u0430\u043d\u0430\u043c \u0430\u0434\u0441\u043a\u0438\u0445 \u0445\u0430\u043a\u0435\u0440\u0441\u043a\u0438\u0445 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u043e\u0432 \u0441 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439 \u041e\u0421 \u043f\u043e\u043b\u0437\u0443\u0442 \u0437\u0435\u043b\u0451\u043d\u044b\u0435 \u043a\u0440\u0430\u043a\u043e\u0437\u044f\u0431\u043b\u044b \u0438\/\u0438\u043b\u0438 \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f \u043a\u0430\u043a\u0430\u044f-\u0442\u043e 3D-\u0444\u0438\u0433\u043e\u0432\u0438\u043d\u0430\u2026<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/16c\/94e\/cbc\/16c94ecbce2372e5a16362474a36f170.jpg\"\/><\/p>\n<p>  \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043e\u0442\u043e\u0439\u0442\u0438 \u043e\u0442 \u0437\u0430\u0442\u0430\u0441\u043a\u0430\u043d\u043d\u044b\u0445 \u0433\u043e\u043b\u043b\u0438\u0432\u0443\u0434\u0441\u043a\u0438\u0445 \u0448\u0442\u0430\u043c\u043f\u043e\u0432 \u043f\u0440\u043e \u0437\u043b\u044b\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a\u043e\u0432 \u0438 \u043f\u043e\u0432\u0435\u0434\u0430\u0442\u044c \u0432\u0430\u043c, \u0434\u043e\u0440\u043e\u0433\u0438\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u043c\u0438\u0440\u043d\u044b\u0439 reverse engineering \u043f\u043e\u043c\u043e\u0433 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0438. \u041d\u0430\u0434\u0435\u044e\u0441\u044c \u044d\u0442\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u043e\u0448\u0430\u0442\u043d\u0435\u0442 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u0441\u0442\u0435\u0440\u0435\u043e\u0442\u0438\u043f, \u0447\u0442\u043e reverse engineering \u2014 \u044d\u0442\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043b\u043e\u0445\u043e \u0438 \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0445\u043e\u0440\u043e\u0448\u0438\u043c \u043b\u044e\u0434\u044f\u043c.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0427\u0443\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0435\u0441\u044f\u0446\u0430 \u043d\u0430\u0437\u0430\u0434 \u044f \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0440\u0435\u0432\u0435\u0440\u0441\u0438\u043b \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 1.71 \u0434\u043b\u044f Android (\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442). \u041a\u0440\u043e\u043c\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u044f \u043d\u0430\u0448\u0435\u043b \u0442\u0430\u043c \u043d\u0435\u043a\u0438\u0439 \u0437\u0430\u0433\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 <code>ru.yandex.core.CrashHandler.sendBug(String paramString)<\/code>:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Smali \u043a\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430 sendBug(String paramString) (\u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u0439, \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c)<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>.class public abstract Lru\/yandex\/core\/CrashHandler; .super Landroid\/app\/Activity; .source &quot;CrashHandler.java&quot;  # ... # \u043d\u0435\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043a\u043e\u0434\u0430 -  \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043e # ...  .method sendBug(Ljava\/lang\/String;)V     .locals 5     .parameter &quot;p1&quot;      .prologue     .line 76     new-instance v0, Lorg\/json\/JSONObject;      .line 79     .local v0, v0:Ljava\/lang\/Object;     invoke-direct {v0}, Lorg\/json\/JSONObject;-&gt;&lt;init&gt;()V      .line 84     .local v0, v0:Ljava\/lang\/Object;     :try_start_5     const-string v1, &quot;model&quot;      .line 87     .local v1, v1:Ljava\/lang\/Object;     sget-object v2, Landroid\/os\/Build;-&gt;MODEL:Ljava\/lang\/String;      .line 90     .local v2, v2:Ljava\/lang\/Object;     invoke-virtual {v0, v1, v2}, Lorg\/json\/JSONObject;-&gt;         put(Ljava\/lang\/String;Ljava\/lang\/Object;)Lorg\/json\/JSONObject;      .line 93     const-string v1, &quot;systemVersion&quot;      .line 95     sget-object v2, Landroid\/os\/Build$VERSION;-&gt;RELEASE:Ljava\/lang\/String;      .line 97     invoke-virtual {v0, v1, v2}, Lorg\/json\/JSONObject;-&gt;         put(Ljava\/lang\/String;Ljava\/lang\/Object;)Lorg\/json\/JSONObject;      .line 100     const-string v1, &quot;component&quot;      .line 102     const-string v2, &quot;Android&quot;      .line 104     invoke-virtual {v0, v1, v2}, Lorg\/json\/JSONObject;-&gt;         put(Ljava\/lang\/String;Ljava\/lang\/Object;)Lorg\/json\/JSONObject;      .line 107     const-string v1, &quot;appVersion&quot;      .line 109     invoke-static {}, Lru\/yandex\/core\/CoreApplication;-&gt;getAppBuildIdFromNative()Ljava\/lang\/String;      .line 111     move-result-object v2      .line 113     invoke-virtual {v0, v1, v2}, Lorg\/json\/JSONObject;-&gt;         put(Ljava\/lang\/String;Ljava\/lang\/Object;)Lorg\/json\/JSONObject;      .line 116     const-string v1, &quot;appName&quot;      .line 118     invoke-static {}, Lru\/yandex\/core\/CoreApplication;-&gt;getAppNameFromNative()Ljava\/lang\/String;      .line 120     move-result-object v2      .line 122     invoke-virtual {v0, v1, v2}, Lorg\/json\/JSONObject;-&gt;         put(Ljava\/lang\/String;Ljava\/lang\/Object;)Lorg\/json\/JSONObject;      .line 125     const-string v1, &quot;summary&quot;      .line 127     const-string v2, &quot;Android Native Crash&quot;      .line 129     invoke-virtual {v0, v1, v2}, Lorg\/json\/JSONObject;-&gt;         put(Ljava\/lang\/String;Ljava\/lang\/Object;)Lorg\/json\/JSONObject;     :try_end_33     .catch Lorg\/json\/JSONException; {:try_start_5 .. :try_end_33} :catch_80      .line 137     .end local v2           #v2:Ljava\/lang\/Object;     :goto_33     :try_start_33     new-instance v1, Lru\/yandex\/core\/ClientHttpRequest;      .line 140     .local v1, v1:Ljava\/lang\/Object;     new-instance v2, Ljava\/net\/URL;      .line 143     .local v2, v2:Ljava\/lang\/Object;     new-instance v3, Ljava\/lang\/StringBuilder;      .line 146     .local v3, v3:Ljava\/lang\/Object;     const-string v4, &quot;http:\/\/dmitriyap.dyndns.org:9091\/rest\/jconnect\/latest\/issue\/create?project=&quot;      .line 149     .local v4, v4:Ljava\/lang\/Object;     invoke-direct {v3, v4}, Ljava\/lang\/StringBuilder;-&gt;&lt;init&gt;(Ljava\/lang\/String;)V      .line 152     .local v3, v3:Ljava\/lang\/Object;     invoke-virtual {p0}, Lru\/yandex\/core\/CrashHandler;-&gt;getJiraProjectName()Ljava\/lang\/String;      .line 154     move-result-object v4      .line 156     invoke-virtual {v3, v4}, Ljava\/lang\/StringBuilder;-&gt;         append(Ljava\/lang\/String;)Ljava\/lang\/StringBuilder;      .line 158     move-result-object v3      .line 160     invoke-virtual {v3}, Ljava\/lang\/StringBuilder;-&gt;toString()Ljava\/lang\/String;      .line 162     move-result-object v3      .line 164     invoke-direct {v2, v3}, Ljava\/net\/URL;-&gt;&lt;init&gt;(Ljava\/lang\/String;)V      .line 167     .local v2, v2:Ljava\/lang\/Object;     invoke-direct {v1, v2}, Lru\/yandex\/core\/ClientHttpRequest;-&gt;&lt;init&gt;(Ljava\/net\/URL;)V      .line 171     .local v1, v1:Ljava\/lang\/Object;     const-string v2, &quot;issue&quot;      .line 173     const-string v3, &quot;issue.json&quot;      .line 175     new-instance v4, Ljava\/io\/ByteArrayInputStream;      .line 178     .local v4, v4:Ljava\/lang\/Object;     invoke-virtual {v0}, Lorg\/json\/JSONObject;-&gt;toString()Ljava\/lang\/String;      .line 180     move-result-object v0      .line 182     invoke-virtual {v0}, Ljava\/lang\/String;-&gt;getBytes()[B      .line 184     move-result-object v0      .line 186     invoke-direct {v4, v0}, Ljava\/io\/ByteArrayInputStream;-&gt;&lt;init&gt;([B)V      .line 189     .local v4, v4:Ljava\/lang\/Object;     const-string v0, &quot;application\/json&quot;      .line 191     invoke-virtual {v1, v2, v3, v4, v0}, Lru\/yandex\/core\/ClientHttpRequest;-&gt;              setParameter(Ljava\/lang\/String;Ljava\/lang\/String;Ljava\/io\/InputStream;Ljava\/lang\/String;)V      .line 194     const-string v0, &quot;crash&quot;      .line 196     const-string v2, &quot;log.txt&quot;      .line 198     new-instance v3, Ljava\/io\/ByteArrayInputStream;      .line 201     .local v3, v3:Ljava\/lang\/Object;     invoke-virtual {p1}, Ljava\/lang\/String;-&gt;toString()Ljava\/lang\/String;      .line 203     move-result-object v4      .line 205     invoke-virtual {v4}, Ljava\/lang\/String;-&gt;getBytes()[B      .line 207     move-result-object v4      .line 209     invoke-direct {v3, v4}, Ljava\/io\/ByteArrayInputStream;-&gt;&lt;init&gt;([B)V      .line 212     .local v3, v3:Ljava\/lang\/Object;     invoke-virtual {v1, v0, v2, v3}, Lru\/yandex\/core\/ClientHttpRequest;-&gt;         setParameter(Ljava\/lang\/String;Ljava\/lang\/String;Ljava\/io\/InputStream;)V      .line 215     invoke-virtual {v1}, Lru\/yandex\/core\/ClientHttpRequest;-&gt;post()Ljava\/io\/InputStream;     :try_end_7d     .catch Ljava\/io\/IOException; {:try_start_33 .. :try_end_7d} :catch_7e      .line 222     .end local v1           #v1:Ljava\/lang\/Object;     .end local v2           #v2:Ljava\/lang\/Object;     .end local v3           #v3:Ljava\/lang\/Object;     .end local v4           #v4:Ljava\/lang\/Object;     :goto_7d     return-void      .line 226     :catch_7e     move-exception v0      .line 228     goto :goto_7d      .line 232     :catch_80     move-exception v1      .line 235     .local v1, v1:Ljava\/lang\/Object;     goto :goto_33 .end method <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0412\u043e\u0442 \u0442\u043e\u0442 \u0436\u0435 \u043c\u0435\u0442\u043e\u0434 <code>sendBug(String paramString)<\/code> \u0432 Java-\u043f\u043e\u0434\u043e\u0431\u043d\u043e\u043c \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u0441 dex \u0444\u0430\u0439\u043b\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"http:\/\/java.decompiler.free.fr\/jd-gui\/downloads\">Java Decompiller<\/a>:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u043e\u0442 \u0436\u0435 \u043c\u0435\u0442\u043e\u0434 \u0432 Java-\u043f\u043e\u0434\u043e\u0431\u043d\u043e\u043c \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">package ru.yandex.core;  # ... # \u0438\u043c\u043f\u043e\u0440\u0442 - \u043d\u0435 \u0432\u0430\u0436\u043d\u043e, \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043e # ...  public abstract class CrashHandler extends Activity {  # ... #  \u043d\u0435\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043a\u043e\u0434 -  \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043e # ...    void sendBug(String paramString) {     JSONObject localJSONObject = new JSONObject();     try {       localJSONObject.put(&quot;model&quot;, Build.MODEL);       localJSONObject.put(&quot;systemVersion&quot;, Build.VERSION.RELEASE);       localJSONObject.put(&quot;component&quot;, &quot;Android&quot;);       localJSONObject.put(&quot;appVersion&quot;, CoreApplication.getAppBuildIdFromNative());       localJSONObject.put(&quot;appName&quot;, CoreApplication.getAppNameFromNative());       localJSONObject.put(&quot;summary&quot;, &quot;Android Native Crash&quot;);       try {          ClientHttpRequest localClientHttpRequest =             new ClientHttpRequest(                 new URL(&quot;http:\/\/dmitriyap.dyndns.org:9091\/rest\/jconnect\/latest\/issue\/create?project=&quot; +                 getJiraProjectName()));         localClientHttpRequest.setParameter(&quot;issue&quot;, &quot;issue.json&quot;,                  new ByteArrayInputStream(localJSONObject.toString().getBytes()), &quot;application\/json&quot;);         localClientHttpRequest.setParameter(&quot;crash&quot;, &quot;log.txt&quot;,                  new ByteArrayInputStream(paramString.toString().getBytes()));         localClientHttpRequest.post();         return;       }       catch (IOException localIOException) {         \/\/ \u0422\u0443\u0442 Java Decompiller \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0431\u0440\u0435\u0434 - \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043e         \/\/ ...       }     }     catch (JSONException localJSONException) {       \/\/ \u0422\u0443\u0442 \u0442\u043e\u0436\u0435... \u0432\u043e\u043e\u0431\u0449\u0435 \u0441 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c\u0438 Java Decompiller \u043d\u0435 \u0434\u0440\u0443\u0436\u0438\u0442, \u0443\u0432\u044b       \/\/ ...     }   } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u042d\u0442\u043e\u0442 \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0432\u0430\u043b\u0438\u0434\u0435\u043d \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u044f\u0437\u044b\u043a\u0430 Java, \u043d\u043e \u0437\u0430\u0442\u043e \u043e\u043d \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0435\u0442\u043e\u0434\u0430 <code>sendBug(String paramString)<\/code>. \u041f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430, \u043d\u0430 \u043d\u0435\u043a\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 <code>http:\/\/dmitriyap.dyndns.org:9091<\/code> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>ClientHttpRequest.post()<\/code> \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043a\u0443\u0447\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 <code>crash<\/code> \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434\u0443 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <code>paramString<\/code>. \u0421\u0443\u0434\u044f \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u00ab\u043d\u0430 \u0442\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435\u00bb \u043f\u043e\u0434\u043d\u044f\u0442\u0430 <a href=\"http:\/\/www.atlassian.com\/software\/jira\/overview\">Atlassian Jira<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 <code>sendBug(String paramString)<\/code> \u0441\u043e\u0437\u0434\u0430\u0435\u0442 issue \u0441\u0440\u0430\u0437\u0443 \u0432\u043d\u043e\u0441\u044f \u0432 \u043d\u0435\u0433\u043e \u0432\u0441\u044e \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u043c\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u0422.\u0435. \u043f\u043e \u0441\u0443\u0442\u0438 \u043c\u0435\u0442\u043e\u0434 <code>sendBug(String paramString)<\/code> \u0434\u0435\u043b\u0430\u0435\u0442 \u0440\u043e\u0432\u043d\u043e \u0442\u043e \u0447\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u2014 \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442 bug report&#8217;\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0432 bugtracker. \u0412\u0440\u043e\u0434\u0435 \u0431\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e, \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0430\u043a \u0434\u0435\u043b\u0430\u044e\u0442. \u041e\u0434\u043d\u0430\u043a\u043e \u043a\u043e\u0434 \u0441\u0430\u043c\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b:<\/p>\n<ol>\n<li>\u041a\u043e\u043c\u0443 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0434\u043e\u043c\u0435\u043d <code>http:\/\/dmitriyap.dyndns.org<\/code>? \u042d\u0442\u043e \u044f\u0432\u043d\u043e \u043d\u0435 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0434\u043e\u043c\u0435\u043d \u042f\u043d\u0434\u0435\u043a\u0441\u0430.<\/li>\n<li>\u0427\u0442\u043e \u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u0443 <code>sendBug(String paramString)<\/code> \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0435 <code>paramString<\/code> \u0438 \u043f\u043e\u0442\u043e\u043c\u0443 \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 <code>http:\/\/dmitriyap.dyndns.org<\/code>?<\/li>\n<li>\u041f\u0440\u0438 \u043a\u0430\u043a\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 <code>sendBug(String paramString)<\/code>?<\/li>\n<\/ol>\n<p>  \u041e\u0442\u0432\u0435\u0442 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e. \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u043e\u0438\u0441\u043a \u0432 Google <a href=\"https:\/\/www.google.com.ua\/search?q=dmitriyap\">\u0434\u0430\u0435\u0442<\/a> \u0447\u0442\u043e <i>dmitriyap<\/i> \u2014 \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043d\u0438\u043a \u0433\u043b\u0430\u0432\u044b Mobile Services Development Department \u0432 \u042f\u043d\u0434\u0435\u043a\u0441\u0435. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0434\u043e\u043c\u0435\u043d <code>http:\/\/dmitriyap.dyndns.org<\/code> \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d. \u0422\u043e\u0442 \u0444\u0430\u043a\u0442 \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0448\u0438\u0444\u0440\u0443\u044e\u0442\u0441\u044f \u0438 \u043e\u0442\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d dyndns.org, \u0430 \u043d\u0435 \u043d\u0430 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u043e\u043c\u0435\u043d \u042f\u043d\u0434\u0435\u043a\u0441\u0430, \u043d\u0430\u0432\u043e\u0434\u0438\u0442 \u043d\u0430 \u043c\u044b\u0441\u043b\u044c, \u0447\u0442\u043e \u0432\u0441\u044f \u044d\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 bug report&#8217;\u0438\u043d\u0433\u0430 \u0431\u044b\u043b\u0430 \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 Android-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0438 \u043d\u0430\u0441\u043f\u0435\u0445, \u00ab\u043d\u0430 \u043a\u043e\u043b\u0435\u043d\u043a\u0435\u00bb. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u043b\u043e \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u0440\u0435\u043b\u0438\u0437. \u041d\u043e, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u043f\u043e \u043d\u0435\u0434\u043e\u0441\u043c\u043e\u0442\u0440\u0443, \u043f\u043e\u043f\u0430\u043b\u0430.<\/p>\n<p>  \u0427\u0442\u043e \u0436\u0435 \u0441 \u043f\u0435\u0440\u0432\u044b\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u043d\u0435\u0435 \u044f\u0441\u043d\u043e. \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a\u043e \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u043e\u043f\u0440\u043e\u0441\u0443: \u0447\u0442\u043e \u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u0443 <code>sendBug(String paramString)<\/code> \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0435 <code>paramString<\/code> \u0438 \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 <code>http:\/\/dmitriyap.dyndns.org<\/code>? \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430 <code>doInBackground(...)<\/code> \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 <code>CrashHandler$1<\/code>:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Smali \u043a\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430 doInBackground(&#8230;)<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>.field log:Ljava\/lang\/String;  .method protected varargs doInBackground([Ljava\/lang\/Void;)Ljava\/lang\/Void;     .locals 5     .parameter &quot;p1&quot;      .prologue     .line 59     const\/4 v4, 0x1      .line 64     .local v4, v4:I     :try_start_1     invoke-static {}, Ljava\/lang\/Runtime;-&gt;getRuntime()Ljava\/lang\/Runtime;      .line 66     move-result-object v0      .line 69     .local v0, v0:Ljava\/lang\/Object;     const\/4 v1, 0x4      .line 72     .local v1, v1:B     new-array v1, v1, [Ljava\/lang\/String;      .line 75     .local v1, v1:Ljava\/lang\/Object;     const\/4 v2, 0x0      .line 78     .local v2, v2:Ljava\/lang\/Object;     const-string v3, &quot;logcat&quot;      .line 81     .local v3, v3:Ljava\/lang\/Object;     aput-object v3, v1, v2      .line 83     const\/4 v2, 0x1      .line 86     .local v2, v2:I     const-string v3, &quot;-d&quot;      .line 88     aput-object v3, v1, v2      .line 90     const\/4 v2, 0x2      .line 93     .local v2, v2:B     const-string v3, &quot;-v&quot;      .line 95     aput-object v3, v1, v2      .line 97     const\/4 v2, 0x3      .line 99     const-string v3, &quot;threadtime&quot;      .line 101     aput-object v3, v1, v2      .line 103     invoke-virtual {v0, v1}, Ljava\/lang\/Runtime;-&gt;exec([Ljava\/lang\/String;)Ljava\/lang\/Process;      .line 105     move-result-object v0      .line 107     iput-object v0, p0, Lru\/yandex\/core\/CrashHandler$1;-&gt;process:Ljava\/lang\/Process;      .line 110     iget-object v0, p0, Lru\/yandex\/core\/CrashHandler$1;-&gt;process:Ljava\/lang\/Process;      .line 112     invoke-virtual {v0}, Ljava\/lang\/Process;-&gt;getInputStream()Ljava\/io\/InputStream;      .line 114     move-result-object v0      .line 116     invoke-virtual {p0, v0}, Lru\/yandex\/core\/CrashHandler$1;-&gt;         readAllOf(Ljava\/io\/InputStream;)Ljava\/lang\/String;      .line 118     move-result-object v0      .line 120     iput-object v0, p0, Lru\/yandex\/core\/CrashHandler$1;-&gt;log:Ljava\/lang\/String;     :try_end_2e     .catch Ljava\/io\/IOException; {:try_start_1 .. :try_end_2e} :catch_30      .line 127     .end local v2           #v2:B     .end local v3           #v3:Ljava\/lang\/Object;     :goto_2e     const\/4 v0, 0x0      .line 130     .local v0, v0:Ljava\/lang\/Object;     return-object v0      .line 135     .end local v0           #v0:Ljava\/lang\/Object;     .end local v1           #v1:Ljava\/lang\/Object;     :catch_30     move-exception v0      .line 139     .local v0, v0:Ljava\/lang\/Object;     iget-object v1, p0, Lru\/yandex\/core\/CrashHandler$1;-&gt;         this$0:Lru\/yandex\/core\/CrashHandler;      .line 142     .local v1, v1:Ljava\/lang\/Object;     invoke-virtual {v0}, Ljava\/io\/IOException;-&gt;toString()Ljava\/lang\/String;      .line 144     move-result-object v0      .line 146     invoke-static {v1, v0, v4}, Landroid\/widget\/Toast;-&gt;        makeText(Landroid\/content\/Context;Ljava\/lang\/CharSequence;I)Landroid\/widget\/Toast;      .line 148     move-result-object v0      .line 150     invoke-virtual {v0}, Landroid\/widget\/Toast;-&gt;show()V      .line 152     goto :goto_2e .end method <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 Java-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Java Decompiller:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u043e\u0442 \u0436\u0435 \u043c\u0435\u0442\u043e\u0434 \u0432 Java-\u043f\u043e\u0434\u043e\u0431\u043d\u043e\u043c \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">String log;  protected Void doInBackground(Void[] paramArrayOfVoid) {     try {       Runtime localRuntime = Runtime.getRuntime();       String[] arrayOfString = new String[4];       arrayOfString[0] = &quot;logcat&quot;;       arrayOfString[1] = &quot;-d&quot;;       arrayOfString[2] = &quot;-v&quot;;       arrayOfString[3] = &quot;threadtime&quot;;       this.process = localRuntime.exec(arrayOfString);       this.log = readAllOf(this.process.getInputStream());       return null;     }     catch (IOException localIOException) {      \/\/ \u0422\u0443\u0442 Java Decompiller \u0432\u044b\u0434\u0430\u043b \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u043e\u043b\u043d\u044b\u0439 \u0431\u0440\u0435\u0434, \u044f \u044d\u0442\u0443 \u043f\u0443\u0440\u0433\u0443 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u043b \u0447\u0442\u043e \u0431\u044b \u043d\u0435 \u0441\u043c\u0443\u0449\u0430\u0442\u044c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439      \/\/ ...     }   } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u042d\u0442\u043e\u0442 \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434 \u043e\u043f\u044f\u0442\u044c-\u0442\u0430\u043a\u0438 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0432\u0430\u043b\u0438\u0434\u0435\u043d \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u044f\u0437\u044b\u043a\u0430 Java, \u043d\u043e \u0437\u0430\u0442\u043e \u0438\u0437 \u043d\u0435\u0433\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 <code>doInBackground(...)<\/code>. \u041e\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043d\u0430 Adnroid-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443  <\/p>\n<pre><code>logcat -d -v threadtime<\/code><\/pre>\n<p>\u043f\u043e\u0442\u043e\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 <code>readAllOf(...)<\/code> (\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d \u0432 \u0442\u043e\u043c \u0436\u0435 \u043a\u043b\u0430\u0441\u0441\u0435) \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0432\u044b\u0432\u043e\u0434 \u0438 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442 \u0435\u0433\u043e \u0432 \u043f\u043e\u043b\u0435 <code>log<\/code> \u0442\u0438\u043f\u0430 <code>String<\/code>. \u0427\u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435? \u0410 \u0432 \u043d\u0435\u0439 \u043a\u0440\u043e\u043c\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e \u043a\u0443\u0447\u0430 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u2014 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439, \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0435 \u043a\u0443\u043a\u0438 \u0438 \u0442.\u043f. \u0412\u043e\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u0443\u0441\u043e\u0447\u0435\u043a \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 (\u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0443\u0442 \u043c\u043e\u0438 \u0438 \u043e\u043d\u0438 \u0437\u0430\u043c\u0430\u0437\u0430\u043d\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e):<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/f65\/0ca\/94e\/f650ca94e722105daf4d3c6b41c6056b.png\"\/><\/p>\n<p>  \u041e\u0442\u043a\u0443\u0434\u0430 \u0436\u0435 \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c logcat-\u043b\u043e\u0433\u0435 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445? \u0412\u0441\u0435 \u0434\u0435\u043b\u043e \u0432 \u0442\u043e\u043c \u0447\u0442\u043e \u043a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0442\u044b\u043a\u0430\u043d \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438 <code>android.util.Log.d(...)<\/code>. \u041f\u043e \u0445\u043e\u0434\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043b\u043e\u0433 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0443\u0447\u0430 \u0432\u0441\u044f\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u2014 \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0417\u0430\u0447\u0435\u043c? \u041d\u0435 \u0437\u043d\u0430\u044e, \u043d\u0435 \u0437\u043d\u0430\u044e\u2026<\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a\u043e \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u043e\u043f\u0440\u043e\u0441\u0443. \u041a\u0443\u0434\u0430 \u0436\u0435 \u044d\u0442\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0441 \u043a\u0443\u0447\u0435\u0439 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u043f\u043e\u043b\u044f <code>log<\/code> \u0434\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430 <code>doInBackground(...)<\/code>? \u0412\u044b \u043d\u0435 \u043f\u043e\u0432\u0435\u0440\u0438\u0442\u0435, \u043d\u043e \u043e\u043d\u0430 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u0443 <code>sendBug(String paramString)<\/code> \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0435 <code>paramString<\/code> \u0438 \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 <code>http:\/\/dmitriyap.dyndns.org<\/code>. \u0412 \u043d\u0435\u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u0427\u0442\u043e \u0431\u044b \u0432 \u044d\u0442\u043e\u043c \u0443\u0431\u0435\u0434\u0438\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043a\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430 <code>onPostExecute(...)<\/code> \u0442\u043e\u0433\u043e \u0436\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 <code>CrashHandler$1<\/code>:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Smali \u043a\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430 onPostExecute(&#8230;)<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>.method protected onPostExecute(Ljava\/lang\/Void;)V     .locals 2     .parameter &quot;p1&quot;      .prologue     .line 188     iget-object v0, p0, Lru\/yandex\/core\/CrashHandler$1;-&gt;this$0:Lru\/yandex\/core\/CrashHandler;      .line 191     .local v0, v0:Ljava\/lang\/Object;     iget-object v1, p0, Lru\/yandex\/core\/CrashHandler$1;-&gt;log:Ljava\/lang\/String;      .line 194     .local v1, v1:Ljava\/lang\/Object;     invoke-virtual {v0, v1}, Lru\/yandex\/core\/CrashHandler;-&gt;sendBug(Ljava\/lang\/String;)V      .line 197     iget-object v0, p0, Lru\/yandex\/core\/CrashHandler$1;-&gt;val$progress:Landroid\/app\/ProgressDialog;      .line 199     invoke-virtual {v0}, Landroid\/app\/ProgressDialog;-&gt;dismiss()V      .line 202     iget-object v0, p0, Lru\/yandex\/core\/CrashHandler$1;-&gt;this$0:Lru\/yandex\/core\/CrashHandler;      .line 204     invoke-virtual {v0}, Lru\/yandex\/core\/CrashHandler;-&gt;finish()V      .line 207     const\/4 v0, 0x0      .line 210     .local v0, v0:Ljava\/lang\/Object;     invoke-static {v0}, Ljava\/lang\/System;-&gt;exit(I)V      .line 213     return-void .end method <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 Java-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Java Decompiller:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u043e\u0442 \u0436\u0435 \u043c\u0435\u0442\u043e\u0434 \u0432 Java-\u043f\u043e\u0434\u043e\u0431\u043d\u043e\u043c \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">  protected void onPostExecute(Void paramVoid) {     this.this$0.sendBug(this.log);     this.val$progress.dismiss();     this.this$0.finish();     System.exit(0);   } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0412\u043e\u0442 \u043c\u044b \u0438 \u043e\u0442\u0432\u0435\u0442\u0438\u043b\u0438 \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0434\u0430? \u0412 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 <code>sendBug(String paramString)<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442 logcat-\u043b\u043e\u0433 \u0441 \u043a\u0443\u0447\u0435\u0439 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e <code>http:\/\/dmitriyap.dyndns.org<\/code> \u0432 \u043d\u0435\u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435.<\/p>\n<p>  \u0412 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u2014 \u043f\u0440\u0438 \u043a\u0430\u043a\u0438\u0445 \u0436\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u0441\u0442\u0440\u0430\u0448\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 <code>sendBug(String paramString)<\/code>? \u2014 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f:<\/p>\n<p>  <b>\u041c\u0435\u0442\u043e\u0434 sendBug(String paramString) \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0438 \u043f\u0440\u0438 \u043a\u0430\u043a\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445! \u041d\u0438\u043a\u043e\u0433\u0434\u0430!<\/b><\/p>\n<p>  \u0414\u0430-\u0434\u0430, \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430. \u042d\u0442\u043e \u043c\u0435\u0440\u0442\u0432\u044b\u0439 \u043a\u043e\u0434. \u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u0435\u0433 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0434\u0443\u043c\u0430\u0442\u044c \u0447\u0442\u043e \u043c\u0435\u0442\u043e\u0434 <code>sendBug(String paramString)<\/code> \u0440\u0430\u043d\u044c\u0448\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u0438 \u043a\u0440\u0430\u0448\u0435 native \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 <code>libcache_local.so<\/code> (\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u042f\u043d\u0434\u0435\u043a\u0441.\u041a\u0430\u0440\u0442\u0430\u043c\u0438). \u041d\u043e \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u0437\u043e\u0432 \u0443\u0431\u0440\u0430\u043b\u0438, \u0445\u043e\u0442\u044f \u0441\u0430\u043c \u043c\u0435\u0442\u043e\u0434 \u0443\u0431\u0440\u0430\u0442\u044c \u0437\u0430\u0431\u044b\u043b\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0438 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0418 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u042f\u043d\u0434\u0435\u043a\u0441 \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0442\u0435 \u0441\u0430\u043c\u044b\u0435 \u0437\u043b\u044b\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0435 \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a\u0438 \u0432 \u0442\u0435\u043c\u043d\u044b\u0445 \u043e\u0447\u043a\u0430\u0445 \u0438 \u0431\u043b\u0435\u0441\u0442\u044f\u0449\u0438\u0445 \u043f\u043b\u0430\u0449\u0430\u0445, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435, \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043d\u044b. \u041e\u043d\u0438 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043e\u0436\u0438\u0434\u0430\u043b\u0438 \u0447\u0442\u043e \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u043d\u0430\u0448\u0435\u043b \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0430\u0445 \u0431\u044d\u043a\u0434\u043e\u0440, \u0430 \u043c\u043e\u0436\u0435\u0442 \u0434\u0430\u0436\u0435 \u0434\u0430\u043c \u0438\u043c \u043a\u043b\u044e\u0447 \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0431\u044d\u043a\u0434\u043e\u0440\u0430. \u041d\u043e \u043d\u0435\u0442, \u0440\u0435\u0431\u044f\u0442\u0430! \u041d\u0435\u0442\u0443 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0431\u044d\u043a\u0434\u043e\u0440\u0430 (\u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0442\u0443\u0442). \u0415\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0442\u0440\u0435\u043c\u043d\u044b\u0439, \u043d\u043e \u043c\u0435\u0440\u0442\u0432\u044b\u0439 \u043a\u043e\u0434, \u0438 \u043d\u0430\u0448 \u043c\u0438\u0440\u043d\u044b\u0439 reverce engennering \u0435\u0433\u043e \u0432\u044b\u044f\u0432\u0438\u043b.<\/p>\n<p>  \u0412\u0441\u0435 \u0432\u044b\u0448\u0435\u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u044f \u0438\u0437\u043b\u043e\u0436\u0438\u043b \u0432 \u0440\u0435\u043f\u043e\u0440\u0442\u0435 \u042f\u043d\u0434\u0435\u043a\u0441\u0443 (Ticket#12092801010226151). \u042f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0447\u0442\u043e \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e \u0447\u0442\u043e \u043c\u0435\u0442\u043e\u0434 <code>sendBug(String paramString)<\/code> \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0441\u0430\u043c\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0430\u0445 \u2014 \u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0435 \u0431\u0435\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0435. \u041c\u044b \u043e\u0447\u0435\u043d\u044c \u043c\u0438\u043b\u043e \u043f\u043e\u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u043f\u043e \u043f\u043e\u0447\u0442\u0435 \u0441 security team \u042f\u043d\u0434\u0435\u043a\u0441\u0430 \u2014 \u0440\u0435\u0431\u044f\u0442\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u044b\u0435. \u0418 \u0443\u0436\u0435 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u0435\u0433 \u0432\u0435\u0440\u0441\u0438\u0438 1.80, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u0441\u0442\u0430\u0442\u0438 \u0432\u044b\u0448\u0435\u043b \u043e\u0447\u0435\u043d\u044c \u0441\u043a\u043e\u0440\u043e, \u0432\u0441\u0435 \u0432\u044b\u0448\u0435\u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0435 \u043d\u0435\u0434\u043e\u0447\u0435\u0442\u044b \u0431\u044b\u043b\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b: \u0441\u0442\u0440\u0435\u043c\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 <code>sendBug(String paramString)<\/code> \u0443\u0431\u0440\u0430\u043b\u0438 \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u0438\u0448\u0435\u0442 \u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 logcat-\u043b\u043e\u0433. \u0422\u0430\u043a \u043d\u0430\u0448 \u043c\u0438\u0440\u043d\u044b\u0439 \u043c\u0438\u0440\u043d\u044b\u0439 reverce engennering \u043f\u043e\u043c\u043e\u0433 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043b\u0443\u0447\u0448\u0435.<\/p>\n<p>  \u042f \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0447\u0442\u043e \u043c\u043e\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0440\u043e \u043c\u0438\u0440\u043d\u044b\u0439 reverce engennering \u0432\u0430\u0441 \u0440\u0430\u0437\u0432\u043b\u0435\u043a\u043b\u0430, \u0445\u043e\u0442\u044f \u043e\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0438 \u043f\u0443\u0442\u0430\u043d\u043d\u043e\u0439. \u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435 \u0435\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u043a\u043e\u043c\u0443 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0447\u0442\u043e \u044f \u0441\u043b\u0438\u043b \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0443.<\/p>\n<p>  Happy debugging!    \t   \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\/155925\/\"> http:\/\/habrahabr.ru\/post\/155925\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0442\u0435\u0440\u0435\u043e\u0442\u0438\u043f, \u0447\u0442\u043e reverse engineering \u2014 \u044d\u0442\u043e \u0437\u0430\u043d\u044f\u0442\u0438\u0435 \u0434\u043b\u044f \u0437\u043b\u044b\u0445 \u0445\u0430\u043a\u0435\u0440\u043e\u0432 \u0432 \u0442\u0435\u043c\u043d\u044b\u0445 \u043e\u0447\u043a\u0430\u0445 \u0438 \u0431\u043b\u0435\u0441\u0442\u044f\u0449\u0438\u0445 \u043a\u043e\u0436\u0430\u043d\u044b\u0445 \u043f\u0430\u043b\u044c\u0442\u043e. \u041f\u043e\u0434 \u043f\u043e\u043a\u0440\u043e\u0432\u043e\u043c \u043d\u043e\u0447\u0438, \u0432 \u043f\u0435\u0440\u0435\u0440\u044b\u0432\u0430\u0445 \u043c\u0435\u0436\u0434\u0443 \u0431\u0435\u0433\u043e\u0442\u043d\u0435\u0439 \u043f\u043e \u0441\u0442\u0435\u043d\u0430\u043c \u0438 \u0440\u0443\u043a\u043e\u043f\u0430\u0448\u043d\u044b\u043c\u0438 \u0441\u0445\u0432\u0430\u0442\u043a\u0430\u043c\u0438 \u0441 \u0442\u043e\u043b\u043f\u0430\u043c\u0438 \u0441\u043f\u0435\u0446\u043d\u0430\u0437\u043e\u0432\u0446\u0435\u0432, \u044d\u0442\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0435 \u043d\u0435\u043b\u044e\u0434\u0438 \u0442\u0432\u043e\u0440\u044f\u0442 \u0441\u0442\u0440\u0430\u0448\u043d\u044b\u0435 \u0432\u0437\u043b\u043e\u043c\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043f\u0435\u043d\u0442\u0430\u0433\u043e\u043d\u043e\u0432 \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445. \u0421\u0430\u043c\u0438 \u0432\u0437\u043b\u043e\u043c\u044b \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \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 \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u041d\u0443 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0432\u0437\u043b\u043e\u043c\u0430 \u043f\u043e \u0447<i>\u041e<\/i>\u0440\u043d\u044b\u043c \u044d\u043a\u0440\u0430\u043d\u0430\u043c \u0430\u0434\u0441\u043a\u0438\u0445 \u0445\u0430\u043a\u0435\u0440\u0441\u043a\u0438\u0445 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u043e\u0432 \u0441 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439 \u041e\u0421 \u043f\u043e\u043b\u0437\u0443\u0442 \u0437\u0435\u043b\u0451\u043d\u044b\u0435 \u043a\u0440\u0430\u043a\u043e\u0437\u044f\u0431\u043b\u044b \u0438\/\u0438\u043b\u0438 \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f \u043a\u0430\u043a\u0430\u044f-\u0442\u043e 3D-\u0444\u0438\u0433\u043e\u0432\u0438\u043d\u0430\u2026<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/16c\/94e\/cbc\/16c94ecbce2372e5a16362474a36f170.jpg\"\/><\/p>\n<p>  \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043e\u0442\u043e\u0439\u0442\u0438 \u043e\u0442 \u0437\u0430\u0442\u0430\u0441\u043a\u0430\u043d\u043d\u044b\u0445 \u0433\u043e\u043b\u043b\u0438\u0432\u0443\u0434\u0441\u043a\u0438\u0445 \u0448\u0442\u0430\u043c\u043f\u043e\u0432 \u043f\u0440\u043e \u0437\u043b\u044b\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a\u043e\u0432 \u0438 \u043f\u043e\u0432\u0435\u0434\u0430\u0442\u044c \u0432\u0430\u043c, \u0434\u043e\u0440\u043e\u0433\u0438\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u043c\u0438\u0440\u043d\u044b\u0439 reverse engineering \u043f\u043e\u043c\u043e\u0433 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0438. \u041d\u0430\u0434\u0435\u044e\u0441\u044c \u044d\u0442\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u043e\u0448\u0430\u0442\u043d\u0435\u0442 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u0441\u0442\u0435\u0440\u0435\u043e\u0442\u0438\u043f, \u0447\u0442\u043e reverse engineering \u2014 \u044d\u0442\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043b\u043e\u0445\u043e \u0438 \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0445\u043e\u0440\u043e\u0448\u0438\u043c \u043b\u044e\u0434\u044f\u043c.  <\/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-155925","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/155925","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=155925"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/155925\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=155925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=155925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=155925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}