Сейчас на форуме: Magister Yoda (+9 невидимых)

 eXeL@B —› Основной форум —› Assembly 2008 Reverse-Engineering Challenge - Level 1
Посл.ответ Сообщение

Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 23 сентября 2008 21:52
· Личное сообщение · #1

Добрый вечер.

Знаю, что уже прошло соревнование, но вот есть
некоторые вопросы, не пойму как решить
первый уровень FSC08_Level1.exe,
хотя знаю, что проверка здесь
Code:
  1. 6900108A  |. 2BC2           SUB EAX,EDX
  2. 6900108C  |. 83F8 04        CMP EAX,4
  3. 6900108F  |. 0F85 95000000  JNZ FSC08_Le.6900112A
  4. 69001095  |. 0FB615 0231006>MOVZX EDX,BYTE PTR DS:[69003102]
  5. 6900109C  |. A0 00310069    MOV AL,BYTE PTR DS:[69003100]
  6. 690010A1  |. 3005 D4300069  XOR BYTE PTR DS:[690030D4],AL
  7. 690010A7  |. 3015 D6300069  XOR BYTE PTR DS:[690030D6],DL
  8. 690010AD  |. 3005 D8300069  XOR BYTE PTR DS:[690030D8],AL
  9. 690010B3  |. 0FB615 0331006>MOVZX EDX,BYTE PTR DS:[69003103]
  10. 690010BA  |. 0FB605 0131006>MOVZX EAX,BYTE PTR DS:[69003101]
  11. 690010C1  |. 3015 D7300069  XOR BYTE PTR DS:[690030D7],DL
  12. 690010C7  |. 3005 D9300069  XOR BYTE PTR DS:[690030D9],AL
  13. 690010CD  |. 8A0D D5300069  MOV CL,BYTE PTR DS:[690030D5]
  14. 690010D3  |. 0FB615 0231006>MOVZX EDX,BYTE PTR DS:[69003102]
  15. 690010DA  |. 0FB605 0331006>MOVZX EAX,BYTE PTR DS:[69003103]
  16. 690010E1  |. 320D 01310069  XOR CL,BYTE PTR DS:[69003101]
  17. 690010E7  |. 3015 DA300069  XOR BYTE PTR DS:[690030DA],DL
  18. 690010ED  |. 3005 DB300069  XOR BYTE PTR DS:[690030DB],AL
  19. 690010F3  |. 80F9 61        CMP CL,61
  20. 690010F6  |. 880D D5300069  MOV BYTE PTR DS:[690030D5],CL
  21. 690010FC  |. 75 2C          JNZ SHORT FSC08_Le.6900112A
  22. 690010FE  |. 803D D7300069 >CMP BYTE PTR DS:[690030D7],79
  23. 69001105  |. 75 23          JNZ SHORT FSC08_Le.6900112A
  24. 69001107  |. 803D D8300069 >CMP BYTE PTR DS:[690030D8],32
  25. 6900110E  |. 75 1A          JNZ SHORT FSC08_Le.6900112A
  26. 69001110  |. 803D DA300069 >CMP BYTE PTR DS:[690030DA],30
  27. 69001117  |. 75 11          JNZ SHORT FSC08_Le.6900112A
  28. 69001119  |. 68 D4300069    PUSH FSC08_Le.690030D4                   ; ASCII 07,".5)p vh"
  29. 6900111E  |. 68 C8200069    PUSH FSC08_Le.690020C8                   ; ASCII 0A,"Congratula"
  30. 69001123  |. FFD6           CALL ESI
  31. 69001125  |. 83C4 08        ADD ESP,8
  32. 69001128  |. EB 0A          JMP SHORT FSC08_Le.69001134
  33. 6900112A  |> 68 08210069    PUSH FSC08_Le.69002108                   ; ASCII 0A,"Sorry, thi"
  34. 6900112F  |. FFD6           CALL ESI


Заранее спасибо.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 23 сентября 2008 21:56 · Поправил: coderess
· Личное сообщение · #2

Вот таблица значений и 3 переменных для хранение части ключа

Code:
  1. byte_690030D4   db 7  
  2. byte_690030D5   db 2Eh     ; ASCII '.'
  3. byte_690030D6   db 35h
  4. byte_690030D7   db 29h
  5. byte_690030D8   db 70h
  6. byte_690030D9   db 20h
  7. byte_690030DA   db 76h
  8. byte_690030DB   db 68h
  9. byte_69003101   db 0 
  10. byte_69003102   db 0
  11. byte_69003103   db 0 
  12. table db 7h, 2Eh, 35h, 29h, 70h, 20h, 76h, 68h


Вот основной разбор функции проверки

Code:
  1. 69001095  |. 0FB615 0231006>MOVZX EDX,BYTE PTR DS:[69003102]         ; EDX = Key[3]
  2. |. 6900109C  |. A0 00310069    MOV AL,BYTE PTR DS:[69003100]            ; AL = Key[1]
  3. |. 690010A1  |. 3005 D4300069  XOR BYTE PTR DS:[690030D4],AL            ; Table[1] = Table[1] xor Key[1] = 6
  4. |. 690010A7  |. 3015 D6300069  XOR BYTE PTR DS:[690030D6],DL            ; Table[3] = Table[3] xor Key[3] = 
  5. |. 690010AD  |. 3005 D8300069  XOR BYTE PTR DS:[690030D8],AL            ; Table[5] = Table[5] xor Key[1] = A
  6. |. 690010B3  |. 0FB615 0331006>MOVZX EDX,BYTE PTR DS:[69003103]         ; EDX = 34
  7. |. 690010BA  |. 0FB605 0131006>MOVZX EAX,BYTE PTR DS:[69003101]         ; EAX = 32
  8. |. 690010C1  |. 3015 D7300069  XOR BYTE PTR DS:[690030D7],DL            ; Table[4] = Table[4] xor Key[4] = 
  9. |. 690010C7  |. 3005 D9300069  XOR BYTE PTR DS:[690030D9],AL            ; Table[6] = Table[6] xor Key[2] = 
  10. |. 690010CD  |. 8A0D D5300069  MOV CL,BYTE PTR DS:[690030D5]            ; CL = Table[2]
  11. |. 690010D3  |. 0FB615 0231006>MOVZX EDX,BYTE PTR DS:[69003102]         ; EDX = 3
  12. |. 690010DA  |. 0FB605 0331006>MOVZX EAX,BYTE PTR DS:[69003103]         ; EAX = 4
  13. |. 690010E1  |. 320D 01310069  XOR CL,BYTE PTR DS:[69003101]            ; Table[2] = Table[2] xor Key[2]
  14. |. 690010E7  |. 3015 DA300069  XOR BYTE PTR DS:[690030DA],DL            ; Table[7] = Table[7] xor Key[3] = E
  15. |. 690010ED  |. 3005 DB300069  XOR BYTE PTR DS:[690030DB],AL            ; Table[8] = Table[8] xor Key[4] =
  16. |. 690010F3  |. 80F9 61        CMP CL,61
  17. |. 690010F6  |. 880D D5300069  MOV BYTE PTR DS:[690030D5],CL            ; Table[2] = CL(Table[2] = Table[2] xor Key[2])


Трасируешь смотришь на регистры - делаешь выводы.

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 23 сентября 2008 21:57
· Личное сообщение · #3

TheGrow тема --> тут <-- не плоди топики

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 23 сентября 2008 22:02
· Личное сообщение · #4

Isaev ок, спасибо, сейчас перенесусь туда


 eXeL@B —› Основной форум —› Assembly 2008 Reverse-Engineering Challenge - Level 1
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати