외부 인터넷과 연결되어 있지 않으면 Adobe Flash 다운로더로 설치 할 수 없습니다.

또 Flash 파일을 분석하기 위해서 과거 버전이 필요한 경우가 있습니다.



다음 사이트에서 다운로드 하면 됩니다.


https://www.adobe.com/support/flashplayer/debug_downloads.html







저작자 표시
신고
Posted by mstoned7

댓글을 달아 주세요


IDA 디컴파일러(F5)로 디컴파일 하다보면 가끔 스택 문제도 실패하는 경우가 있습니다.


'Decompilation failure: xxxxxx: positive sp value has been found"



오류가 발생한 주소 앞 (여기서는 0x401018)으로 가서 [Alt + K] 로 Chage SP value 를 실행합니다.





이 값을 Current SP value 와 맞춰주면 됩니다.



다시 F5로 디컴파일 해보면 디컴파일된 내용이 나옵니다.




저작자 표시
신고
Posted by mstoned7

댓글을 달아 주세요

Serenia 는 1982년 만들어진 어드벤쳐 게임입니다.

이때 어드벤쳐 게임은 상당수 텍스트인데 간단하지만 그림도 나오는 어드벤쳐 게임입니다.




IBM 버전이 만들어 졌을 때 아직 MS-DOS(IBM에서는 PC-DOS)가 완전히 시장을 차지 않았을테고 도스 게임 중에는 도스(!)를 직접 탑재한 게임도 있었습니다.


이 게임도 자체 부팅 기능이 있습니다.


부트 이미지네요.

일반적인 부트 이미지는 아닙니다.



FAT 영역입니다.



ROOT 입니다.

여러 파일이 보이네요. 어셈블리로 게임 만들었을까요 ?



보통 DOSBox에서는 이런 디스크 이미지는 별도 방법으로 실행해야 합니다.


하지만 제가 구한 게임 버전은 그냥 SERENIA.COM만 실행하면 됩니다.


원리가 어떻게 될까요 ?


한번 분석해 봤습니다.

(전부다 본건 아니고 기본 구조만 파악했습니다.)


게임은 GAME.DAT, 저장은 SAVE.DAT로 이뤄지며 게임에서 INT 83h를 통해 기본 입출력 하는 걸로 보이는데 이걸 디스크 이미지 위치에 맞게 처리해주는 역할을 합니다.




;******************************************************************

;

; DOS Driver for [Adventure in Serenia] disk image

;

; - written by Mok <mokmok@usa.net>

; - analyzed by M-Stoned <mstoned7@gmail.com>

;

;******************************************************************


; COM file

; Entry point = 0x100



0C38:0100 8CC8          MOV AX,CS                              

0C38:0102 BBF002        MOV BX,02F0                            ;

0C38:0105 C1EB04        SHR     BX,4                               ; 2F0 / 16 (2^4) = 2F                  

0C38:0108 03C3          ADD AX,BX                              ; CS + 2F

0C38:010A 3D0020        CMP AX,2000                            ; check memory 

0C38:010D 760A          JBE 0119                               ; 

0C38:010F BA6302        MOV DX,0263                            ; Sorry, the DOS memory required by the game is not free.$'

0C38:0112 B409          MOV AH,09                              

0C38:0114 CD21          INT 21                                 

0C38:0116 E92A01        JMP 0243                               


0C38:0119 B80020        MOV AX,2000                            

0C38:011C A34802        MOV [0248],AX                          

0C38:011F BA5302        MOV DX,0253                            ; SAVE.DAT

0C38:0122 B8023D        MOV AX,3D02                            ; open SAVE.DAT

0C38:0125 CD21          INT 21                                 

0C38:0127 7303          JNB 012C                               

0C38:0129 E91701        JMP 0243                               

0C38:012C A36102        MOV [0261],AX                          ; Handle 1


0C38:012F BA4A02        MOV DX,024A                            ; GAME.DAT

0C38:0132 B8003D        MOV AX,3D00                            

0C38:0135 CD21          INT 21                                 

0C38:0137 7303          JNB 013C                               

0C38:0139 E90701        JMP 0243                               


0C38:013C A35D02        MOV [025D],AX                          ; Handle2 : GAME.DAT

0C38:013F A35F02        MOV [025F],AX                          ; Handle2 : GAME.DAT 

0C38:0142 8BD8          MOV BX,AX                              

0C38:0144 8E1E4802      MOV DS,[0248]                          ; DS = [2000]

0C38:0148 BA007C        MOV DX,7C00                            ; 2000:7C00

0C38:014B B90002        MOV CX,0200                            ; 512 bytes

