Example 1:
Let's take a look at the following picture (click for larger version):
Picture를 봐.(큰 version을 위해 click 해)
As you can see, the script is using arguments.callee.toString() function which differs between Internet Explorer
and Mozilla.
네가 볼때, script는 arguemnts.callee.toString() function을 사용한다. 이것은 Internet Explorer와 Mozilla 사이에 다르
다.
As almost all the script debugging or decoding tools are based on Mozilla's Spider Monkey engine, this function
is used in malicious scripts exactly to make the reversing harder.
거의 대부분의 script debugging 이나 decoding tools은 Mozilla's Spider Monkey engine이 base다. 이 function은
malicious scripts에서 reversing을 어렵게 하기 위해 사용된다.
In the example script on the screenshot, the script is done from two parts, so you will need to copy/paste both
parts to Decode tab(see next picture), as Send To Decoder would send just the first part of the script.
이 예제 script screenshot에서, 이 script는 2부분에서 완료됐다. 우리는 양쪽 parts를 Decode tab으로 copy/paste가
필요하다.(다음 사진을 보자), Send To Decoder는 script의 첫번째 부분을 보낼 것이다.
Malzilla Tutorial2
2012년 4월 14일 토요일
오후 6:36
scan.bit 오타 페이지 1
Now, select the function containing arguments.callee.toString() functions and take a look at the label Selection
length (see next picture).
이제, 선택된 function은 arguments.callee.toString() function을 포함하고 있다. 그리고 label Selection length를
봐.(다음 사진을 봐)
The length function is often used because it is a way to check if the eval() function is replaced with e.g.
document.write().
Length function은 자주 사용된다. 왜냐하면 Eval() functin을 document.write()로 교체하는 것을 check하는 방법이다.
scan.bit 오타 페이지 2
Replace arguments.callee.toString().length function with the value from Selection length:
Selection length에서 Arguments.callee.toString().length function을 이 값으로 바꿔.
scan.bit 오타 페이지 3
Clicking on Run script will give us another scrambled output.
Run script를 click하는 것은 우리에게 뒤죽박죽 된 output을 줄 것이다.
If you take a look at the 2nd part of the original script, and take a look at the result,
네가 original script의 2번째 부분을 봐. 그리고 result를 봐.
you will see that both of them are calls to the function H(), which is defined in the first part of the script(the part
containing arguments.callee).
너는 2개가 H() function으로 불려지는 것을 볼 수 있을 것이다. 그것은 script의 첫번째 부분에서 정의됐
다.(arguments.callee를 포함하고 있다)
Copy the scrambled result and paste it to upper box replacing the 2nd part of the original script(see next picture,
selected part).
뒤죽박죽 된 결과를 copy 하고 upper box를 original script의 2번째 부분에 붙여 넣어.
Clicking on Run script one more time, and we got what we searched for.
한 번 더 Run script를 click 해, 우리가 찾았던 것을 얻었다.
scan.bit 오타 페이지 4
Example 2:
Sometimes you will still find sites using VBScript to infect visitor's PC.
가끔 VBScript를 사용하여 방문자 PC를 감염시키는 site 찾기를 원할 것이다.
As we can't decode it automatically, we can try to translate the decoding routine to other programing language,
or sometimes we try the Misc decoders in Malzilla.
우리는 자동으로 해석할 수 없을 때, 우리는 다른 programing language로 decoding routine을 번역할 수 있다. 또한
가끔 우리는 Malzilla의 Misc decoder는 사용한다.
In the next example you can see a data sequence which is obviously a Unicode sequence,
다음 예제에서 우리는 data sequence를 볼 수 있다. 이것은 명확히 Unicode 순서다.
but this one can't be decoded with Misc decoders > Decode UCS2 in Malzilla because of missing delimiters
between the members in the sequence.
그러나 이것은 Malzilla에서 Misc decoders > Decode UCS2로 해석될 수 없다. 왜냐하면 이 순서의 Member간 구분
자가 없어서다.
scan.bit 오타 페이지 5
One can either insert the delimiters (usually %u), or… in Malzilla 0.92 you will find a Pascal interpreter, so you can
write a short routine which will insert missing delimiters:
한 가지 방법은 구분자를 넣거나(보통 %u) Malzilla 0.92에서 Pascal interpreter를 찾을 수 있다. 그래서 너는 잃어버
린 구분자를 넣을 수 있는 short routine을 작성할 수 있다.
scan.bit 오타 페이지 6
Now you can decode the sequence by using Misc decoders > Decode UCS2.
이제 Misc decoders > Decode UCS2에 의해 순서를 decode 할 수 있다.
scan.bit 오타 페이지 7
So, that was all for this time.
그래서, 이 시간을 위해 모든 것이 있었다.
More examples of Malzilla's usage will follow as soon as I get some time to write them.
이것을 작성하는 시간을 얻을 때, 많은 Malzilla's usage은 따라올 수 있다.
scan.bit 오타 페이지 8

