Knowledge

Obfuscation (software)

Source 📝

315:, will also alert their users when they land on a website with code that is manually obfuscated, as one of the purposes of obfuscation can be to hide malicious code. However, some developers may employ code obfuscation for the purpose of reducing file size or increasing security. The average user may not expect their antivirus software to provide alerts about an otherwise harmless piece of code, especially from trusted corporations, so such a feature may actually deter users from using legitimate software. 109: 1495: 353:". It puts source code in the hands of the user, although this source code is often difficult to read. The source code is likely to have random function and variable names, incorrect variable types, and use different logic than the original source code (due to compiler optimizations). 277:, a cryptographic primitive that, if possible to build securely, would allow one to construct many other kinds of cryptography, including completely novel types that no one knows how to make. (A stronger notion, 372:. Obfuscation models can also be applied to training data before feeding it into the model to add random noise. This hides sensitive information about the properties of individual and groups of samples. 165:
A variety of tools exist to perform or assist with code obfuscation. These include experimental research tools created by academics, hobbyist tools, commercial products written by professionals, and
337:
by requiring the "preferred form for making modifications" to be made available. The GNU website states "Obfuscated 'source code' is not real source code and does not count as source code."
299:
Once code is no longer maintained, hobbyists may want to maintain the program, add mods, or understand it better. Obfuscation makes it hard for end users to do useful things with the code.
349:
can reverse-engineer source code from an executable or library. Decompilation is sometimes called a man-in-the-end (mite) attack, based on the traditional cryptographic attack known as "
1140: 302:
Certain kinds of obfuscation (i.e. code that isn't just a local binary and downloads mini binaries from a web server as needed) can degrade performance and/or require Internet.
66:
or recreational challenge for someone reading the source code. This can be done manually or by using an automated tool, the latter being the preferred technique in industry.
139:
Types of obfuscations include simple keyword substitution, use or non-use of whitespace to create artistic effects, and self-generating or heavily compressed programs.
1276: 713: 333:
by releasing source code in obfuscated form, such as in cases in which the author is less willing to make the source code available. The issue is addressed in the
1337: 290:
While obfuscation can make reading, writing, and reverse-engineering a program difficult and time-consuming, it will not necessarily make it impossible.
172:
Although the majority of commercial obfuscation solutions work by transforming either program source code, or platform-independent bytecode as used by
1117: 672: 481: 1389: 1095: 754: 54:, it may use needlessly roundabout expressions to compose statements. Programmers may deliberately obfuscate code to conceal its purpose ( 583: 189: 1343: 1132: 619: 963: 1933: 1030: 1064: 531: 806: 229: 917: 892: 650: 1910: 504: 1283: 1250:
Zhang, Tianwei; He, Zecheng; Lee, Ruby B. (July 12, 2018). "Privacy-preserving Machine Learning through Data Obfuscation".
720: 1941: 870: 843: 1353: 1192: 1382: 557: 1873: 153:
data/code/comment confusion, which includes making some actual code look like comments or confusing syntax with data;
1669: 1306: 447: 274: 260: 784: 690: 1977: 1923: 1008: 90: 1967: 1736: 1375: 1166: 605: 397: 185: 120: 1303:
Proceedings of the 6th Digital Arts and Culture Conference, IT University of Copenhagen, 1–3 December 2005
1928: 1849: 1649: 173: 1905: 1863: 1519: 452: 334: 55: 1163:"Reasoning behind the "preferred form of the work for making modifications to it" language in the GPL" 473: 74:
The architecture and characteristics of some languages may make them easier to obfuscate than others.
1766: 1484: 442: 427: 1236: 1087: 1751: 1629: 1524: 407: 350: 248: 210: 199: 75: 746: 318:
Mozilla and Google disallow browser extensions containing obfuscated code in their add-ons store.
269:
Cryptographers have explored the idea of obfuscating code so that reverse-engineering the code is
58:) or its logic or implicit values embedded in it, primarily, in order to prevent tampering, deter 1839: 1791: 1454: 233: 1214:
Zhou, Mingyi; Gao, Xiang; Wu, Jing; Grundy, John C.; Chen, Xiao; Chen, Chunyang; Li, Li (2023).
1880: 1614: 1223: 422: 278: 264: 623: 1972: 1900: 1812: 1761: 1706: 1574: 1547: 1529: 1427: 1398: 1362: 947: 417: 228:. A number of programming contests reward the most creatively obfuscated code, such as the 166: 86: 31: 1494: 866:
Break Me00 The MoVfuscator Turning mov into a soul crushing RE nightmare Christopher Domas
8: 1684: 1459: 1417: 1279:, 17th National Computer Conference, Sharif University of Technology, Tehran, Iran, 2012. 1034: 986: 432: 59: 1056: 814: 535: 296:
It can make debugging issues after the software has been obfuscated extremely difficult.
1868: 1796: 1701: 1251: 998: 150:
naming obfuscation, which includes naming variables in a meaningless or deceptive way;
1916: 1674: 1609: 1559: 1506: 1464: 1412: 1111: 955: 666: 599: 402: 169:. Deobfuscation tools also exist that attempt to perform the reverse transformation. 1282:
B. Barak, O. Goldreich, R. Impagliazzo, S. Rudich, A. Sahai, S. Vadhan and K. Yang.
925: 1885: 1825: 1589: 1579: 1474: 646: 412: 365: 330: 51: 1776: 1756: 1654: 1479: 1469: 508: 244: 156:
double coding, which can be displaying code in poetry form or interesting shapes.
1946: 1844: 1694: 1644: 1619: 1584: 1564: 1444: 1432: 387: 369: 1215: 1188: 864: 837: 119: with: explaining more obfuscation techniques in general. You can help by 96:
The properties that make a language obfuscatable are not immediately obvious.
1961: 1856: 1817: 1786: 1781: 1634: 1624: 1594: 959: 392: 312: 143: 561: 1890: 1746: 1449: 225: 43: 1830: 1664: 1639: 1604: 1439: 1290:, Santa Barbara, California, USA. Springer Verlag LNCS Volume 2139, 2001. 437: 47: 39: 17: 1295: 1133:"Mozilla announces ban on Firefox extensions containing obfuscated code" 108: 1895: 1711: 1659: 1542: 1422: 1367: 776: 686: 346: 93:
is also quite obfuscatable despite being quite different in structure.
1771: 1726: 1721: 1569: 1537: 382: 368:
model. Obfuscation turns a model into a black box. It is contrary to
1348: 1057:"Blocking website and only way to fix is disabling HTTPS s... | AVG" 990: 293:
It adds time and complexity to the build process for the developers.
1731: 1689: 1552: 1256: 1162: 1003: 896: 327: 202: 1296:"A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics" 1741: 1716: 1679: 1349:
Yury Lifshits. Lecture Notes on Program Obfuscation (Spring'2005)
1088:"Google taking action against disguised code in Chrome Web Store" 991:"Indistinguishability Obfuscation from Well-Founded Assumptions" 1599: 1514: 1357: 180:, there are also some that work directly on compiled binaries. 63: 586:. DreamInCode.net. Archived from the original on June 28, 2008 46:
that is difficult for humans or computers to understand. Like
893:"One Instruction To Rule Them All: C Compiler Emits Only MOV" 79: 240: 177: 83: 948:"Cryptography Breakthrough Could Make Software Unhackable" 474:"What is obfuscation (obfu)? - Definition from WhatIs.com" 1332: 1216:"Model Obfuscation for Securing Deployed Neural Networks" 584:"C++ Tutorials – Obfuscated Code – A Simple Introduction" 206: 326:
There has been debate on whether it is illegal to skirt
1086:
at 05:01, Thomas Claburn in San Francisco 2 Oct 2018.
644: 306: 321: 224:
Writing and reading obfuscated source code can be a
364:is a technique to hide the internal structure of a 273:hard. This is formalized in the many proposals for 25:
Deliberate creation of difficult-to-understand code
505:"Obfuscation: Cloaking your Code from Prying Eyes" 89:are some examples of languages easy to obfuscate. 1959: 1284:"On the (Im)possibility of Obfuscating Programs" 1293: 1288:21st Annual International Cryptology Conference 1213: 284: 16:For the term as used in natural language, see 1383: 1031:""Can We Obfuscate Programs?" by Boaz Barak" 984: 807:"The First Annual Obfuscated Python Content" 1333:The International Obfuscated C Code Contest 1116:: CS1 maint: numeric names: authors list ( 671:: CS1 maint: numeric names: authors list ( 1390: 1376: 1249: 1934:Security information and event management 1338:Protecting Java Code Via Code Obfuscation 1255: 1002: 281:, is known to be impossible in general.) 1397: 890: 744: 502: 247:of Perl programmers. These are JAPHs (" 757:from the original on September 14, 2017 230:International Obfuscated C Code Contest 1960: 1098:from the original on November 12, 2019 846:from the original on November 12, 2022 787:from the original on February 14, 2017 529: 1911:Host-based intrusion detection system 1371: 1195:from the original on October 14, 2013 1169:from the original on December 2, 2013 1067:from the original on February 4, 2022 873:from the original on October 21, 2022 835: 653:from the original on January 16, 2009 484:from the original on February 2, 2019 1085: 711: 693:from the original on August 30, 2017 620:"C Tutorials – Obfuscated Code in C" 356: 103: 1942:Runtime application self-protection 1340:, ACM Crossroads, Spring 1998 issue 1130: 966:from the original on April 14, 2022 311:Some anti-virus softwares, such as 13: 1493: 1312:from the original on June 23, 2008 1268: 1143:from the original on March 5, 2020 1011:from the original on March 3, 2022 534:. Codinghorror.com. Archived from 503:Binstock, Andrew (March 6, 2003). 307:Notifying users of obfuscated code 215:instruction in order to obfuscate. 160: 14: 1989: 1874:Security-focused operating system 1326: 1277:ABCME: A Novel Metamorphic Engine 918:"JAPH – Just Another Perl Hacker" 560:. Kenter.demon.nl. Archived from 322:Obfuscation and copyleft licenses 1670:Insecure direct object reference 1294:Mateas, Michael; Nick Montfort. 448:Indistinguishability obfuscation 275:indistinguishability obfuscation 261:Indistinguishability obfuscation 254: 107: 1924:Information security management 1243: 1207: 1181: 1155: 1124: 1079: 1049: 1023: 978: 940: 910: 891:Williams, Al (March 21, 2021). 884: 857: 829: 799: 769: 738: 219: 190:official Python programming FAQ 1033:. Math.ias.edu. Archived from 924:. Perl Mongers. Archived from 705: 679: 638: 622:. July 7, 2011. Archived from 612: 576: 550: 523: 496: 466: 340: 1: 530:Atwood, Jeff (May 15, 2005). 459: 438:Dotfuscator (.Net Obfuscator) 398:Esoteric programming language 188:examples can be found in the 99: 747:"Obfuscating "Hello world!"" 687:"Obfuscation – Haskell Wiki" 645:As of 2013-11-25 18:22 GMT. 285:Disadvantages of obfuscation 7: 1929:Information risk management 1850:Multi-factor authentication 1406:Related security categories 532:"Jeff Atwood, May 15, 2005" 375: 146:, techniques may include: 69: 10: 1994: 1906:Intrusion detection system 1864:Computer security software 1520:Advanced persistent threat 1344:Can we obfuscate programs? 836:domas (November 3, 2022), 453:Source code beautification 433:ProGuard (Java Obfuscator) 335:GNU General Public License 258: 56:security through obscurity 15: 1805: 1505: 1491: 1485:Digital rights management 1405: 995:Cryptology ePrint Archive 604:: CS1 maint: unfit URL ( 443:Digital rights management 428:Source-to-source compiler 1630:Denial-of-service attack 1525:Arbitrary code execution 1189:"What is free software?" 839:xoreaxeaxeax/movfuscator 647:"Pe(a)rls in line noise" 408:Overlapping instructions 249:Just another Perl hacker 243:programs may be used in 1840:Computer access control 1792:Rogue security software 1455:Electromagnetic warfare 234:Obfuscated Perl Contest 38:is the act of creating 1978:Program transformation 1886:Obfuscation (software) 1615:Browser Helper Objects 1499: 1363:c2:BlackBoxComputation 1231:Cite journal requires 989:; Sahai, Amit (2020). 62:, or even to create a 1881:Data-centric security 1762:Remote access trojans 1497: 1275:Seyyedhamzeh, Javad, 1092:www.theregister.co.uk 689:. February 16, 2006. 478:SearchSoftwareQuality 423:Underhanded C Contest 279:black-box obfuscation 265:Black-box obfuscation 259:Further information: 1968:Software obfuscation 1813:Application security 1707:Privilege escalation 1575:Cross-site scripting 1428:Cybersex trafficking 1399:Information security 1305:. pp. 144–153. 811:code.activestate.com 626:on December 27, 2013 418:Hardware obfuscation 167:open-source software 87:programming language 32:software development 1460:Information warfare 1418:Automotive security 777:"Obfuscated Python" 60:reverse engineering 1869:Antivirus software 1737:Social engineering 1702:Polymorphic engine 1655:Fraudulent dialers 1560:Hardware backdoors 1500: 1131:Cimpanu, Catalin. 538:on January 9, 2010 1955: 1954: 1917:Anomaly detection 1822:Secure by default 1675:Keystroke loggers 1610:Drive-by download 1498:vectorial version 1465:Internet security 1413:Computer security 1063:. July 21, 2020. 1037:on March 23, 2016 726:on April 24, 2019 714:"Obfuscated code" 649:. Perlmonks.org. 511:on April 20, 2008 362:Model obfuscation 357:Model obfuscation 351:man-in-the-middle 331:software licenses 271:cryptographically 239:Short obfuscated 137: 136: 1985: 1826:Secure by design 1757:Hardware Trojans 1590:History sniffing 1580:Cross-site leaks 1475:Network security 1392: 1385: 1378: 1369: 1368: 1354:Java obfuscators 1321: 1319: 1317: 1311: 1300: 1262: 1261: 1259: 1247: 1241: 1240: 1234: 1229: 1227: 1219: 1211: 1205: 1204: 1202: 1200: 1185: 1179: 1178: 1176: 1174: 1159: 1153: 1152: 1150: 1148: 1128: 1122: 1121: 1115: 1107: 1105: 1103: 1083: 1077: 1076: 1074: 1072: 1053: 1047: 1046: 1044: 1042: 1027: 1021: 1020: 1018: 1016: 1006: 982: 976: 975: 973: 971: 944: 938: 937: 935: 933: 914: 908: 907: 905: 903: 888: 882: 881: 880: 878: 861: 855: 854: 853: 851: 833: 827: 826: 824: 822: 813:. Archived from 803: 797: 796: 794: 792: 773: 767: 766: 764: 762: 742: 736: 735: 733: 731: 725: 719:. Archived from 718: 712:Montfort, Nick. 709: 703: 702: 700: 698: 683: 677: 676: 670: 662: 660: 658: 642: 636: 635: 633: 631: 616: 610: 609: 603: 595: 593: 591: 580: 574: 573: 571: 569: 564:on March 4, 2016 554: 548: 547: 545: 543: 527: 521: 520: 518: 516: 507:. Archived from 500: 494: 493: 491: 489: 470: 413:Polymorphic code 366:machine learning 132: 129: 111: 104: 52:natural language 1993: 1992: 1988: 1987: 1986: 1984: 1983: 1982: 1958: 1957: 1956: 1951: 1801: 1501: 1489: 1480:Copy protection 1470:Mobile security 1401: 1396: 1329: 1324: 1315: 1313: 1309: 1298: 1271: 1269:Further reading 1266: 1265: 1248: 1244: 1232: 1230: 1221: 1220: 1212: 1208: 1198: 1196: 1187: 1186: 1182: 1172: 1170: 1161: 1160: 1156: 1146: 1144: 1129: 1125: 1109: 1108: 1101: 1099: 1084: 1080: 1070: 1068: 1061:support.avg.com 1055: 1054: 1050: 1040: 1038: 1029: 1028: 1024: 1014: 1012: 983: 979: 969: 967: 946: 945: 941: 931: 929: 928:on May 16, 2013 916: 915: 911: 901: 899: 889: 885: 876: 874: 863: 862: 858: 849: 847: 834: 830: 820: 818: 817:on May 25, 2023 805: 804: 800: 790: 788: 775: 774: 770: 760: 758: 751:benkurtovic.com 743: 739: 729: 727: 723: 716: 710: 706: 696: 694: 685: 684: 680: 664: 663: 656: 654: 643: 639: 629: 627: 618: 617: 613: 597: 596: 589: 587: 582: 581: 577: 567: 565: 556: 555: 551: 541: 539: 528: 524: 514: 512: 501: 497: 487: 485: 472: 471: 467: 462: 457: 378: 359: 343: 324: 309: 287: 267: 257: 222: 163: 161:Automated tools 133: 127: 124: 117:needs expansion 102: 72: 26: 21: 12: 11: 5: 1991: 1981: 1980: 1975: 1970: 1953: 1952: 1950: 1949: 1947:Site isolation 1944: 1939: 1938: 1937: 1931: 1921: 1920: 1919: 1914: 1903: 1898: 1893: 1888: 1883: 1878: 1877: 1876: 1871: 1861: 1860: 1859: 1854: 1853: 1852: 1845:Authentication 1837: 1836: 1835: 1834: 1833: 1823: 1820: 1809: 1807: 1803: 1802: 1800: 1799: 1794: 1789: 1784: 1779: 1774: 1769: 1764: 1759: 1754: 1749: 1744: 1739: 1734: 1729: 1724: 1719: 1714: 1709: 1704: 1699: 1698: 1697: 1687: 1682: 1677: 1672: 1667: 1662: 1657: 1652: 1647: 1645:Email spoofing 1642: 1637: 1632: 1627: 1622: 1617: 1612: 1607: 1602: 1597: 1592: 1587: 1585:DOM clobbering 1582: 1577: 1572: 1567: 1565:Code injection 1562: 1557: 1556: 1555: 1550: 1545: 1540: 1532: 1527: 1522: 1517: 1511: 1509: 1503: 1502: 1492: 1490: 1488: 1487: 1482: 1477: 1472: 1467: 1462: 1457: 1452: 1447: 1445:Cyberterrorism 1442: 1437: 1436: 1435: 1433:Computer fraud 1430: 1420: 1415: 1409: 1407: 1403: 1402: 1395: 1394: 1387: 1380: 1372: 1366: 1365: 1360: 1351: 1346: 1341: 1335: 1328: 1327:External links 1325: 1323: 1322: 1291: 1280: 1272: 1270: 1267: 1264: 1263: 1242: 1233:|journal= 1206: 1180: 1154: 1123: 1078: 1048: 1022: 985:Jain, Aayush; 977: 939: 909: 883: 856: 828: 798: 768: 745:Ben Kurtovic. 737: 704: 678: 637: 611: 575: 549: 522: 495: 464: 463: 461: 458: 456: 455: 450: 445: 440: 435: 430: 425: 420: 415: 410: 405: 400: 395: 390: 388:Spaghetti code 385: 379: 377: 374: 370:explainable AI 358: 355: 342: 339: 323: 320: 308: 305: 304: 303: 300: 297: 294: 291: 286: 283: 256: 253: 221: 218: 217: 216: 209:uses only the 193: 192:and elsewhere. 162: 159: 158: 157: 154: 151: 135: 134: 114: 112: 101: 98: 71: 68: 24: 9: 6: 4: 3: 2: 1990: 1979: 1976: 1974: 1971: 1969: 1966: 1965: 1963: 1948: 1945: 1943: 1940: 1935: 1932: 1930: 1927: 1926: 1925: 1922: 1918: 1915: 1912: 1909: 1908: 1907: 1904: 1902: 1899: 1897: 1894: 1892: 1889: 1887: 1884: 1882: 1879: 1875: 1872: 1870: 1867: 1866: 1865: 1862: 1858: 1857:Authorization 1855: 1851: 1848: 1847: 1846: 1843: 1842: 1841: 1838: 1832: 1829: 1828: 1827: 1824: 1821: 1819: 1818:Secure coding 1816: 1815: 1814: 1811: 1810: 1808: 1804: 1798: 1795: 1793: 1790: 1788: 1787:SQL injection 1785: 1783: 1780: 1778: 1775: 1773: 1770: 1768: 1767:Vulnerability 1765: 1763: 1760: 1758: 1755: 1753: 1752:Trojan horses 1750: 1748: 1747:Software bugs 1745: 1743: 1740: 1738: 1735: 1733: 1730: 1728: 1725: 1723: 1720: 1718: 1715: 1713: 1710: 1708: 1705: 1703: 1700: 1696: 1693: 1692: 1691: 1688: 1686: 1683: 1681: 1678: 1676: 1673: 1671: 1668: 1666: 1663: 1661: 1658: 1656: 1653: 1651: 1648: 1646: 1643: 1641: 1638: 1636: 1635:Eavesdropping 1633: 1631: 1628: 1626: 1625:Data scraping 1623: 1621: 1618: 1616: 1613: 1611: 1608: 1606: 1603: 1601: 1598: 1596: 1595:Cryptojacking 1593: 1591: 1588: 1586: 1583: 1581: 1578: 1576: 1573: 1571: 1568: 1566: 1563: 1561: 1558: 1554: 1551: 1549: 1546: 1544: 1541: 1539: 1536: 1535: 1533: 1531: 1528: 1526: 1523: 1521: 1518: 1516: 1513: 1512: 1510: 1508: 1504: 1496: 1486: 1483: 1481: 1478: 1476: 1473: 1471: 1468: 1466: 1463: 1461: 1458: 1456: 1453: 1451: 1448: 1446: 1443: 1441: 1438: 1434: 1431: 1429: 1426: 1425: 1424: 1421: 1419: 1416: 1414: 1411: 1410: 1408: 1404: 1400: 1393: 1388: 1386: 1381: 1379: 1374: 1373: 1370: 1364: 1361: 1359: 1355: 1352: 1350: 1347: 1345: 1342: 1339: 1336: 1334: 1331: 1330: 1308: 1304: 1297: 1292: 1289: 1285: 1281: 1278: 1274: 1273: 1258: 1253: 1246: 1238: 1225: 1217: 1210: 1194: 1190: 1184: 1168: 1164: 1158: 1142: 1138: 1134: 1127: 1119: 1113: 1097: 1093: 1089: 1082: 1066: 1062: 1058: 1052: 1036: 1032: 1026: 1010: 1005: 1000: 996: 992: 988: 981: 965: 961: 957: 953: 949: 943: 927: 923: 919: 913: 898: 894: 887: 872: 868: 867: 860: 845: 841: 840: 832: 816: 812: 808: 802: 786: 782: 778: 772: 756: 752: 748: 741: 722: 715: 708: 692: 688: 682: 674: 668: 652: 648: 641: 625: 621: 615: 607: 601: 585: 579: 563: 559: 558:"Obfuscation" 553: 537: 533: 526: 510: 506: 499: 483: 479: 475: 469: 465: 454: 451: 449: 446: 444: 441: 439: 436: 434: 431: 429: 426: 424: 421: 419: 416: 414: 411: 409: 406: 404: 401: 399: 396: 394: 393:Decompilation 391: 389: 386: 384: 381: 380: 373: 371: 367: 363: 354: 352: 348: 338: 336: 332: 329: 319: 316: 314: 313:AVG AntiVirus 301: 298: 295: 292: 289: 288: 282: 280: 276: 272: 266: 262: 255:Cryptographic 252: 250: 246: 242: 237: 235: 231: 227: 214: 213: 208: 204: 201: 198: 194: 191: 187: 183: 182: 181: 179: 175: 170: 168: 155: 152: 149: 148: 147: 145: 144:Nick Montfort 142:According to 140: 131: 122: 118: 115:This section 113: 110: 106: 105: 97: 94: 92: 88: 85: 81: 77: 67: 65: 61: 57: 53: 49: 45: 41: 37: 33: 28: 23: 19: 1891:Data masking 1450:Cyberwarfare 1314:. Retrieved 1302: 1287: 1245: 1224:cite journal 1209: 1199:December 18, 1197:. Retrieved 1183: 1173:November 25, 1171:. Retrieved 1157: 1147:November 12, 1145:. Retrieved 1136: 1126: 1102:November 12, 1100:. Retrieved 1091: 1081: 1069:. Retrieved 1060: 1051: 1041:November 25, 1039:. Retrieved 1035:the original 1025: 1013:. Retrieved 994: 980: 968:. Retrieved 951: 942: 932:February 27, 930:. Retrieved 926:the original 921: 912: 900:. Retrieved 886: 875:, retrieved 865: 859: 848:, retrieved 838: 831: 819:. Retrieved 815:the original 810: 801: 789:. Retrieved 780: 771: 759:. Retrieved 750: 740: 730:November 24, 728:. Retrieved 721:the original 707: 695:. Retrieved 681: 657:November 25, 655:. Retrieved 640: 630:November 25, 628:. Retrieved 624:the original 614: 590:November 25, 588:. Retrieved 578: 568:November 25, 566:. Retrieved 562:the original 552: 542:November 25, 540:. Retrieved 536:the original 525: 515:November 25, 513:. Retrieved 509:the original 498: 486:. Retrieved 477: 468: 361: 360: 344: 325: 317: 310: 270: 268: 238: 226:brain teaser 223: 220:Recreational 211: 196: 171: 164: 141: 138: 125: 121:adding to it 116: 95: 73: 44:machine code 35: 29: 27: 22: 1973:Source code 1831:Misuse case 1665:Infostealer 1640:Email fraud 1605:Data breach 1440:Cybergeddon 1191:. gnu.org. 1165:. Lwn.net. 1071:February 4, 987:Lin, Huijia 902:October 23, 877:November 5, 850:November 5, 821:October 18, 791:October 18, 781:wiki.c2.com 761:October 18, 488:February 1, 341:Decompilers 197:movfuscator 48:obfuscation 36:obfuscation 18:obfuscation 1962:Categories 1896:Encryption 1772:Web shells 1712:Ransomware 1660:Hacktivism 1423:Cybercrime 1257:1807.01860 1004:2008.09317 460:References 347:decompiler 245:signatures 207:x86_32 ISA 128:March 2023 100:Techniques 82:, and the 1727:Shellcode 1722:Scareware 1570:Crimeware 1530:Backdoors 1015:March 14, 970:March 14, 960:1059-1028 383:AARD code 1901:Firewall 1806:Defenses 1732:Spamming 1717:Rootkits 1690:Phishing 1650:Exploits 1316:June 28, 1307:Archived 1193:Archived 1167:Archived 1141:Archived 1112:cite web 1096:Archived 1065:Archived 1009:Archived 964:Archived 897:Hackaday 871:archived 844:archived 785:Archived 755:Archived 697:March 3, 691:Archived 667:cite web 651:Archived 600:cite web 482:Archived 376:See also 328:copyleft 232:and the 205:for the 203:compiler 70:Overview 1742:Spyware 1685:Payload 1680:Malware 1620:Viruses 1600:Botnets 1507:Threats 91:Haskell 1936:(SIEM) 1913:(HIDS) 1797:Zombie 1534:Bombs 1515:Adware 1358:Curlie 958:  922:pm.org 186:Python 64:puzzle 40:source 1782:Worms 1777:Wiper 1695:Voice 1543:Logic 1310:(PDF) 1299:(PDF) 1252:arXiv 1137:ZDNet 999:arXiv 952:Wired 724:(PDF) 717:(PDF) 403:Quine 184:Some 1548:Time 1538:Fork 1318:2008 1237:help 1201:2014 1175:2013 1149:2019 1118:link 1104:2019 1073:2022 1043:2013 1017:2021 972:2021 956:ISSN 934:2015 904:2023 879:2022 852:2022 823:2017 793:2017 763:2017 732:2017 699:2020 673:link 659:2013 632:2013 606:link 592:2013 570:2013 544:2013 517:2013 490:2019 263:and 251:"). 241:Perl 195:The 178:.NET 176:and 174:Java 84:Perl 1553:Zip 1356:at 212:mov 123:. 80:C++ 50:in 42:or 30:In 1964:: 1301:. 1286:. 1228:: 1226:}} 1222:{{ 1139:. 1135:. 1114:}} 1110:{{ 1094:. 1090:. 1059:. 1007:. 997:. 993:. 962:. 954:. 950:. 920:. 895:. 869:, 842:, 809:. 783:. 779:. 753:. 749:. 669:}} 665:{{ 602:}} 598:{{ 480:. 476:. 345:A 236:. 78:, 34:, 1391:e 1384:t 1377:v 1320:. 1260:. 1254:: 1239:) 1235:( 1218:. 1203:. 1177:. 1151:. 1120:) 1106:. 1075:. 1045:. 1019:. 1001:: 974:. 936:. 906:. 825:. 795:. 765:. 734:. 701:. 675:) 661:. 634:. 608:) 594:. 572:. 546:. 519:. 492:. 200:C 130:) 126:( 76:C 20:.

Index

obfuscation
software development
source
machine code
obfuscation
natural language
security through obscurity
reverse engineering
puzzle
C
C++
Perl
programming language
Haskell

adding to it
Nick Montfort
open-source software
Java
.NET
Python
official Python programming FAQ
C
compiler
x86_32 ISA
mov
brain teaser
International Obfuscated C Code Contest
Obfuscated Perl Contest
Perl

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.