0C38:014E B43F          MOV AH,3F                              ; read Boot record from Disk Image

0C38:0150 CD21          INT 21                                 

0C38:0152 0E            PUSH CS                                 

0C38:0153 1F            POP DS                                 

0C38:0154 B88335        MOV AX,3583                            ; Get Original Int 83h

0C38:0157 CD21          INT 21                                 

0C38:0159 891E7101      MOV [0171],BX                          ; save original Int 83h Address

0C38:015D 8C067301      MOV [0173],ES                          ; 

0C38:0161 B88325        MOV AX,2583                            ; Hook Int 83h

0C38:0164 BA7501        MOV DX,0175                            

0C38:0167 CD21          INT 21                                 

0C38:0169 FF364802      PUSH [0248]                             

0C38:016D 68007C        PUSH    7C00                           

0C38:0170 CB            RETF           ; JMP 2000:7C00 --> reboot from disk image                       


0C38:0171 0000          ADD [BX+SI],AL                         ; Original Int 83h

0C38:0173 0000          ADD [BX+SI],AL                         ; Original Int 83h


;*******************************************************************

; New Int 83h

;*******************************************************************


0C38:0175 FB            STI                                   

0C38:0176 84E4          TEST AH,AH                              ;

0C38:0178 7418          JZ 0192                               

0C38:017A 80FC02        CMP AH,02                              ; read ?

0C38:017D 7436          JZ 01B5                               

0C38:017F 80FC03        CMP AH,03                              ; write ?

0C38:0182 7503          JNZ 0187                               

0C38:0184 E98200        JMP 0209                               

0C38:0187 80FCAA        CMP AH,AA                              ; ??

0C38:018A 7409          JZ 0195                               

0C38:018C 80FCBB        CMP AH,BB                              ; ??

0C38:018F 7414          JZ 01A5                               

0C38:0191 F9            STC                                   

0C38:0192 CA0200        RETF 0002                               ;


; for AA function 

; disk changing ?

0C38:0195 2E            CS:                                   

0C38:0196 A16102        MOV AX,[0261]                          ; Handle1 : SAVE.DAT

0C38:0199 2E            CS:                                   

0C38:019A A35D02        MOV [025D],AX                          ; Handle2 : GAME.DAT

0C38:019D 2E            CS:                                   

0C38:019E C6065C0201    MOV BYTE PTR [025C],01                 ; 

0C38:01A3 EBED          JMP 0192                               


; for BB function

; ???????????????

0C38:01A5 2E            CS:                                   

0C38:01A6 A15F02        MOV AX,[025F]                          ; Handle2 : GAME.DAT 

0C38:01A9 2E            CS:                                   

0C38:01AA A35D02        MOV [025D],AX                          ; Handle2 : GAME.DAT

0C38:01AD 2E            CS:                                   

0C38:01AE C6065C0200    MOV BYTE PTR [025C],00                 

0C38:01B3 EBDD          JMP 0192                               


; for 2 function

0C38:01B5 60            PUSHA

0C38:01B6 1E            PUSH DS                                 

0C38:01B7 06            PUSH ES                                 

0C38:01B8 1F            POP DS                                 

0C38:01B9 2E            CS:                                   

0C38:01BA 803E5C0201    CMP BYTE PTR [025C],01                 ; SAVE.DAT

0C38:01BF 7412          JZ 01D3                               

0C38:01C1 80FD01        CMP CH,01                              ; track 01 ?

0C38:01C4 720D          JB 01D3                               

0C38:01C6 80FD0A        CMP CH,0A                              ; track 0A ?

0C38:01C9 7708          JA 01D3                               

0C38:01CB FEC9          DEC CL                                 ; caculate disk address

0C38:01CD 02C9          ADD CL,CL                              

0C38:01CF 02C0          ADD AL,AL                              

0C38:01D1 FEC1          INC CL                                 ; 


0C38:01D3 50            PUSH AX                                 

0C38:01D4 53            PUSH BX                                 

0C38:01D5 8AC5          MOV AL,CH                              

0C38:01D7 B408          MOV AH,08                              

0C38:01D9 F6E4          MUL AH                                 ; * 8

0C38:01DB 32ED          XOR CH,CH                              ; CH = 0

0C38:01DD 8BD8          MOV BX,AX                              ; 

0C38:01DF FEC9          DEC CL                                 ;

0C38:01E1 03D9          ADD BX,CX                              

0C38:01E3 B80002        MOV AX,0200                   ;        

0C38:01E6 F7E3          MUL BX                                 ; * 200 (disk sector size)

0C38:01E8 8BCA          MOV CX,DX                              

