阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

简单分析AutoIt脚本的反编译和代码格式化问题

58次阅读
没有评论

共计 1643 个字符,预计需要花费 5 分钟才能阅读完成。

导读 这篇文章主要介绍了 AutoIt 脚本的反编译和代码格式化问题分析, 需要的朋友可以参考下

最近集中冒出一波 AutoIt 的恶意脚本来,也就多看了几个这类的样本。AutoIt 脚本是以“.au3”为扩展名的明文脚本,但病毒作者自然不会把明文的脚本放出来。所以自然用到了 AutoIt 自带的这个 Au2Exe 的工具:

简单分析 AutoIt 脚本的反编译和代码格式化问题

可以看到 AutoIt 允许用户将 au3 的明文脚本编译成 exe 文件或者 a3x 文件。exe 文件自不必赘述,就是我们平时熟悉的 PE 文件,但如果编译成 exe 文件,则失去了 AutoIt 脚本在恶意程序领域的优势(懂的自然懂,不细说),所以目前捕获的大多数恶意样本都是将脚本编译成 a3x 文件。

网上比较多的是 Exe2Au3 的反编译工具(据说早期版本的 AutoIt 是自带这个工具的,后来不带了),但下了几个,都很耿直——真的都只能反编译 Exe 文件,而对 a3x 文件表示无力。最后才找到了一个叫做 Autoit3 Decompiler GUI 的工具(https://www.jb51.net/softs/390596.html):

简单分析 AutoIt 脚本的反编译和代码格式化问题

用这个工具,就能很简单的将 a3x 文件反编译成 au3 的明文脚本了。BUT——为什么万事总有个 BUT——反编译出来的脚本看着有些忧桑……

简单分析 AutoIt 脚本的反编译和代码格式化问题

就这代码格式……几十行还可以忍,一两百行已经是上限了……恶意代码动不动几千行,看着脑袋都大啊……本着磨刀不误砍柴工的思想,果断写了一个自动格式化脚本(by Python),贴出来和大家分享下。

说明:对 AutoIt 了解不多,仅针对我目前见过的脚本,做一个比较粗陋而暴力的格式化工作而已

#!/usr/bin/env python2.7
#-*- coding: utf-8 -*-
  
_AU3 = ';./sample.au3';
_AU3_OUT = ';./format.au3';
_INDENT = ';'; * 4
  
def au3formater(line, indent):
  line = line.strip().lower()
   
  next_indent = indent
  if (line.startswith(';end';) or
    line.startswith(';until';) or
    line in (';next';, ';wend';)):
    indent -= 1
    next_indent -= 1
  elif line.startswith(';if';) and line.endswith(';then';):
    next_indent += 1
  elif (line.startswith(';func';) or
     line.startswith(';for';) or
     line.startswith(';select';) or
     line.startswith(';switch';) or
     line.startswith(';while';) or
     line == ';do';):
    next_indent += 1
  elif line.startswith(';else';) or line.startswith(';case';):
    indent -= 1
  new_line = _INDENT * indent + line
   
  return new_line, next_indent
  
def main():
  with open(_AU3, ';r';) as fp:
    with open(_AU3_OUT, ';w';) as fpw:
      indent = 0
      line = fp.readline()
      while line:
        new_line, indent = au3formater(line, indent)
        fpw.write(';%s\n'; % new_line)
        line = fp.readline()
  
if __name__ == ';__main__';:
  main()

格式化完成后,看着就舒服多了(不确定是否是我个人的强迫症而已……):
简单分析 AutoIt 脚本的反编译和代码格式化问题

当然,即便是看着舒服些了,即便是明文脚本,几千行的代码看着也是很忧桑的

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1643字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中