티스토리 뷰

정보보호

7/22 과제

ljy98 2021. 7. 23. 00:02

1. Timeattack.exe 분석

2. Timeattack2.exe 분석


1. Timeattack.exe 분석

[그림 1] Timeattack.exe를 cmd로 실행했을 때 모습
[그림 2] Timeattack.exe의 main 함수

Timeattack.exe의 main 함수에서 한 줄씩 F8로 실행하다 보면 [그림 2]의 우측하단과 같이 Running이라고 계속 뜨는 부분이 있다. 편의상 첫 번째 Running 지연 부분을 Running_A, 두 번째 Running 지연 부분을 Running_B라고 하겠다.

 

[그림 3] Running_B 내부 진입

Running_B에서 한 줄씩 F8로 실행하다 보면 또 Running time이 지연되는 부분이 두 군데 나타난다. 편의상 첫 번째 부분을 Running_B1, 두 번째 부분을 Running_B2라고 하겠다.

 

[그림 4] Running_B2 내부 진입

Running_B2에서 한 줄씩 F8로 실행하다 보면 또 Running time이 지연되는 부분이 있다. 편의상 첫 번째 부분을 Running_B2a, 두 번째 부분을 Running_B2b라고 하겠다.

 

[그림 5] Running_B2a 내부 진입

 

[ 명령어의 의미 - Running_B2a ]

