我有一些代码在javascript的php文件的底部.它经历了许多奇怪的扭曲,比如将hex转换为ascii然后进行正则表达式替换,执行代码等等......
有没有办法在实际执行之前找出它正在执行的内容?
代码在这里:
javascript obfuscation hex reverse-engineering deobfuscation
我遇到过一些我认为是恶意的java脚本代码,但大多数是混淆的.我想知道是否有人可以帮助我弄清楚这段代码实际上做了什么.
eval(unescape('function n48ec61ae(s) {
var r = "";
var tmp = s.split("12113781");
s = unescape(tmp[0]);
k = unescape(tmp[1] + "608421");
for( var i = 0; i < s.length; i++) {
r += String.fromCharCode((parseInt(k.charAt(i%k.length))^s.charCodeAt(i))+-4);
}
return r;
}
'));
eval(unescape('document.write(n48ec61ae('') + 'GoqwpF@dmgiEFxipviJBkSbzbjxy,_WMD1yj{yoBFqa|g%ufxoA"go}swtip%-asvporpE$'EF3hachJAmulwisa~$^WYVF%<24-8(&,BQWOJ_G&0."J^ASHAP_NIRI 4. HWBR@QTAOKRCE$5!A@n~cqa PDVJH xw| $_RE@!oq~t:;5{s0ram`axsau2ows2ulaoizm6<21wnkdpicp5hx6vms@q042enA1?7+5=0oI $ZWTHPNWOBFj~ash#QLWIE.nsyaos5kl~& _PGI"ggtzq8ftmto. SDQHDT[I@^LI"6'#RLPKIZJIEONYF%= $SOPSXTOSLB/TS",LVMUKGTUAOVE.2&,VQWNTDXIF@;ntdvj~oxFHtsbrgpntKF3v{lvmukvEF3hpwpJ121137817396048' + unescape(''));'));
// -->
Run Code Online (Sandbox Code Playgroud)
正如提醒一样,请勿执行此代码.
我的网站的一个朋友被列为恶意网站,我们发现一些混淆的代码已被注入他的index.php而他却不知情.我将代码反向混淆了两级,发现了这个:
任何人都可以告诉我它正在尝试做什么以及它为什么是恶意的?
可能重复:
您是否混淆了商业Java代码?
除了其他混淆之外还有什么方法可以保护罐子不被其他人打开?问题是我不希望任何人访问代码,这就是我不喜欢Java的原因.从我使用的反编译器开始,用C#和Java编写的程序就像变量的名称一样完整,这样可以很容易地访问不是免费的程序.更糟糕的是,给出源代码.
我刚在计算机中发现了一种使用.js文件进行攻击的病毒.我在记事本中打开文件检查代码,但它是完全加密的.我可以看到一些有意义的数据(例如bhynivmao.length!=4),但是大部分文件都充斥着乱码.
还有一个autorun.inf,即使我能看到一些shell \open\command,我也无法弄清楚其余的乱码.
看起来自动运行和.js文件都以相同的方式进行模糊处理.有人可以帮我回复可读代码吗?我真的很想知道这件事是如何运作的.
我从我的应用程序的Google Play管理区域下载了崩溃报告,运行它retrace.sh以反转混淆Proguard映射,并在下面生成输出.
问题:
什么是未知来源?
showHeader,showPhoto等的确是我的方法SummaryFragment类,但为什么他们的顺序列出显示?这些方法在我的代码中不遵循任何类型的逻辑或执行顺序.
NPE实际上抛出了哪种方法?
Caused by: java.lang.NullPointerException
at com.myapp.SummaryFragment.selectMenuItemAuth(Unknown Source)
showHeader
photoButtonClicked
showPhoto
nameButtonClicked
deleteByID
access$0
at com.myapp.SummaryFragment.onActivityCreated(Unknown Source)
at android.support.v4.app.Fragment.performActivityCreated(Unknown Source)
at android.support.v4.app.FragmentManagerImpl.moveToState(Unknown Source)
moveToState
moveToState
moveToState
Run Code Online (Sandbox Code Playgroud) 我喜欢转换旧的BASIC游戏 - 我碰到了一个有这个奇怪公式的游戏.目前我在Pascal写作,但我可以用任何语言写.在通过代码搜索后,我无法找到这个var是否在使用,但仍然想知道BASIC当天使用的数学快捷方式是什么样的.
d1 = 1-(( 0.23 + random / 10 ) * (-(d <= 50 )))
d1是虚拟var,d= sub的深度
我将其分解为步骤,发现该部分(-(d <= 50))导致我的编译失败.
有人可以对它有所了解吗?
源映射是否有助于对先前使用Closure/Uglifyjs缩小的代码进行反混淆处理?
源地图的工作方式是否存在真正的障碍,或者仅仅是因为没有人关心它?我不太确定它是否可以以类似的方式调试编译语言中的符号(广泛用于反编译二进制文件).
我对开发人员的观点感兴趣.很高兴知道对源映射的未授权访问是否可能导致无阻碍的代码借用.
这是一个通用问题
我在一些网站上看到过 javascript 被混淆了
当您尝试使用标准反混淆器(deobfuscatejavascript.com、jsnice.org 和 jsbeautifier.org)对代码进行反混淆时,代码不容易反混淆
我知道实际上不可能避免反混淆。我想让攻击者很难对其进行反混淆
请建议我可以实现这一目标的一些方法
我应该编写自己的混淆器,然后使用另一个在线混淆器混淆输出。这能打败它吗?
提前致谢
PS:我尝试了谷歌闭包编译器、uglifyjs、js-obfuscator 和一堆其他工具。它们(单独或组合使用)都无法击败反混淆器
我有一些我怀疑被混淆的 Lua 代码。我该如何去混淆它?
我相信代码被混淆了,因为它看起来与普通的 Lua 代码非常不同,但我知道它是有效的 Lua 代码,因为 Lua 解释器仍然会编译和运行代码。
我对去混淆代码有合法的兴趣,并且不打算违背作者的意愿分发它或修改它以规避任何 DRM 机制。
deobfuscation ×10
obfuscation ×7
javascript ×6
autorun ×1
basic ×1
formula ×1
hex ×1
jar ×1
java ×1
lua ×1
math ×1
minify ×1
proguard ×1
source-maps ×1
virus ×1