More Related Content

PDF
Secrets of the JavaScript Ninja - Chapter 3. Functions are Fundamental
PDF
Start IoT with JavaScript - 6.함수
PPTX
javascript01
PDF
JavaScript Promises
PPTX
Refelction의 개념과 RTTR 라이브러리
PPTX
Javascript 함수(function) 개념, 호출패턴, this, prototype, scope
PPTX
Javascript introduction, dynamic data type, operator
PPTX
Effective c++chapter8
Secrets of the JavaScript Ninja - Chapter 3. Functions are Fundamental
Start IoT with JavaScript - 6.함수
javascript01
JavaScript Promises
Refelction의 개념과 RTTR 라이브러리
Javascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript introduction, dynamic data type, operator
Effective c++chapter8

What's hot (20)

PPTX
Effective c++chapter1 and2
PPTX
Effective c++chapter4
PDF
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive
PPTX
Promise 패턴 공부
PPTX
Effective c++(chapter 5,6)
PPT
호이스팅, 클로저, IIFE
PDF
C++11 1
PPTX
C#을 사용한 빠른 툴 개발
PPTX
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
PDF
[Swift] Protocol (1/2)
PDF
1.Startup JavaScript - 프로그래밍 기초
PDF
Google coding guide
PDF
7가지 동시성 모델 4장
PPTX
Effective c++chapter3
PDF
Modern C++ 프로그래머를 위한 CPP11/14 핵심
PPTX
More Effective C++ 4주차
PPTX
PSR - Code Convention
PDF
ES6 for Node.js Study 2주차
PDF
프로그래밍 대회: C++11 이야기
PDF
연산자 오버로딩
Effective c++chapter1 and2
Effective c++chapter4
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive
Promise 패턴 공부
Effective c++(chapter 5,6)
호이스팅, 클로저, IIFE
C++11 1
C#을 사용한 빠른 툴 개발
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
[Swift] Protocol (1/2)
1.Startup JavaScript - 프로그래밍 기초
Google coding guide
7가지 동시성 모델 4장
Effective c++chapter3
Modern C++ 프로그래머를 위한 CPP11/14 핵심
More Effective C++ 4주차
PSR - Code Convention
ES6 for Node.js Study 2주차
프로그래밍 대회: C++11 이야기
연산자 오버로딩
Ad

Viewers also liked (16)