0C38:01EA 8BD0          MOV DX,AX                              

0C38:01EC 2E            CS:                                   

0C38:01ED 8B1E5D02      MOV BX,[025D]                          ; Handle2 : GAME.DAT

0C38:01F1 B80042        MOV AX,4200                            ; read disk image

0C38:01F4 CD21          INT 21                                 

0C38:01F6 5A            POP DX                                 

0C38:01F7 59            POP CX                                 

0C38:01F8 32ED          XOR CH,CH                              

0C38:01FA C1E109        SHL     CX,9

                            

0C38:01FD B43F          MOV AH,3F                              ; read data from file

0C38:01FF CD21          INT 21                                 

0C38:0201 1F            POP DS                                 

0C38:0202 61            DB 61                                 

0C38:0203 32E4          XOR AH,AH                              

0C38:0205 F8            CLC                                   

0C38:0206 CA0200        RETF 0002               


;

; for 03 function 

;

                

0C38:0209 60            PUSHA

0C38:020A 1E            PUSH DS                                 

0C38:020B 06            PUSH ES                                 

0C38:020C 1F            POP DS                                 

0C38:020D 50            PUSH AX                                 

0C38:020E 53            PUSH BX                                 

0C38:020F 8AC5          MOV AL,CH                              

0C38:0211 B408          MOV AH,08                              

0C38:0213 F6E4          MUL AH                                 

0C38:0215 32ED          XOR CH,CH                              

0C38:0217 8BD8          MOV BX,AX                              

0C38:0219 FEC9          DEC CL                                 

0C38:021B 03D9          ADD BX,CX                              

0C38:021D B80002        MOV AX,0200                            

0C38:0220 F7E3          MUL BX                                 

0C38:0222 8BCA          MOV CX,DX                              

0C38:0224 8BD0          MOV DX,AX                              

0C38:0226 2E            CS:                                   

0C38:0227 8B1E6102      MOV BX,[0261]                          ; Handle1 : SAVE.DAT

0C38:022B B80042        MOV AX,4200                            

0C38:022E CD21          INT 21                                 

0C38:0230 5A            POP DX                                 

0C38:0231 59            POP CX                                 

0C38:0232 32ED          XOR CH,CH                              

0C38:0234 C1            DB C1                                 

0C38:0235 E109          LOOPZ 0240                               

0C38:0237 B440          MOV AH,40                              ; Write

0C38:0239 CD21          INT 21                                 

0C38:023B 1F            POP DS                                 

0C38:023C 61            DB 61                                 

0C38:023D 32E4          XOR AH,AH                              

0C38:023F F8            CLC                                   

0C38:0240 CA0200        RETF 0002                               


0C38:0243 B8014C        MOV AX,4C01                            ; Terminate program

0C38:0246 CD21          INT 21                                 


0C38:0248 0000          ADD [BX+SI],AL                         

0C38:024A 47            db      'GAME.DAT'                                

0253 53                 db      'SAVE.DAT'                               

0C38:025C 00            check ????                        

0C38:025D 0000          Handle2 : GAME.DAT

0C38:025F 0000          Handle2 : GAME.DAT                       

0C38:0261 0000          Handle1 : SAVE.DAT

0C38:0263 53            db      'Sorry, the DOS memory required by the game is not free.$'

     029B 0D0A4164      db      'Adventure in Serenia by Sierra/IBM. Dos driver by Mok <mokmok@usa.net>'

 


0C38:0100  8C C8 BB F0 02 C1 EB 04-03 C3 3D 00 20 76 0A BA   ..........=. v..

0C38:0110  63 02 B4 09 CD 21 E9 2A-01 B8 00 20 A3 48 02 BA   c....!.*... .H..

0C38:0120  53 02 B8 02 3D CD 21 73-03 E9 17 01 A3 61 02 BA   S...=.!s.....a..

0C38:0130  4A 02 B8 00 3D CD 21 73-03 E9 07 01 A3 5D 02 A3   J...=.!s.....]..

0C38:0140  5F 02 8B D8 8E 1E 48 02-BA 00 7C B9 00 02 B4 3F   _.....H...|....?

0C38:0150  CD 21 0E 1F B8 83 35 CD-21 89 1E 71 01 8C 06 73   .!....5.!..q...s

0C38:0160  01 B8 83 25 BA 75 01 CD-21 FF 36 48 02 68 00 7C   ...%.u..!.6H.h.|

0C38:0170  CB 00 00 00 00 FB 84 E4-74 18 80 FC 02 74 36 80   ........t....t6.

0C38:0180  FC 03 75 03 E9 82 00 80-FC AA 74 09 80 FC BB 74   ..u.......t....t