003D1230  /$ 55             PUSH EBP
003D1231  |. 8BEC           MOV EBP,ESP
003D1233  |. 83EC 08        SUB ESP,8
003D1236  |. 8D45 0C        LEA EAX,DWORD PTR SS:[EBP+C]
003D1239  |. 8945 FC        MOV DWORD PTR SS:[EBP-4],EAX
003D123C  |. 8B4D FC        MOV ECX,DWORD PTR SS:[EBP-4]
003D123F  |. 51             PUSH ECX
003D1240  |. 6A 00          PUSH 0
003D1242  |. 8B55 08        MOV EDX,DWORD PTR SS:[EBP+8]
003D1245  |. 52             PUSH EDX
003D1246  |. 6A 01          PUSH 1
003D1248  |. FF15 BC203D00  CALL DWORD PTR DS:[<&api-ms-win-crt-s>;  ucrtbase.__acrt_iob_func
003D124E  |. 83C4 04        ADD ESP,4
003D1251  |. 50             PUSH EAX                              ; |Arg1
003D1252  |. E8 D9FDFFFF    CALL Timeatta.003D1030                ; \Timeatta.013B1030
003D1257  |. 83C4 10        ADD ESP,10
003D125A  |. 8945 F8        MOV DWORD PTR SS:[EBP-8],EAX
003D125D  |. C745 FC 000000>MOV DWORD PTR SS:[EBP-4],0
003D1264  |. 8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
003D1267  |. 8BE5           MOV ESP,EBP
003D1269  |. 5D             POP EBP
003D126A  \. C3             RETN

[ 명령어의 의미 - Running_B2 ]

003D1060  /$ 55             PUSH EBP           ;  프롤로그
003D1061  |. 8BEC           MOV EBP,ESP           ;  프롤로그
003D1063  |. 51             PUSH ECX
003D1064  |. C745 FC 30F213>MOV DWORD PTR SS:[EBP-4],D013F230
003D106B  |> 8B45 FC        /MOV EAX,DWORD PTR SS:[EBP-4]
003D106E  |. 83C0 02        |ADD EAX,2
003D1071  |. 8945 FC        |MOV DWORD PTR SS:[EBP-4],EAX
003D1074  |. 8B4D FC        |MOV ECX,DWORD PTR SS:[EBP-4]
003D1077  |. 83E9 01        |SUB ECX,1
003D107A  |. 894D FC        |MOV DWORD PTR SS:[EBP-4],ECX
003D107D  |. 8B55 FC        |MOV EDX,DWORD PTR SS:[EBP-4]
003D1080  |. 52             |PUSH EDX                             ; /Arg2
003D1081  |. 68 28303D00    |PUSH Timeatta.003D3028               ; |Arg1 = 003D3028
003D1086  |. E8 A5010000    |CALL Timeatta.003D1230               ; \Timeatta.013B1230
003D108B  |. 83C4 08        |ADD ESP,8
003D108E  |. 817D FC EFBEAD>|CMP DWORD PTR SS:[EBP-4],DEADBEEF
003D1095  |.^75 D4          \JNZ SHORT Timeatta.003D106B
003D1097  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
003D109A  |. 50             PUSH EAX                              ; /Arg2
003D109B  |. 68 2C303D00    PUSH Timeatta.003D302C                ; |Arg1 = 003D302C ASCII "%x "
003D10A0  |. E8 8B010000    CALL Timeatta.003D1230                ; \Timeatta.013B1230
003D10A5  |. 83C4 08        ADD ESP,8
003D10A8  |. B8 EFBEADDE    MOV EAX,DEADBEEF
003D10AD  |. 8BE5           MOV ESP,EBP
003D10AF  |. 5D             POP EBP
003D10B0  \. C3             RETN

 

[ 명령어의 의미 - Running_B ]

00051140  /$ 55             PUSH EBP             ;  프롤로그
00051141  |. 8BEC           MOV EBP,ESP            ;  프롤로그
00051143  |. 68 30300500    PUSH Timeatta.00053030                ;  "Creating key..."를 스택에 저장 
00051148  |. FF15 B4200500  CALL DWORD PTR DS:[<&api-ms-win-crt-s>;  puts 함수 호출
0005114E  |. 83C4 04        ADD ESP,4 
00051151  |. E8 0AFFFFFF    CALL Timeatta.00051060 
00051156  |. A3 10340500    MOV DWORD PTR DS:[53410],EAX 
0005115B  |. 68 40300500    PUSH Timeatta.00053040                ;  "Done Creating key"를 스택에 저장
00051160  |. FF15 B4200500  CALL DWORD PTR DS:[<&api-ms-win-crt-s>;  puts 함수 호출
00051166  |. 83C4 04        ADD ESP,4            ;  에필로그
00051169  |. 5D             POP EBP           ;  에필로그
0005116A  \. C3             RETN             ;  에필로그

 

[ 명령어의 의미 - Timeattack.exe ]

013B11C0  /$ 55             PUSH EBP            ;  프롤로그
013B11C1  |. 8BEC           MOV EBP,ESP            ;  프롤로그
013B11C3  |. 51             PUSH ECX
013B11C4  |. 6A 00          PUSH 0           ;  0초 동안 시간 지연
013B11C6  |. 6A 00          PUSH 0           ;  0초 동안 시간 지연
013B11C8  |. 68 00103B01    PUSH Timeatta.013B1000
013B11CD  |. 6A 00          PUSH 0           ;  0초 동안 시간 지연
013B11CF  |. 68 88130000    PUSH 1388           ;  5000ms(5초) 동안 시간 지연
013B11D4  |. FF15 40203B01  CALL DWORD PTR DS:[<&WINMM.timeSetEvent>]  ;  WINMM.timeSetEvent
013B11DA  |. 8945 FC        MOV DWORD PTR SS:[EBP-4],EAX
013B11DD  |. E8 8EFFFFFF    CALL Timeatta.013B1170
013B11E2  |. E8 59FFFFFF    CALL Timeatta.013B1140
013B11E7  |. E8 14000000    CALL Timeatta.013B1200
013B11EC  |. 33C0           XOR EAX,EAX            ;  return 0;
013B11EE  |. 8BE5           MOV ESP,EBP            ;  에필로그
013B11F0  |. 5D             POP EBP             ;  에필로그
013B11F1  \. C3             RETN            ;  에필로그

 

 

 

2. Timeattack2.exe 분석

'정보보호' 카테고리의 다른 글

8/3 과제 - IP Spoofing 공격 및 대응 방안  (0) 2021.08.03
7/23 수업  (0) 2021.07.24
7/22 수업  (0) 2021.07.22
7/21 과제  (0) 2021.07.21
7/20 과제  (0) 2021.07.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함