首页 > 其他分享 >JSnaughty: Recovering Clear, Natural Identifiers from Obfuscated JS Names

JSnaughty: Recovering Clear, Natural Identifiers from Obfuscated JS Names

时间:2024-04-15 23:34:34浏览次数:24  
标签:Obfuscated 混淆 Natural io Recovering JS 名称 https 标识符

发表:FSE,2017,卡内基梅隆大学, Bogdan Vasilescu团队(https://bvasiles.github.io/);加利福尼亚大学戴维斯分校,Casey Casalnuovo团队(https://caseycas.github.io/)和 Premkumar Devanbu团队(https://web.cs.ucdavis.edu/~devanbu/)(https://cmustrudel.github.io/projects/jsnaughty/),

开源:https://cmustrudel.github.io/projects/jsnaughty/ (工具现已停用,代码开源,提供docker镜像)

内容概括

  本文描述了一种基于统计机器翻译(SMT)的方法AUTONYM,加入JSNice互补,恢复被UglifyJS混淆的JS程序中的标识符名称。

  整个架构图如下:


  insight:要猜测被混淆的标识符w的明确、自然的名字v,我们所要做的就是根据w出现的上下文k(变量作用域信息)来猜测最有可能的名字。

  方法:使用一个JS混淆器(UglifyJS)生成大量pair(源JS-混淆JS)训练数据,在一个现成的SMT系统(MoSeS)训练。

  挑战:(1)inconsistency. 默认情况下Moses独立地翻译每一行,没有内在机制确保不同行的相同标识符名称的一致恢复;(2)ambiguity. 存在多个不同作用域中重复使用同一简化名称来命名不同变量,即“超载”问题;(例如:function Vec(x,y)被混淆为function t(t,n))   解决方法:(1)后处理部分,包括两部分;第一,COMPUTECANDIDATENAMES ,接受一个标记化输入文件,并使用 MosE 将每个输入行反混淆,收集所有由 MosE 建议用于给定简化的任何名称的所有可能重命名,并且将JSNice预测出的名称加入候选列表;第二,RANKCANDIDATES,对每个标识符名称的一组候选名称进行排序,计算它们在将要使用的上下文中的“naturaless score”(通过语言模型得到),并且设计遍历名称的顺序,优先出现频率高,候选名称少的标识符。 (2)前处理部分,结合作用域信息,对简化名称进行哈希重命名;   评估:性能指标是每种技术恢复原始标识符名称的百分比;(UGlifyJS主要混淆局部变量,单独分析)    

标签:Obfuscated,混淆,Natural,io,Recovering,JS,名称,https,标识符
From: https://www.cnblogs.com/theon/p/18135990

相关文章

  • Kaggle自然语言处理入门 推特灾难文本分类 Natural Language Processing with Disaste
    和新闻按照标题分类差不多,用的朴素贝叶斯#导入必要的包importrandomimportsysfromsklearnimportmodel_selectionfromsklearn.naive_bayesimportMultinomialNBimportjoblibimportre,stringimportpandasaspdimportnumpyasnpdeftext_to_words(file_path)......
  • Coursera自然语言处理专项课程04:Natural Language Processing with Attention Models
    NaturalLanguageProcessingSpecializationIntroductionhttps://www.coursera.org/specializations/natural-language-processingCertificateNaturalLanguageProcessingwithAttentionModelsCourseCertificate本文是学习这门课NaturalLanguageProcessing......
  • Linux启动报错:clean ... file ... blocks 或 recovering journal
    先说原因:根目录内存满了如何解决:首先进入命令行界面:按照网上的操作方法主要是这种:Ctrl+Alt+F4我不是这种方式进入的,我的是:Alt+F4进入之后会让你输入账号密码,但是我只有四秒钟时间输入(不知道怎么会有这种逆天设置),很难一次搞定,极其麻烦。而且可能出现密码太长输不完的情......
  • Coursera自然语言处理专项课程01:Natural Language Processing with Classification an
    NaturalLanguageProcessingwithClassificationandVectorSpacesCourseCertificate本文是NaturalLanguageProcessingwithClassificationandVectorSpaces这门课的学习笔记,仅供个人学习使用,如有侵权,请联系删除。文章目录NaturalLanguageProcessingwi......
  • 【论文阅读】Natural Adversarial Examples 自然对抗的例子
    文章目录一、文章概览(一)摘要(二)导论(三)相关工作二、IMAGENET-A和IMAGENET-O(一)数据集构造方式(二)数据收集过程三、模型的故障模式四、实验(一)评估指标(二)使用数据增强(三)使用更多更真实的标记数据(四)架构变化策略一、文章概览(一)摘要文章的主要工作:使用简单的对抗性过......
  • CF1915D Unnatural Language Processing 题解
    容易发现音节的划分不仅要求子串形如\(\texttt{CV}\)或\(\texttt{CVC}\),并且接下来的两个字符也必须是\(\texttt{CV}\),不然会导致无法划分下去。于是我们遍历字符串,找出所有满足上述条件的子串,记录需要输出\(\texttt{.}\)的位置即可。实现:intn;strings,ans,t="";cin>......
  • 机器人的运动控制是否可以引入生物学信息,生物学信息是否可以辅助机器人的智能控制算法
    相关内容:Roboticprostheticanklesimprove'natural'movement,stability看了上面的论文的介绍(内容没看到,不是openaccess论文),论文的主要思想就是利用人体腿部的神经信号来控制假肢脚踝的控制,从而使单侧下肢截肢后使用假肢的人获得更好的行动稳定性。这个研究的实验......
  • PyTorch for Natural Language Processing: A Complete Overview
    1.背景介绍自然语言处理(NaturalLanguageProcessing,NLP)是计算机科学与人工智能的一个分支,旨在让计算机理解、解析和生成人类语言。自然语言处理的主要任务包括文本分类、情感分析、命名实体识别、语义角色标注、语义解析、机器翻译、语音识别、语音合成、问答系统、对话系统等。......
  • 《Learning Transferable Visual Models From Natural Language Supervision》论文学
    一、Abstract最先进的计算机视觉系统被训练用以预测一组预定的固定目标类别。这种受限的监督方式限制了它们的通用性和可用性,因为需要额外的标记数据来指定任何新的视觉概念。因此,直接从关于图像的原始描述文本中学习是一个有希望的替代方法,它利用了更广泛的因特网监督来源。我......
  • Natural Image Reconstruction from fMRI using Deep Learning: A Survey
    NaturalImageReconstructionfromfMRIusingDeepLearning:ASurveyZarinaRakhimberdina1,3,QuentinJodelet1,3,XinLiu2,3,∗,TsuyoshiMurata1,3一句话概括:介绍了各种自然图像重构方法(生成模型和非生成模型)以及评价指标,并提出了综合评价各模型的方法。介绍fMR......