适用于 iOS 的 JavaScript 解包库

Posted

技术标签:

【中文标题】适用于 iOS 的 JavaScript 解包库【英文标题】:JavaScript Unpack library for iOS 【发布时间】:2015-06-22 21:26:23 【问题描述】:

是否有任何 Objective-C/Swift 库可以像这样解压 javascript“数据包”代码?

eval(function(p,a,c,k,e,r)e=String;if(!''.replace(/^/,String))while(c--)r[c]=k[c]||c;k=[function(e)return r[e]];e=function()return'\\w+';c=1;while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p('(0()4 1="5 6 7 8";0 2(3)9(3)2(1))();',10,10,'function|b|something|a|var|some|sample|packed|code|alert'.split('|'),0,))

我找到了http://matthewfl.com/unPacker.html 之类的在线工具,但没有找到适用于 ios 的工具。

谢谢!

测试 1

let function = "eval(function(p,a,c,k,e,r)e=String;if(!''.replace(/^/,String))while(c--)r[c]=k[c]||c;k=[function(e)return r[e]];e=function()return'\\w+';c=1;while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p('(0()4 1=\"5 6 7 8\";0 2(3)9(3)2(1))();',10,10,'function|b|something|a|var|some|sample|packed|code|alert'.split('|'),0,))"

let toTest = NSString(format: "document.write('<textarea id=\"output\" cols=\"120\" rows=\"10\">');document.write(%@);document.write('</textarea>');document.getElementById(\"output\").value;", NSString(string: function).substringWithRange(NSRange(location: 5, length: count(function) - 6)))

此代码返回: (0()4 1="5 6 7 8";0 2(3)9(3)2(1))(); 但这是错误的......

【问题讨论】:

【参考方案1】:

你可以使用

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script

在这样的 UIWebView 上:

NSString *packedFunction = @"......";

[webview stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.write('<textarea id="output" cols="120" rows="10">');document.write(%@);document.write('</textarea>');document.getElementById("output").value;",[packedFunction subStringWithRange:NSMakeRange(5,packedFunction-1)]]];

【讨论】:

当执行“stringByEvaluatingJavaScriptFromString”时“已评估”为零

以上是关于适用于 iOS 的 JavaScript 解包库的主要内容,如果未能解决你的问题,请参考以下文章

网站的 javascript 适用于 android、windows、linux 和所有浏览器,但不适用于 mac、ios 在任何浏览器上

如何使用适用于 iOS 的 openCV 检测视频中的正方形?

Parse Javascript Cloud Code .save() 仅适用于单个用户

适用于 iOS 和 Android 的 React Native Router

是否有适用于 iOS 和 Android 浏览器的性能指南?

2021 年适用于包括 safari 在内的所有浏览器的 pwa javascript 视频录制应用程序