PDF
09.explaining the visual basic concept, introduction to smart check and confi...
PDF
05.comparing on changes in cond jumps, animate overin, breakpoints hangul
PDF
10.continued reversing techniques in vb, use of decompilers and a basic anti ...
PDF
01.olly assembler patching a basic reverseme hangul
DOC
Yogesh_Kadam
PDF
브리핑 2013년 4월 1주차 금융정보탈취 by re4lfl0w
PPTX
Who I Am
PDF
19.debugger detected and anti anti-techniques hangul
PDF
11.intermediate patching using olly's pane window hanul
PPTX
Journal Club for prosthodontics
PDF
Tutorial bpocf
PPTX
Development of tongue, Speech & Prosthodontic consideration
PPTX
Tarnish & corrosion in dentistry
PPTX
Blood group
PPTX
Dental Casting alloy
PPTX
Physical properties of dental materials by Dr Mujtaba Ashraf
09.explaining the visual basic concept, introduction to smart check and confi...
05.comparing on changes in cond jumps, animate overin, breakpoints hangul
10.continued reversing techniques in vb, use of decompilers and a basic anti ...
01.olly assembler patching a basic reverseme hangul
Yogesh_Kadam
브리핑 2013년 4월 1주차 금융정보탈취 by re4lfl0w
Who I Am
19.debugger detected and anti anti-techniques hangul
11.intermediate patching using olly's pane window hanul
Journal Club for prosthodontics
Tutorial bpocf
Development of tongue, Speech & Prosthodontic consideration
Tarnish & corrosion in dentistry
Blood group
Dental Casting alloy
Physical properties of dental materials by Dr Mujtaba Ashraf
Ad

Similar to Malzilla tutorial2 (20)

PDF
Malzilla tutorial1
PPTX
파이썬 문자열 이해하기
PPTX
파이썬 문자열 이해하기
PDF
Javascript개발자의 눈으로 python 들여다보기
PPTX
빠르게 활용하는 파이썬3 스터디(ch1~4)
PDF
파이썬2.7 기초 공부한 것 정리
PPTX
Python - Module
PPTX
문과생 대상 파이썬을 활용한 데이터 분석 강의
PPTX
파이썬 크롤링 모듈
PPTX
파이썬 함수 이해하기
PDF
파이썬으로 익히는 딥러닝
PPTX
파이선 실전공략-1
PPTX
파이썬 파일처리 이해하기
PDF
04.basic+aesthetic patching hangul
PPT
programming with GDB
PPTX
Ruby 스터디
PPTX
Jupyter notebook 이해하기
PPTX
파이썬정리 20160130
PPT
Python3 brief summary
PDF
파이썬 파일처리 및 문자열 처리
Malzilla tutorial1
파이썬 문자열 이해하기
파이썬 문자열 이해하기
Javascript개발자의 눈으로 python 들여다보기
빠르게 활용하는 파이썬3 스터디(ch1~4)
파이썬2.7 기초 공부한 것 정리
Python - Module
문과생 대상 파이썬을 활용한 데이터 분석 강의
파이썬 크롤링 모듈
파이썬 함수 이해하기
파이썬으로 익히는 딥러닝
파이선 실전공략-1
파이썬 파일처리 이해하기
04.basic+aesthetic patching hangul
programming with GDB
Ruby 스터디
Jupyter notebook 이해하기
파이썬정리 20160130
Python3 brief summary
파이썬 파일처리 및 문자열 처리