0C38:0190  14 F9 CA 02 00 2E A1 61-02 2E A3 5D 02 2E C6 06   .......a...]....

0C38:01A0  5C 02 01 EB ED 2E A1 5F-02 2E A3 5D 02 2E C6 06   \......_...]....

0C38:01B0  5C 02 00 EB DD 60 1E 06-1F 2E 80 3E 5C 02 01 74   \....`.....>\..t

0C38:01C0  12 80 FD 01 72 0D 80 FD-0A 77 08 FE C9 02 C9 02   ....r....w......

0C38:01D0  C0 FE C1 50 53 8A C5 B4-08 F6 E4 32 ED 8B D8 FE   ...PS......2....

0C38:01E0  C9 03 D9 B8 00 02 F7 E3-8B CA 8B D0 2E 8B 1E 5D   ...............]

0C38:01F0  02 B8 00 42 CD 21 5A 59-32 ED C1 E1 09 B4 3F CD   ...B.!ZY2.....?.

0C38:0200  21 1F 61 32 E4 F8 CA 02-00 60 1E 06 1F 50 53 8A   !.a2.....`...PS.

0C38:0210  C5 B4 08 F6 E4 32 ED 8B-D8 FE C9 03 D9 B8 00 02   .....2..........

0C38:0220  F7 E3 8B CA 8B D0 2E 8B-1E 61 02 B8 00 42 CD 21   .........a...B.!

0C38:0230  5A 59 32 ED C1 E1 09 B4-40 CD 21 1F 61 32 E4 F8   ZY2.....@.!.a2..

0C38:0240  CA 02 00 B8 01 4C CD 21-00 00 47 41 4D 45 2E 44   .....L.!..GAME.D

0C38:0250  41 54 00 53 41 56 45 2E-44 41 54 00 00 00 00 00   AT.SAVE.DAT.....

0C38:0260  00 00 00 53 6F 72 72 79-2C 20 74 68 65 20 44 4F   ...Sorry, the DO

0C38:0270  53 20 6D 65 6D 6F 72 79-20 72 65 71 75 69 72 65   S memory require

0C38:0280  64 20 62 79 20 74 68 65-20 67 61 6D 65 20 69 73   d by the game is

0C38:0290  20 6E 6F 74 20 66 72 65-65 2E 24 0D 0A 41 64 76    not free.$..Adv

0C38:02A0  65 6E 74 75 72 65 20 69-6E 20 53 65 72 65 6E 69   enture in Sereni

0C38:02B0  61 20 62 79 20 53 69 65-72 72 61 2F 49 42 4D 2E   a by Sierra/IBM.

0C38:02C0  20 44 6F 73 20 64 72 69-76 65 72 20 62 79 20 4D    Dos driver by M

0C38:02D0  6F 6B 20 3C 6D 6F 6B 6D-6F 6B 40 75 73 61 2E 6E   ok <mokmok@usa.n

0C38:02E0  65 74 3E 2E 00 77 04 2C-30 F8 C3 F9 C3 50 53 52   et>..w.,0....PSR

0C38:02F0  57 26 8B 7F 06 26 8A 05-0A C0 75 04 B4 FF EB 4C   W&...&....u....L


------



예전에 본 건데 이제 올립니다.

오랫만에 DEBUG으로 도스 코드를 봅아봤네요.

요즘은 윈도우하고 OS X 파일만 보다보니...

옛날 생각나네요.




신고
Posted by mstoned7

댓글을 달아 주세요

 

인터넷을 검색해봐도 IDA를 이용한 원격디버깅 방법을 자세히 설명한게 없어 한번 작성해 봤습니다.

 

도움되었으면 합니다.

 

----------------

 

IDA는 원격 디버깅 기능으로 네트워크가 연결될 경우 다른 OS의 파일을 디버깅 할 수 있다. 하지만, 테스트 결과 Windows IDAMac 실행 파일을 Windows IDA로 디버깅 할 경우 오류가 잦아 Mac IDA로 디버깅 하라는 조언을 받았다. 따라서, Mac의 가상 머신(여기서는 VMware Fusion 이용)OS X을 설치하고 원격 디버깅하는 방법을 선택했다.

 

실제 Mac

 

1.     실제 Mac 시스템에 IDA Pro 설치

 

원격 Mac (가상머신)

 

원격 디버깅 대상이 되는 시스템 (여기서는 VMware Fusion OS X 10.7 Lion 설치)에 몇 가지 설정이 필요하다.

 

1.     mac_server, mac_serverx64 복사

 

본 테스트에서는 [사용자]\Util mac_server mac_serverx64를 복사했다.

