AutoIt 스 크 립 트 의 역 컴 파일 과 코드 포맷 문제 분석
3238 단어 AutoIt 역 컴 파일AutoIt 포맷
AutoIt 는 사용자 가 au3 의 명문 스 크 립 트 를 exe 파일 이나 a3x 파일 로 컴 파일 할 수 있 도록 합 니 다.exe 파일 은 군말 할 필요 가 없습니다.바로 우리 가 평소에 알 고 있 는 PE 파일 입 니 다.그러나 exe 파일 로 컴 파일 되면 AutoIt 스 크 립 트 가 악성 프로그램 분야 에서 의 장점(알 고 있 는 것 은 자 연 스 럽 게 알 고 자세히 말 하지 않 음)을 잃 기 때문에 현재 캡 처 된 대부분의 악성 샘플 은 스 크 립 트 를 a3x 파일 로 컴 파일 합 니 다.
인터넷 에 비교적 많은 것 은 Exe2Au 3 의 반 컴 파일 도구(초기 버 전의 AutoIt 는 이 도 구 를 가지 고 있 었 는데 나중에 가지 고 오지 않 았 다 고 합 니 다)입 니 다.그러나 몇 개 를 내 렸 을 때 모두 강직 합 니 다.-정말 Exe 파일 을 역 컴 파일 할 수 밖 에 없 었 고 a3x 파일 에 힘 이 없 었 습 니 다.마지막 으로 Autoit 3 Decompiler GUI 라 는 도 구 를 찾 았 습 니 다(https://www.jb51.net/softs/390596.html).
이 도 구 를 사용 하면 a3x 파일 을 au3 의 명문 스 크 립 트 로 쉽게 컴 파일 할 수 있 습 니 다.BUT―왜 모든 일 에 BUT 가 있 습 니까?-역 컴 파일 된 대본 이 좀 걱정 스 럽 습 니 다....................................................
이 코드 형식 으로.....................................................................................
설명: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
'; % new_line)
line = fp.readline()
if __name__ == ';__main__';:
main()
포맷 이 끝나 면 보기 가 훨씬 편 해 집 니 다.물론 보기 편 하 더 라 도 명문 스 크 립 트 라 도 수천 줄 의 코드 가 보기 에는 매우 걱정스럽다.