Malzilla tutorial2

  • 1. Example 1: Let's take a look at the following picture (click for larger version): Picture를 봐.(큰 version을 위해 click 해) As you can see, the script is using arguments.callee.toString() function which differs between Internet Explorer and Mozilla. 네가 볼때, script는 arguemnts.callee.toString() function을 사용한다. 이것은 Internet Explorer와 Mozilla 사이에 다르 다. As almost all the script debugging or decoding tools are based on Mozilla's Spider Monkey engine, this function is used in malicious scripts exactly to make the reversing harder. 거의 대부분의 script debugging 이나 decoding tools은 Mozilla's Spider Monkey engine이 base다. 이 function은 malicious scripts에서 reversing을 어렵게 하기 위해 사용된다. In the example script on the screenshot, the script is done from two parts, so you will need to copy/paste both parts to Decode tab(see next picture), as Send To Decoder would send just the first part of the script. 이 예제 script screenshot에서, 이 script는 2부분에서 완료됐다. 우리는 양쪽 parts를 Decode tab으로 copy/paste가 필요하다.(다음 사진을 보자), Send To Decoder는 script의 첫번째 부분을 보낼 것이다. Malzilla Tutorial2 2012년 4월 14일 토요일 오후 6:36 scan.bit 오타 페이지 1
  • 2. Now, select the function containing arguments.callee.toString() functions and take a look at the label Selection length (see next picture). 이제, 선택된 function은 arguments.callee.toString() function을 포함하고 있다. 그리고 label Selection length를 봐.(다음 사진을 봐) The length function is often used because it is a way to check if the eval() function is replaced with e.g. document.write(). Length function은 자주 사용된다. 왜냐하면 Eval() functin을 document.write()로 교체하는 것을 check하는 방법이다. scan.bit 오타 페이지 2
  • 3. Replace arguments.callee.toString().length function with the value from Selection length: Selection length에서 Arguments.callee.toString().length function을 이 값으로 바꿔. scan.bit 오타 페이지 3
  • 4. Clicking on Run script will give us another scrambled output. Run script를 click하는 것은 우리에게 뒤죽박죽 된 output을 줄 것이다. If you take a look at the 2nd part of the original script, and take a look at the result, 네가 original script의 2번째 부분을 봐. 그리고 result를 봐. you will see that both of them are calls to the function H(), which is defined in the first part of the script(the part containing arguments.callee). 너는 2개가 H() function으로 불려지는 것을 볼 수 있을 것이다. 그것은 script의 첫번째 부분에서 정의됐 다.(arguments.callee를 포함하고 있다) Copy the scrambled result and paste it to upper box replacing the 2nd part of the original script(see next picture, selected part). 뒤죽박죽 된 결과를 copy 하고 upper box를 original script의 2번째 부분에 붙여 넣어. Clicking on Run script one more time, and we got what we searched for. 한 번 더 Run script를 click 해, 우리가 찾았던 것을 얻었다. scan.bit 오타 페이지 4
  • 5. Example 2: Sometimes you will still find sites using VBScript to infect visitor's PC. 가끔 VBScript를 사용하여 방문자 PC를 감염시키는 site 찾기를 원할 것이다. As we can't decode it automatically, we can try to translate the decoding routine to other programing language, or sometimes we try the Misc decoders in Malzilla. 우리는 자동으로 해석할 수 없을 때, 우리는 다른 programing language로 decoding routine을 번역할 수 있다. 또한 가끔 우리는 Malzilla의 Misc decoder는 사용한다. In the next example you can see a data sequence which is obviously a Unicode sequence, 다음 예제에서 우리는 data sequence를 볼 수 있다. 이것은 명확히 Unicode 순서다. but this one can't be decoded with Misc decoders > Decode UCS2 in Malzilla because of missing delimiters between the members in the sequence. 그러나 이것은 Malzilla에서 Misc decoders > Decode UCS2로 해석될 수 없다. 왜냐하면 이 순서의 Member간 구분 자가 없어서다. scan.bit 오타 페이지 5
  • 6. One can either insert the delimiters (usually %u), or… in Malzilla 0.92 you will find a Pascal interpreter, so you can write a short routine which will insert missing delimiters: 한 가지 방법은 구분자를 넣거나(보통 %u) Malzilla 0.92에서 Pascal interpreter를 찾을 수 있다. 그래서 너는 잃어버 린 구분자를 넣을 수 있는 short routine을 작성할 수 있다. scan.bit 오타 페이지 6
  • 7. Now you can decode the sequence by using Misc decoders > Decode UCS2. 이제 Misc decoders > Decode UCS2에 의해 순서를 decode 할 수 있다. scan.bit 오타 페이지 7
  • 8. So, that was all for this time. 그래서, 이 시간을 위해 모든 것이 있었다. More examples of Malzilla's usage will follow as soon as I get some time to write them. 이것을 작성하는 시간을 얻을 때, 많은 Malzilla's usage은 따라올 수 있다. scan.bit 오타 페이지 8