해당 파일은 설치된 IDA에서 찾을 수 있다.


 

2.     권한 변경

 

OS X에서 원격 디버깅을 위해 권한 설정이 필요하다.

 

 

  

 

chgrp procmod mac_server chmod g+s mac_server으로 권한을 변경한다. 이때 관리자 권한이 필요하므로 sudo 명령 등으로 실행 한다.

 

 

 

이 과정은 한번만 하면 된다.

 

3.     mac_server로 포트 열기

 

관리자 모드에서 mac_server를 실행해(sudo ./mac_server)  외부에서 접속할 수 있게 포트를 열어둔다. 분석 대상 파일이 64 비트일 경우 mac_serverx64를 실행한다. 포트가 열릴 때까지 보통 몇 초 정도 걸린다.

 

 

 

원격 디버깅 방법

 

IDA가 설치된 실제 Mac 시스템에서 원격 디버깅 대상 시스템에 접속한다.

 

1.     IDA‘Debugger’ 메뉴에서 ‘Run’을 선택해 디버깅 대상 파일 설정

 

포트가 제대로 열렸을 경우 실제 Mac에 설치된 IDA에  Debugger Run Attach 메뉴가 활성화된다. 원격 대상 시스템이 OS X이므로 ‘Remote Mac OS X debugger’를 선택한다.

 

 

 

Application에 디버깅 대상 파일을 지정하는데 이때 디렉토리 위치까지 지정해 줘야 한다.만약 파일이름만 지정한 경우 mac_server가 실행된 디렉토리에서 파일을 찾는다.

 

 

 

2.     제대로 연결되면 디버깅 가능

 

이제부터 본인의 디버깅 능력에 달려있다.

 

 

 

 

주의 사항

 

1.     디버깅 대상 파일에 맞는 IDA 버전을 이용

 

32 비트 실행 파일은 mac_server 32비트 IDA 64 비트 파일은 mac_serverx64 64비트 IDA를 실행해야 한다.

 

만약 분석 대상이 64비트인데 mac_server를 실행 후 원격 디버깅하면 파일 종류가 맞지 않아 ‘Warning: bad file or could not find a member with matching cpu type

Error: oops! Internal error 618’ 등과 같은 오류가 발생한다.

 

 

 

 

 

 

참고자료

[1] http://www.hex-rays.com/products/ida/debugger/mac/index.shtml

신고
Posted by mstoned7

댓글을 달아 주세요

  1. 2013.02.01 05:12  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  2. Inez 2014.10.13 14:30 신고  댓글주소  수정/삭제  댓글쓰기

    쿨캣님 블로그 글 보고 os x 악성코드 분석 따라해보고 있는데요 :)

    윈도우에 있는 IDA 에서 가상머신에 설치한 맥 app을 디버깅하려 하면
    handle_process_start error 경고창이 뜹니다.
    방화벽 문제인가 싶어 방화벽 양쪽 다 끄고 해도 마찬가지이고요.

    가상머신에 IDA 를 올리고 맥 app을 디버깅해도 같은 결과가 나타납니다.

    도와주세요 ㅠㅠ

  3. Inez 2014.10.16 23:11 신고  댓글주소  수정/삭제  댓글쓰기

    헙... 그렇군요 ㅠㅠ


2011년 6월 6일(화) 새벽 1시쯤 쇼설커머스에 뭔가 올라왔나 싶어 접속했는데 모유명 쇼설커머스 사이트가 너무 지연되더군요. 그래서, 시간도 늦게해서 아침에 일어나서 사이트에 접속했더니 http://www.laaan.cn 사이트가 계속 뜨는 겁니다. 직감적으로 이건 해당 쇼설커머스에 뭔가 일이 생겼다고 느꼈죠.

한번 분석을 진행해 봤습니다.
- 그나저나 네트워크 분석은 잘 안해봐서 많이 지연되었네요. 이걸 전문적으로 하는 사람들은 정말 빨리 찾았을텐데 말이죠.


1. laaan.cn

우선 문제의 laaan.cn 사이트를 검색해 봤습니다.

문의가 꽤 많더군요.
사이트에 가보니 플래쉬 파일 암호화 사이트 같습니다.
(중국어라...)

구글 laaan.cn 검색 결과




2. Wireshark로 패킷을 떴죠.

저는 인터넷을 VMWare에서만 진행하기 때문에 바로 이전 이미지로 리버트하고 패킷을 뜨기 위해 Wireshark를 설치하고 다시 해당 쇼설커머스에 접속해서 패킷을 뜨기로 했습니다.


