├── Data ├── DetectionResults.csv ├── DetectionResults.xlsx ├── ObfuscatorComparisonResults.csv └── ObfuscatorComparisonResults.xlsx ├── Projects ├── async.7z ├── chalk.7z ├── commander.js.7z ├── debug.7z ├── lodash.7z └── node-fetch.7z └── README.md /Data/DetectionResults.csv: -------------------------------------------------------------------------------- 1 | Technique,Cujo,,,Zozzle,,,JaSt,,,JStap (NGrams),,,JStap (Values),, 2 | ,Accuracy,Precision,Recall,Accuracy,Precision,Recall,Accuracy,Precision,Recall,Accuracy,Precision,Recall,Accuracy,Precision,Recall 3 | Baseline (no transformation),"98.56% (26,316/26,701)","0.95 (5,548/5,832)","0.98 (5,548/5,649)","90.41% (24,141/26,701)","0.97 (3,598/3,694)","0.66 (3,598/5,453)","96.29% (25,710/26,701)","1.00 (5,076/5,080)","0.99 (5,076/5,108)","86.42% (23,075/26,701)","1.00 (4,483/4,484)","0.99 (4,483/4,524)","86.13% (22,997/26,701)","1.00 (4,439/4,440)","0.98 (4,439/4,524)" 4 | Individual,,,,,,,,,,,,,,, 5 | "Sync, T1-StringLiteral","85.82% (22,391/26,092)","0.85 (1,623/1,907)","0.61 (1,623/2,644)","91.71% (23,930/26,092)","0.97 (3,387/3,483)","0.62 (3,387/5,453)","92.09% (24,027/26,092)","1.00 (3,393/3,397)","0.66 (3,393/5,108)","77.15% (20,131/26,092)","1.00 (1,539/1,540)","0.36 (1,539/4,257)","78.17% (20,397/26,092)","1.00 (1,839/1,840)","0.43 (1,839/4,257)" 6 | "Sync, T2-ArrayInitialization","95.13% (24,818/26,089)","0.93 (4,050/4,334)","0.94 (4,050/4,292)","92.51% (24,136/26,089)","0.97 (3,593/3,689)","0.66 (3,593/5,450)","95.80% (24,994/26,089)","1.00 (4,360/4,364)","0.85 (4,360/5,105)","86.17% (22,482/26,089)","1.00 (3,890/3,891)","0.86 (3,890/4,505)","86.50% (22,567/26,089)","1.00 (4,009/4,010)","0.89 (4,009/4,505)" 7 | "Sync, T3-FunctionName","90.25% (23,548/26,092)","0.91 (2,780/3,064)","0.67 (2,780/4,159)","92.34% (24,093/26,092)","0.97 (3,550/3,646)","0.65 (3,550/5,453)","92.54% (24,146/26,092)","1.00 (3,512/3,516)","0.69 (3,512/5,108)","81.78% (21,339/26,092)","1.00 (2,747/2,748)","0.57 (2,747/4,810)","84.40% (22,021/26,092)","1.00 (3,463/3,464)","0.72 (3,463/4,810)" 8 | "Sync, T4-CallExpression(a)","91.25% (23,808/26,092)","0.91 (3,040/3,324)","0.71 (3,040/4,285)","92.17% (24,050/26,092)","0.97 (3,507/3,603)","0.64 (3,507/5,453)","86.53% (22,577/26,092)","1.00 (1,943/1,947)","0.38 (1,943/5,108)","77.86% (20,315/26,092)","1.00 (1,723/1,724)","0.37 (1,723/4,633)","84.97% (22,171/26,092)","1.00 (3,613/3,614)","0.78 (3,613/4,633)" 9 | "Sync, T4-CallExpression(b) ","88.74% (23,153/26,092)","0.89 (2,385/2,669)","0.58 (2,385/4,115)","91.86% (23,967/26,092)","0.97 (3,424/3,520)","0.63 (3,424/5,453)","87.72% (22,887/26,092)","1.00 (2,253/2,257)","0.44 (2,253/5,108)","75.31% (19,650/26,092)","1.00 (1,058/1,059)","0.23 (1,058/4,586)","84.04% (21,927/26,092)","1.00 (3,369/3,370)","0.73 (3,369/4,586)" 10 | "Sync, T5-IfStatement","93.06% (24,281/26,092)","0.93 (3,513/3,797)","0.82 (3,513/4,301)","92.17% (24,048/26,092)","0.97 (3,505/3,601)","0.64 (3,505/5,453)","96.46% (25,169/26,092)","1.00 (4,535/4,539)","0.89 (4,535/5,108)","85.50% (22,309/26,092)","1.00 (3,717/3,718)","0.83 (3,717/4,501)","87.14% (22,736/26,092)","1.00 (4,178/4,179)","0.93 (4,178/4,501)" 11 | "Sync, T6-ForStatement","94.45% (24,645/26,092)","0.93 (3,877/4,161)","0.90 (3,877/4,299)","92.45% (24,121/26,092)","0.97 (3,578/3,674)","0.66 (3,578/5,453)","97.17% (25,354/26,092)","1.00 (4,720/4,724)","0.92 (4,720/5,108)","86.10% (22,464/26,092)","1.00 (3,872/3,873)","0.87 (3,872/4,465)","87.84% (22,918/26,092)","1.00 (4,360/4,361)","0.98 (4,360/4,465)" 12 | "Sync, T7-WhileStatement","94.56% (24,672/26,092)","0.93 (3,904/4,188)","0.90 (3,904/4,321)","92.52% (24,141/26,092)","0.97 (3,598/3,694)","0.66 (3,598/5,453)","97.79% (25,516/26,092)","1.00 (4,882/4,886)","0.96 (4,882/5,108)","88.16% (23,002/26,092)","1.00 (4,410/4,411)","0.98 (4,410/4,502)","88.03% (22,970/26,092)","1.00 (4,412/4,413)","0.98 (4,412/4,502)" 13 | Individual Async,,,,,,,,,,,,,,, 14 | "Async, T1-StringLiteral","91.41% (24,086/26,349)","0.92 (3,318/3,602)","0.63 (3,318/5,297)","90.89% (23,949/26,349)","0.97 (3,406/3,502)","0.62 (3,406/5,453)","91.06% (23,994/26,349)","1.00 (3,360/3,364)","0.62 (3,360/5,453)","74.18% (19,547/26,349)",1.00 (955/956),"0.21 (955/4,645)","77.70% (20,474/26,349)","1.00 (1,916/1,917)","0.45 (1,916/4,300)" 15 | "Async, T2-ArrayInitialization","94.51% (24,660/26,092)","0.93 (3,892/4,176)","0.86 (3,892/4,550)","92.52% (24,141/26,092)","0.97 (3,598/3,694)","0.66 (3,598/5,453)","94.02% (24,531/26,092)","1.00 (3,897/3,901)","0.71 (3,897/5,453)","82.96% (21,646/26,092)","1.00 (3,054/3,055)","0.59 (3,054/5,218)","84.90% (22,152/26,092)","1.00 (3,594/3,595)","0.74 (3,594/4,873)" 16 | "Async, T3-FunctionName","95.17% (24,092/25,315)","0.92 (3,324/3,608)","0.78 (3,324/4,263)","81.15% (20,543/25,315)",0.00 (0/96),0.00 (0/345),"81.51% (20,634/25,315)",0.00 (0/4),NaN (0/0),"73.44% (18,592/25,315)",0.00 (0/1),NaN (0/0),"73.31% (18,558/25,315)",0.00 (0/1),NaN (0/0) 17 | "Async, T4-CallExpression(a)","90.09% (23,506/26,092)","0.91 (2,738/3,022)","0.64 (2,738/4,299)","92.37% (24,100/26,092)","0.97 (3,557/3,653)","0.65 (3,557/5,453)","85.80% (22,387/26,092)","1.00 (1,753/1,757)","0.32 (1,753/5,453)","78.00% (20,353/26,092)","1.00 (1,761/1,762)","0.34 (1,761/5,179)","85.45% (22,295/26,092)","1.00 (3,737/3,738)","0.77 (3,737/4,834)" 18 | "ASync, T5-IfStatement","91.84% (23,963/26,092)","0.92 (3,195/3,479)","0.74 (3,195/4,303)","92.35% (24,096/26,092)","0.97 (3,553/3,649)","0.65 (3,553/5,453)","94.65% (24,696/26,092)","1.00 (4,062/4,066)","0.74 (4,062/5,453)","82.98% (21,651/26,092)","1.00 (3,059/3,060)","0.59 (3,059/5,206)","86.18% (22,487/26,092)","1.00 (3,929/3,930)","0.81 (3,929/4,861)" 19 | "Async, T6-ForStatement","93.01% (24,268/26,092)","0.92 (3,500/3,784)","0.81 (3,500/4,308)","92.51% (24,138/26,092)","0.97 (3,595/3,691)","0.66 (3,595/5,453)","95.19% (24,838/26,092)","1.00 (4,204/4,208)","0.77 (4,204/5,453)","82.42% (21,506/26,092)","1.00 (2,914/2,915)","0.56 (2,914/5,213)","86.42% (22,549/26,092)","1.00 (3,991/3,992)","0.82 (3,991/4,868)" 20 | "Async, T7-WhileStatement","92.89% (24,238/26,092)","0.92 (3,470/3,754)","0.80 (3,470/4,312)","92.53% (24,143/26,092)","0.97 (3,600/3,696)","0.66 (3,600/5,453)","95.44% (24,902/26,092)","1.00 (4,268/4,272)","0.78 (4,268/5,453)","85.41% (22,286/26,092)","1.00 (3,694/3,695)","0.71 (3,694/5,214)","86.45% (22,557/26,092)","1.00 (3,999/4,000)","0.82 (3,999/4,869)" 21 | Combined,,,,,,,,,,,,,,, 22 | All sync (using T4(a)),"81.20% (21,184/26,089)",0.59 (416/700),"0.18 (416/2,255)","91.97% (23,993/26,089)","0.97 (3,450/3,546)","0.63 (3,450/5,450)","83.32% (21,738/26,089)","1.00 (1,104/1,108)","0.22 (1,104/5,105)","71.27% (18,593/26,089)",0.50 (1/2),"0.00 (1/4,235)","74.07% (19,324/26,089)",1.00 (766/767),"0.18 (766/4,235)" 23 | All sync (using T4(b)),"81.20% (21,183/26,089)",0.59 (415/699),"0.19 (415/2,205)","91.88% (23,971/26,089)","0.97 (3,428/3,524)","0.63 (3,428/5,450)","82.66% (21,565/26,089)",1.00 (931/935),"0.18 (931/5,105)","71.26% (18,592/26,089)",0.00 (0/1),"0.00 (0/4,243)","72.47% (18,908/26,089)",1.00 (350/351),"0.08 (350/4,243)" 24 | All async,"84.47% (22,258/26,349)","0.84 (1,490/1,774)","0.28 (1,490/5,297)","91.34% (24,067/26,349)","0.97 (3,524/3,620)","0.65 (3,524/5,453)","82.43% (21,719/26,349)","1.00 (1,085/1,089)","0.20 (1,085/5,453)","70.58% (18,596/26,349)",0.80 (4/5),"0.00 (4/4,612)","74.07% (19,517/26,349)",1.00 (959/960),"0.22 (959/4,267)" 25 | Combinations,,,,,,,,,,,,,,, 26 | "Sync, Omit String","88.01% (22,960/26,089)","0.89 (2,192/2,476)","0.49 (2,192/4,486)","92.89% (24,233/26,089)","0.97 (3,690/3,786)","0.68 (3,690/5,450)","84.69% (22,094/26,089)","1.00 (1,460/1,464)","0.29 (1,460/5,105)","73.18% (19,093/26,089)",1.00 (501/502),"0.11 (501/4,525)","81.34% (21,221/26,089)","1.00 (2,663/2,664)","0.59 (2,663/4,525)" 27 | "Sync, Omit Arrays","97.14% (25,596/26,349)","0.94 (4,828/5,112)","0.91 (4,828/5,297)","95.30% (25,110/26,349)","0.98 (4,567/4,663)","0.84 (4,567/5,453)","87.57% (23,075/26,349)","1.00 (2,441/2,445)","0.48 (2,441/5,108)","70.77% (18,646/26,349)",0.98 (54/55),"0.01 (54/3,665)","70.87% (18,674/26,349)",0.99 (116/117),"0.03 (116/3,665)" 28 | "Sync, Omit Window","96.20% (25,347/26,348)","0.94 (4,579/4,863)","0.86 (4,579/5,296)","95.30% (25,110/26,348)","0.98 (4,567/4,663)","0.84 (4,567/5,450)","87.35% (23,016/26,348)","1.00 (2,382/2,386)","0.47 (2,382/5,105)","70.77% (18,646/26,348)",0.98 (54/55),"0.02 (54/3,412)","70.98% (18,702/26,348)",0.99 (144/145),"0.04 (144/3,412)" 29 | "Sync, Omit Calls","97.74% (25,754/26,349)","0.95 (4,986/5,270)","0.94 (4,986/5,297)","95.29% (25,107/26,349)","0.98 (4,564/4,660)","0.84 (4,564/5,450)","93.04% (24,514/26,349)","1.00 (3,880/3,884)","0.76 (3,880/5,105)","72.46% (19,092/26,349)",1.00 (500/501),"0.15 (500/3,441)","70.69% (18,627/26,349)",0.99 (69/70),"0.02 (69/3,441)" 30 | "Sync, Omit Ifs","97.20% (25,609/26,348)","0.94 (4,841/5,125)","0.91 (4,841/5,296)","95.30% (25,109/26,348)","0.98 (4,566/4,662)","0.84 (4,566/5,450)","89.39% (23,552/26,348)","1.00 (2,918/2,922)","0.57 (2,918/5,105)","70.89% (18,677/26,348)",0.99 (85/86),"0.02 (85/3,420)","70.92% (18,686/26,348)",0.99 (128/129),"0.04 (128/3,420)" 31 | "Sync, Omit Fors","97.20% (25,609/26,348)","0.94 (4,841/5,125)","0.91 (4,841/5,296)","95.30% (25,109/26,348)","0.98 (4,566/4,662)","0.84 (4,566/5,450)","89.39% (23,552/26,348)","1.00 (2,918/2,922)","0.57 (2,918/5,105)","70.89% (18,677/26,348)",0.99 (85/86),"0.02 (85/3,420)","70.92% (18,686/26,348)",0.99 (128/129),"0.04 (128/3,420)" 32 | "Async, Omit Array","87.45% (23,041/26,349)","0.89 (2,273/2,557)","0.43 (2,273/5,297)","91.29% (24,055/26,349)","0.97 (3,512/3,608)","0.64 (3,512/5,453)","83.41% (21,979/26,349)","1.00 (1,345/1,349)","0.25 (1,345/5,453)","70.57% (18,595/26,349)",0.75 (3/4),"0.00 (3/4,608)","75.32% (19,845/26,349)","1.00 (1,287/1,288)","0.30 (1,287/4,263)" 33 | "Async, Omit Calls","84.92% (22,375/26,348)","0.85 (1,607/1,891)","0.30 (1,607/5,296)","91.33% (24,064/26,348)","0.97 (3,521/3,617)","0.65 (3,521/5,453)","85.48% (22,522/26,348)","1.00 (1,888/1,892)","0.35 (1,888/5,453)","71.35% (18,798/26,348)",1.00 (206/207),"0.04 (206/4,647)","74.22% (19,555/26,348)",1.00 (997/998),"0.23 (997/4,302)" 34 | "Async, Omit Fors","84.56% (22,282/26,349)","0.84 (1,514/1,798)","0.29 (1,514/5,297)","91.35% (24,070/26,349)","0.97 (3,527/3,623)","0.65 (3,527/5,453)","82.52% (21,742/26,349)","1.00 (1,108/1,112)","0.20 (1,108/5,453)","70.65% (18,615/26,349)",0.96 (23/24),"0.00 (23/4,603)","74.24% (19,561/26,349)","1.00 (1,003/1,004)","0.24 (1,003/4,258)" 35 | "Async, Omit Ifs","84.77% (22,335/26,349)","0.85 (1,567/1,851)","0.30 (1,567/5,297)","91.02% (23,982/26,349)","0.97 (3,439/3,535)","0.63 (3,439/5,453)","82.63% (21,773/26,349)","1.00 (1,139/1,143)","0.21 (1,139/5,453)","70.77% (18,646/26,349)",0.98 (54/55),"0.01 (54/4,613)","74.44% (19,614/26,349)","1.00 (1,056/1,057)","0.25 (1,056/4,268)" 36 | "Async, Omit Strings","84.97% (22,170/26,092)","0.83 (1,402/1,686)","0.31 (1,402/4,526)","92.78% (24,208/26,092)","0.97 (3,665/3,761)","0.67 (3,665/5,453)","83.45% (21,775/26,092)","1.00 (1,141/1,145)","0.21 (1,141/5,453)","72.52% (18,922/26,092)",1.00 (330/331),"0.06 (330/5,115)","82.44% (21,509/26,092)","1.00 (2,951/2,952)","0.62 (2,951/4,770)" 37 | "Async, Omit Window Calls","84.60% (22,292/26,349)","0.84 (1,524/1,808)","0.29 (1,524/5,297)","91.38% (24,079/26,349)","0.97 (3,536/3,632)","0.65 (3,536/5,453)","82.43% (21,720/26,349)","1.00 (1,086/1,090)","0.20 (1,086/5,453)","70.57% (18,595/26,349)",0.75 (3/4),"0.00 (3/4,612)","74.49% (19,627/26,349)","1.00 (1,069/1,070)","0.25 (1,069/4,267)" -------------------------------------------------------------------------------- /Data/DetectionResults.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js2wasm-obfuscator/translator/f4f2510f650dbf825a4b21cb3b22f12054ff2882/Data/DetectionResults.xlsx -------------------------------------------------------------------------------- /Data/ObfuscatorComparisonResults.csv: -------------------------------------------------------------------------------- 1 | Technique,Zozzle,,,Cujo,,,JaSt,,,JStap (NGrams),,,JStap (Values),, 2 | ,Accuracy,Precision,Recall,Accuracy,Precision,Recall,Accuracy,Precision,Recall,Accuracy,Precision,Recall,Accuracy,Precision,Recall 3 | Baseline (no transformation),"90.41% (24,141/26,701)","0.97 (3,598/3,694)","0.66 (3,598/5,453)","98.56% (26,316/26,701)","0.95 (5,548/5,832)","0.98 (5,548/5,649)","96.29% (25,710/26,701)","1.00 (5,076/5,080)","0.99 (5,076/5,108)","86.42% (23,075/26,701)","1.00 (4,483/4,484)","0.99 (4,483/4,524)","86.13% (22,997/26,701)","1.00 (4,439/4,440)","0.98 (4,439/4,524)" 4 | javascript-obfuscator,"93.32% (24,350/26,092)","0.98 (3,807/3,903)","0.70 (3,807/5,453)","96.48% (25,174/26,092)","0.94 (4,406/4,690)","1.00 (4,406/4,415)","95.00% (24,787/26,092)","1.00 (4,153/4,157)","0.81 (4,153/5,108)","78.94% (20,597/26,092)","1.00 (2,005/2,006)","0.43 (2,005/4,717)","82.42% (21,505/26,092)","1.00 (2,947/2,948)","0.62 (2,947/4,717)" 5 | Gnirts,"90.41% (24,141/26,701)","0.97 (3,598/3,694)","0.66 (3,598/5,453)","98.56% (26,316/26,701)","0.95 (5,548/5,832)","0.98 (5,548/5,649)","96.29% (25,710/26,701)","1.00 (5,076/5,080)","0.99 (5,076/5,108)","86.42% (23,075/26,701)","1.00 (4,483/4,484)","0.99 (4,483/4,524)","86.13% (22,997/26,701)","1.00 (4,439/4,440)","0.98 (4,439/4,524)" 6 | jfogs,"92.47% (24,127/26,092)","0.97 (3,584/3,680)","0.66 (3,584/5,453)","93.07% (24,283/26,092)","0.93 (3,515/3,799)","0.77 (3,515/4,562)","79.18% (20,660/26,092)",0.87 (26/30),"0.00 (26/5,453)","71.32% (18,608/26,092)",0.94 (16/17),"0.00 (16/5,025)","81.96% (21,384/26,092)","1.00 (2,826/2,827)","0.56 (2,826/5,025)" 7 | JSObfu,"95.97% (25,010/26,060)","0.98 (4,467/4,563)","0.84 (4,467/5,324)","98.86% (25,762/26,060)","0.95 (4,994/5,278)","1.00 (4,994/5,008)","84.77% (22,090/26,060)","1.00 (1,456/1,460)","0.29 (1,456/4,979)","71.42% (18,612/26,060)",0.95 (20/21),"0.01 (20/3,667)","80.50% (20,978/26,060)","1.00 (2,420/2,421)","0.66 (2,420/3,667)" -------------------------------------------------------------------------------- /Data/ObfuscatorComparisonResults.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js2wasm-obfuscator/translator/f4f2510f650dbf825a4b21cb3b22f12054ff2882/Data/ObfuscatorComparisonResults.xlsx -------------------------------------------------------------------------------- /Projects/async.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js2wasm-obfuscator/translator/f4f2510f650dbf825a4b21cb3b22f12054ff2882/Projects/async.7z -------------------------------------------------------------------------------- /Projects/chalk.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js2wasm-obfuscator/translator/f4f2510f650dbf825a4b21cb3b22f12054ff2882/Projects/chalk.7z -------------------------------------------------------------------------------- /Projects/commander.js.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js2wasm-obfuscator/translator/f4f2510f650dbf825a4b21cb3b22f12054ff2882/Projects/commander.js.7z -------------------------------------------------------------------------------- /Projects/debug.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js2wasm-obfuscator/translator/f4f2510f650dbf825a4b21cb3b22f12054ff2882/Projects/debug.7z -------------------------------------------------------------------------------- /Projects/lodash.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js2wasm-obfuscator/translator/f4f2510f650dbf825a4b21cb3b22f12054ff2882/Projects/lodash.7z -------------------------------------------------------------------------------- /Projects/node-fetch.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js2wasm-obfuscator/translator/f4f2510f650dbf825a4b21cb3b22f12054ff2882/Projects/node-fetch.7z -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Wobfuscator: JS To WebAssembly Transformation Obfuscator 2 | 3 | This repo contains the data from our submission titled "Wobfuscator: Obfuscating JavaScript Malware via Opportunistic Translation to WebAssembly". 4 | 5 | ## Datasets 6 | The detectors we compare against in our paper ([Cujo](https://github.com/Aurore54F/lexical-jsdetector), [Zozzle](https://github.com/Aurore54F/syntactic-jsdetector), [JaSt](https://github.com/Aurore54F/JaSt), and [JStap](https://github.com/Aurore54F/JStap)) are trained against a set of benign and malicious samples. Our benign samples come from the [150k Javascript Dataset]([https://www.sri.inf.ethz.ch/js150) dataset made public by ETH Zürich. The malicious samples come from three datasets. Two datasets are made available: the [Javascript Malware Collection by HynekPetrak](https://github.com/HynekPetrak/javascript-malware-collection) and the [Malicious Javascript Dataset by GeeksOnSecurity](https://github.com/geeksonsecurity/js-malicious-dataset). The third dataset is provided by VirusTotal. This dataset can be obtained by [requesting it from them](https://www.virustotal.com/gui/contact-us/). 7 | 8 | ## Data 9 | We provide the detection results obtained by applying different combinations of our transformation rules against each of the detection tools described in the paper. The results are in the `Data` directory in CSV and Excel format. 10 | 11 | ## Projects 12 | In our correctness validation and efficiency measurement, we use the following npm modules: 13 | - [Lodash](https://github.com/lodash/lodash) 14 | - [Chalk](https://github.com/chalk/chalk) 15 | - [Commander.js](https://github.com/tj/commander.js) 16 | - [Debug](https://github.com/visionmedia/debug) 17 | - [Async](https://github.com/caolan/async) 18 | - [Node-Fetch](https://github.com/node-fetch/node-fetch) 19 | 20 | We provide these packages with the translations applied under the `Projects` directory. These packages have had the library files (and test files for node-fetch) transformed using all of the transformation rules. The following directories of each project are where the library files are located (and where our transformations are applied): 21 | - Lodash: `.internal` 22 | - Chalk: `source` 23 | - Commander.js: `index.js` 24 | - Debug: `src` 25 | - Async: `lib/internal` 26 | - Node-Fetch: `src`, `test` 27 | 28 | For each of these locations, we also provide the original, unobfuscated library files in directories with `_original` appended to the names above, e.g. `.internal_original` for lodash. 29 | --------------------------------------------------------------------------------