{"id":11070,"date":"2021-11-30T10:00:00","date_gmt":"2021-11-30T01:00:00","guid":{"rendered":"https:\/\/www.gigas-jp.com\/appnews\/?p=11070"},"modified":"2021-11-29T19:07:43","modified_gmt":"2021-11-29T10:07:43","slug":"code-obfuscation","status":"publish","type":"post","link":"https:\/\/www.gigas-jp.com\/appnews\/archives\/11070","title":{"rendered":"Code Obfuscation"},"content":{"rendered":"\n<p><font>Obfuscation is making something complex and difficult to understand. Programming codes are often obfuscated to decrease the security risks such as preventing an attacker from reverse engineering a software program and protect intellectual properties.<\/font><\/p>\n\n\n\n<p>Code obfuscation is not about changing the program&#8217;s original code contents, but rather about making the presentation of that code more confusing. Obfuscation does not change how the program works or outputs.<\/p>\n\n\n\n<p>The following are some techniques we should know about obfuscation.<\/p>\n\n\n\n<p><strong>Renaming<\/strong><\/p>\n\n\n\n<p>The obfuscator alters the methods and names of variables. The new names may include unprintable or invisible characters.<\/p>\n\n\n\n<p><strong>Packing<\/strong><\/p>\n\n\n\n<p>This compresses the entire program to make the code unreadable.<\/p>\n\n\n\n<p><strong>String encryption<\/strong><\/p>\n\n\n\n<p>This method uses encryption to hide the strings in the executable and only restores the values when they are needed to run the program. This makes it difficult to go through a program and search for particular strings.<\/p>\n\n\n\n<p><strong>Control flow<\/strong><\/p>\n\n\n\n<p>The decompiled code is made to look like spaghetti logic, which is unstructured and hard to maintain code where the line of thought is obscured. Results from this code are not clear, and it&#8217;s hard to tell what the point of the code is by looking at it.<\/p>\n\n\n\n<p><strong>Instruction pattern transformation<\/strong><\/p>\n\n\n\n<p>This approach takes common instructions created by the compiler and swaps them for more complex, less common instructions that effectively do the same thing.<\/p>\n\n\n\n<p><strong>Dummy code insertion<\/strong><\/p>\n\n\n\n<p>Dummy code can be added to a program to make it harder to read and reverse engineer, but it does not affect the program&#8217;s logic or outcome.<\/p>\n\n\n\n<p><strong>Metadata or unused code removal<\/strong><\/p>\n\n\n\n<p>Unused code and metadata give the reader extra information about the program, much like annotations on a Word document, that can help them read and debug it. Removing metadata and unused code leaves the reader with less information about the program and its code.<\/p>\n\n\n\n<p>Summary<\/p>\n\n\n\n<p>Obfuscation techniques are used in various cases. For example, these can be used to stop someone from copying your client-side code. And enterprises also need to make sure that websites are protected against malicious code injection and it dif\ufb01cult to discover useful information such as trade secrets (IP), credentials, or security vulnerabilities from an application.<\/p>\n\n\n\n<p><font>Hope you enjoy that. <\/font><\/p>\n\n\n\n<p><font>B<\/font><font>y<\/font><font> <\/font><font>A<\/font><font>s<\/font><font>a<\/font><font>h<\/font>i<font><\/p>\n<div class='wp_social_bookmarking_light'>\n            <div class=\"wsbl_google_plus_one\"><g:plusone size=\"medium\" annotation=\"none\" href=\"https:\/\/www.gigas-jp.com\/appnews\/archives\/11070\" ><\/g:plusone><\/div>\n            <div class=\"wsbl_hatena_button\"><a href=\"\/\/b.hatena.ne.jp\/entry\/https:\/\/www.gigas-jp.com\/appnews\/archives\/11070\" class=\"hatena-bookmark-button\" data-hatena-bookmark-title=\"Code Obfuscation\" data-hatena-bookmark-layout=\"standard\" title=\"\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0\"> <img src=\"\/\/b.hatena.ne.jp\/images\/entry-button\/button-only@2x.png\" alt=\"\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0\" width=\"20\" height=\"20\" style=\"border: none;\" \/><\/a><script type=\"text\/javascript\" src=\"\/\/b.hatena.ne.jp\/js\/bookmark_button.js\" charset=\"utf-8\" async=\"async\"><\/script><\/div>\n            <div class=\"wsbl_twitter\"><a href=\"https:\/\/twitter.com\/share\" class=\"twitter-share-button\" data-url=\"https:\/\/www.gigas-jp.com\/appnews\/archives\/11070\" data-text=\"Code Obfuscation\" data-via=\"GIGASJAPAN_APPS\" data-lang=\"ja\">Tweet<\/a><\/div>\n            <div class=\"wsbl_facebook_like\"><div id=\"fb-root\"><\/div><fb:like href=\"https:\/\/www.gigas-jp.com\/appnews\/archives\/11070\" layout=\"button_count\" action=\"like\" width=\"100\" share=\"false\" show_faces=\"false\" ><\/fb:like><\/div>\n            <div class=\"wsbl_facebook_send\"><div id=\"fb-root\"><\/div><fb:send href=\"https:\/\/www.gigas-jp.com\/appnews\/archives\/11070\" colorscheme=\"light\" ><\/fb:send><\/div>\n    <\/div>\n<br class='wp_social_bookmarking_light_clear' \/>\n","protected":false},"excerpt":{"rendered":"<p>Obfuscation is making something complex and difficult to understand. Programming codes are often obfuscated to [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"acf":[],"_links":{"self":[{"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/posts\/11070"}],"collection":[{"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/comments?post=11070"}],"version-history":[{"count":2,"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/posts\/11070\/revisions"}],"predecessor-version":[{"id":11072,"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/posts\/11070\/revisions\/11072"}],"wp:attachment":[{"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/media?parent=11070"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/categories?post=11070"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/tags?post=11070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}