www.laaan.cn 사이트 주소를 얻어 오는게 보입니다.


3. 접속 순서

사실 처음에 wireshark로만 분석하려 했는데 필터링 명령도 잘 모르고 (흑흑.. 파일 분석가의 비애) 고생 좀 했죠.
그래도 얻어내는  DNS를 보고 사이트 접속 순서를 확인했습니다.



(모쇼설커머스) -> adcounter.emnet.co.kr (통계) -> www.i****.co.kr (음악) -> game***sun (게임) -> 구글, 페이스북, 마이크로소프트 등 -> www.laaan.cn 

우선 구글, 페이스북, 마이크로소프트는 가능성이 낮으므로 다른 사이트부터 보기로 했습니다.
통계 사이트의 경우 로그인이 필요해서 더 이상 확인이 어려웠습니다.


4. 제일 수상한 www.i****.co.kr 사이트 분석  

사이트에 들어가보니 음악 관련 사이트입니다.  쇼설커머스에서 생뚱맞게 음악 사이트로 가는게 이상하죠.
접속하는 주소는 www.i****.co.kr/data/log/footer.html 입니다.

스크립트가 보입니다. (빙고!)

다음 4개 주소로 접속합니다.

- /data/log/naver.html
- 모게임 사이트 /file/fun.htm
- /data/log/flash.html

- 중국 사이트 (광고 조회수 올리기 ?!)


위 주소 중  /data/log/flash.html 에 들어가보니 계속 www.laaan.cn 이 뜹니다.

flash.html을 열어 보면 nb.swf를 다운로드 하는게 보입니다.



value 에 들어가는 90909090 으로 시작되는 코드를 보면 쉘코드(shellcode) 처럼 느껴집니다.

코드를 헥사 값으로 변환해서 디스어셈블해 봅니다.
암호해제 코드 같네요.



다운로드 된 nb.swf 파일을 보면 www.laaan.cn 주소가 보입니다.



나머지 3개 주소는 시간관계상 생략하겠습니다.
일단 뭔가 이상한게 들어가 있는걸 확인했으니까요.


* 결론

아쉽게도.
문제가 된 (해킹된) 사이트가 해당 쇼설커머스인지 연계된 다른 사이트에서 발생한건지는 확인 못했습니다.

오전 11시쯤에 접속해보니 이제 속도 지연 문제도 없고 해결한 걸로 보이더군요.

그리고, 시간 관계상 어떤 의도였는지 끝까지 분석은 못했습니다
(점심 먹고 영화 보러 가야 합니다 ㅋ)

만약 해당 쇼설커머스가 직접 해킹되어 발생한 문제라면 웹사이트 보안에 신경 좀 썼으면 합니다.
이거 불안해서 쇼설커머스 사이트 이용 할 수 있을지..
뭐.. 국내 웹사이트 털리는건 쇼설커머스의 문제는 아니지만요.

ps.

오랫만에 Malzilla 를 사용했는데...
역시 유용합니다.





신고
Posted by mstoned7

댓글을 달아 주세요

  1. 철이 2011.06.06 12:11 신고  댓글주소  수정/삭제  댓글쓰기

    nb.swf v3 진단하나요?

  2. ㅇㅅㅇ 2011.06.06 16:40 신고  댓글주소  수정/삭제  댓글쓰기

    http://game.playwares.com/xe/ 여기도 그러던데 조금만 신경쓰면 막을수 있는데
    자주 들어가는 사이트가 그러니 좀 귀찮네요.

    • mstoned7 2011.06.06 22:09 신고  댓글주소  수정/삭제

      해당 사이트도 시간되면 한번 확인해 보겠습니다. 하지만, 알려줘도 웹관리자들은 근본적인 문제를 해결 안하고 그냥 주소가 지우는 경우가 많죠 -.-;; 법이라도 제정되면 좋겠는데 말이죠.

  3. 하나뿐인지구 2011.06.08 11:00 신고  댓글주소  수정/삭제  댓글쓰기

    민석님 기사 떴네요~
    http://www.asiatoday.co.kr/news/view.asp?seq=488603
    ...
    ps>가상화라 서버os도 보안os라고...있었던 것 같은데...(서울시 창업센터에 있던)
    ...
    어쨌든...기사 잘 봤습니다~ ^^

  4. 카레 2011.06.08 12:30 신고  댓글주소  수정/삭제  댓글쓰기

    왠지 모르게 중국 이상 야릇한 사이트 로 연결해서 부당 요금 청구 할듯한 ..느낌이 들더군요.
    중국 해킹 사이트 도 조금 방문하는데 하는 짓이 러시아 성인 사이트 와 비슷한거 같애요.

