{"id":65,"date":"2005-04-25T19:43:40","date_gmt":"2005-04-26T01:43:40","guid":{"rendered":"\/?p=65"},"modified":"2006-05-18T15:51:02","modified_gmt":"2006-05-18T22:51:02","slug":"chaos-works-in-strange-ways","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/chaos-works-in-strange-ways\/","title":{"rendered":"Chaos Works In Strange Ways"},"content":{"rendered":"<p>This evening, I implemented the VerbNameMaker Java class for the <a href=\"http:\/\/www.retrologic.com\/retroguard-main.html\">Retroguard<\/a> project by simply copying the NounNameMaker class and replacing the animal list with a list of English verbs extracted from <a href=\"http:\/\/verba.org\">verba.org<\/a>. So the class picks a random verb from a list of over 4000 verbs and replaces obfuscated method names. Remember that dequantizer method from <a href=\"http:\/\/multimedia.cx\/eggs\/index.php?p=64\">the previous post<\/a>? Guess what the new Java class, working in conjunction with Java&#8217;s random number generator, decided to name the method?<\/p>\n<pre>\r\n    private void fondle(int i)\r\n    {\r\n        short aword0[] = australianKestrel[i];\r\n        for(int j = 0; j < 64; j++)\r\n            kingsnake[eastAfricanCrownedCrane[j]] = aword0[j] * conch[j];\r\n    }\r\n<\/pre>\n<p>Just as I have long suspected, Java is a sick, perverted language.<\/p>\n<p><!--more--><\/p>\n<p>I am particularly pleased to see that this experiment did succeed in undoing the operator overloading committed by the original Retroguard process. Look at these 4 original, overloaded, obfuscated method declarations:<\/p>\n<pre>\r\n    private static void a(int ai1[], int i1, int j1)\r\n    private static void a(int ai1[][], int i1, int j1)\r\n    private static void a(int ai1[][][], int i1, int j1)\r\n    private static void a(int ai1[], int i1, int j1, int k1)\r\n<\/pre>\n<p>After processing through the new VerbNameMaker class:<\/p>\n<pre>\r\n    private static void unfurl(int ai[], int i, int j)\r\n    private static void militarize(int ai[][], int i, int j)\r\n    private static void soundOut(int ai[][][], int i, int j)\r\n    private static void streamline(int ai[], int i, int j, int k)\r\n<\/pre>\n<p>As a matter of course, I feel I should give the original Retroguard program author the opportunity to roll these changes into the official codebase. I have this weird feeling that to incorporate these modifications would violate that project&#8217;s charter. So I will probably need to make the changes available via this website.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Java fondle() method&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,4],"tags":[],"class_list":["post-65","post","type-post","status-publish","format-standard","hentry","category-java","category-reverse-engineering"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/65","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=65"}],"version-history":[{"count":0,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/65\/revisions"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=65"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=65"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=65"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}