콘솔용 MD5 얻는 프로그램입니다.


사용방법은 md5sum *.* 같이...


하위 폴더 검사 등... 어떤것도 지원하지 않는..
순수(?) MD5 계산 프로그램입니다.

PATH에 넣어두고 콘솔용으로 하면 편합니다.
신고
Posted by mstoned7
TAG md5, MD5SUM

댓글을 달아 주세요

  1. 덕덕 2014.10.17 16:33 신고  댓글주소  수정/삭제  댓글쓰기

    감사합니다!

Virtual PC 2007 SP1 은 마이크로소프트사의 가상 시스템 프로그램입니다.

무료라 악성코드 테스트 시스템에서 주로 이용했죠.
하지만, 최신 시스템 (회사 테스트 컴퓨터와 새로 구매한 집 컴퓨터)에서는 문제를 일으킵니다.

회사 테스트 컴퓨터의 경우 가상머신 창을 닫을 때 오류가 발생하고 집 컴퓨터에서는 사용하다가 가상화 프로그램 자체가 응답 없음이 되어버리더군요.

보다 원활한 작업을 위해서 VMware를 구매했고 테스트를 했는데 역시 상용 제품이 좋네요.
제품에는 Virtual PC의 이미지를 읽을 수 있다고 되어 있지만 제가 사용한 이미지는 읽을 수 없어 다시 윈도우를 설치했습니다.


특히 스냅샷 기능은 참 편리합니다.

하지만, VMware 를 실행 중일 때 Virtual PC 를 실행하면 오류가 발생합니다.
두 프로그램을 함께 사용해서는 안될 듯 합니다.


신고

'Reverse Engineering > 분석도구' 카테고리의 다른 글

OS X에서 IDA를 이용한 원격 디버깅  (5) 2013.01.17
MD5 값 얻기  (1) 2009.12.15
가상화 프로그램 Virtual PC vs VMware  (2) 2009.10.12
헥사에디터 : Hiew 8.00  (0) 2009.07.16
SysTracer - 시스템 변화 추적 시스템  (1) 2009.05.31
헥사 에디터 HIEW  (6) 2009.05.23
Posted by mstoned7

댓글을 달아 주세요

  1. 벌새 2009.10.13 11:11 신고  댓글주소  수정/삭제  댓글쓰기

    회사에서 VMware 구매를 안해주나요?ㅎ

    어제인가 블로그 글을 보니 어떤 분이 VMware 7.0 리뷰 글을 올리셨든데, 아직 베타 버전인가 봐요?


* 키로거

키로거(Keylogger)는 키입력 내용을 기록하는 프로그램이다.

키로거가 기업에서 직원이나 부모가 아이들을 모니터링하기 위해 사용되지만 누군가 개인 사생활을 파악하기 위해서 악용되기도 한다.

* 후킹

흔히 사용되는 키로깅 방식은 윈도우 API SetWindowsHookEx를 이용한 글로벌 메시지 훅과 드라이버를 이용한 키보드 후킹이 있다.

SetWindowsHookEx(

             Int idHook,                // 훅 종류

             HOOKPROC lpfn,          // 지정한 이벤트 발생시 처리하는 프로시저 주소

             HINSTANCE hMod,       // lpfn이 있는 DLL 의 시작 첫주소

             DWORD dwTreadID       // Thread ID

};


idHook 에 해당하는 내용은 다음과 같으며 악성코드는 보통 02(키보드), 07(마우스), 0D (키보드)를 후킹한다.

 

정의

내용

02

WH_KEYBOARD

키보드

03

WH_GETMESSAGE

 

04

WH_CALLWNDPROC

 

05

WH_CBT

 

06

WH_SYSMSGFILTER

 

07

WH_MOUSE

마우스

08

WH_HARDWARE

 

09

WH_DEBUG

 

10 (A)

WH_SHELL

 

11 (B)

WH_FOREGROUNDIDLE

 

12 (C)

WH_CALLWNDPROCRET

 

13 (D)

WH_KEYBOARD_LL

 저수준(Low-level) 키보드 입력 메시지 후킹

14 (E)

WH_MOUSE_LL

 

 

가로채는 키는 LRESULT CALLBACK KeyboardProc(int code,WPARAM wParam,LPARAM lParam) 형태가 된다.

 

LRESULT CALLBACK KeyboardProc(

Int code,                          // HC_ACTION(0), HC_NOREMOVE(3)

WPARAM wParam,                // virtual-key code

LPARAM lParam                  // extra information

);

 

다음 과정으로 키보드를 가로챈다.

1.       가로채는데 이용하는 DLL 로드

2.       SetWindowsHookExA 로 기능 가로채기

3.       입력 키 검사

4.       입력 키 내용 저장


후킹에 사용된 함수를 따라가면 키보드 입력을 가로채는 코드를 볼 수 있는데 이때 많이 사용되는 코드가 GetKeyboardState/GetKeyState와 ToAscii가 있다.

 

즉, 가장 널리 이용되는 기법은 GetKeyboardState를 통해 키 값을 얻고 ToAscii로 아스키코드로 변환하는 것이다.

 

1.       SetWindowsHookExA로 키보드 가로채기

2.       특수키 처리

3.       GetKeyboardState/GetKeyState ToAscii 존재

4.       키로그 내용 저장

 



* 키로거 판단

1.       Export 함수가 존재할 경우 함수를 분석

 

의외로 정직하게 API 이름을 사용하는 경우가 존재한다.


 




2. SetWindowsHookEx를 찾음

DLL 파일에서 SetWindowsHookEx를 이용하는 경우도 있지만
일부 키로거의 경우 EXE에서 DLL 주소를 얻어서 SetWindowsHookExA를 호출 하는 경우도 있다.

그림에서 보면 키보드(2)를 가로채며 후킹 주소는 0x01000100F 임을 알 수 있다.


3. SetWindowsHookExA로 가로챈 주소로 이동


4.       키보드 후킹 함수를 분석해 키로그 코드 찾음

GetKeyboardState ToAscii 는 가로챈 키 내용을 사람이 읽을 수 있는 텍스트 방식으로 변환할 때 사용된다. 아스키코드로 변환할 수 없는 코드들은 대체로 별도의 값으로 저장한다.




5.       키로그 내용을 저장하는 부분을 찾음




6.   이런 조건을 만족하면 키로거 가능성이 높으며 실제 테스트 해봄


SetWindowsHookEx 를 이용한 후킹은 키로거 외에 패스워드 탈취 프로그램, 게임 치팅 프로그램 등에서도 널리 이용된다.

신고
Posted by mstoned7

댓글을 달아 주세요



오늘 Hiew 제작자로부터 Hiew 8.00 파일과 그 파일을 해제할 수 있는 암호키, 라이센스 키를 받았습니다.

Hiew는 구매하고 2달 후(제작자에게 돈이 입금된 후) 최신 버전을 보내줍니다.

8.00 버전은 ARMv6 디스어셈블 기능이 추가된거 외에는 이전 버전하고 크게 달라진건 잘 모르겠네요.

* Hiew history:


8.00 ( 29 Jan 2009 )
- ARMv6 disassembler
- "ArmCodeDetection = On/Off" in ini-file
- Xor string (Edit/F8) is back!
- Names shift offset (F12/F6)
- Names export (F12/Shift-F12)
- PE section rva/offset correction (F8-F6-F5/F6)
- FIX: Some disassemblers fixes
- FIX: HEM: no set mode for HEM_RETURN_FILERELOAD

Windows CE 바이러스를 한번 디스어셈블 해봤습니다.

* 감염되기 전 파일


* 감염된 후 화면 (*.exe 파일 보임)


하지만, ARM v6 명령어를 안본지 오래되어서 명령어가 가물가물하네요.

신고

'Reverse Engineering > 분석도구' 카테고리의 다른 글

MD5 값 얻기  (1) 2009.12.15
가상화 프로그램 Virtual PC vs VMware  (2) 2009.10.12
헥사에디터 : Hiew 8.00  (0) 2009.07.16
SysTracer - 시스템 변화 추적 시스템  (1) 2009.05.31
헥사 에디터 HIEW  (6) 2009.05.23
헥사 에디터 : HE  (8) 2009.05.22
Posted by mstoned7

댓글을 달아 주세요


http://www.blueproject.ro/systracer

악성코드를 분석하기 위해서는 변경되는 파일과 레지스트리 등을 모니터링 해야한다.
개별 프로그램을 이용해도되지만 변화를 한꺼번에 보여주는 프로그램이 존재한다.

SysTracer 도 그런 프로그램 중 하나이다

SysTracer can scan your system and record information about:

  • changed files and folders
  • modified registry entries
  • system services
  • system drivers
  • applications that are configured to run at computer startup
  • running processes
  • loaded dlls

다만 상용 프로그램이다.

신고
Posted by mstoned7

댓글을 달아 주세요

  1. 자유팀노즈 2011.06.26 00:33 신고  댓글주소  수정/삭제  댓글쓰기

    좋은자료 감사합니다. 악성코드의 행동을 바로바로 볼수있겠네요 ㅎ



티스토리 툴바