Сейчас на форуме: asfa, bartolomeo (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Как посмотреть маску в отладчике
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 20 марта 2012 12:11 · Поправил: KokoIN
· Личное сообщение · #1

Всем добрый день господа и дамы!
Как посмотреть маску FindPattern в OllyDbg

Вот исходный код финдпаттерна

DWORD Hack = FindPattern(Адрес, откуда начинаем искать,диапазон сканирования,[Байты, которые ищем],[Байты, в виде маски]);
Пример:
DWORD Hack = FindPattern(frostcollector.dll,0x100500,(PBYTE)"\x90\x90\x90\x90\x90,"xxxxxxxxxx");

В отладчике заместо байтов будет стоять маска "xxxxxxxxxx" как вскрыть байты? помогите пожалуйста.


P.S: И можно узнать чем запакована длл-ка


eeb5_20.03.2012_EXELAB.rU.tgz - Test.dll



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 20 марта 2012 12:15
· Личное сообщение · #2

мой мозг плакать и горевать и не понимать что делать в эта ситуация ай-ай-ай

спросите по-русски, чтобы стало понятно - что такое "вскрыть байты" ?



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 20 марта 2012 12:34
· Личное сообщение · #3

ctrl+b? хотя реально какая-то чушь написана

| Сообщение посчитали полезным: DimitarSerg

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

Создано: 20 марта 2012 12:57
· Личное сообщение · #4

Видите строчку ASCII "xxxxxxxxxx" на скриншоте, это отображается маска FindPattern, которую указали в исходном коде DWORD Hack = FindPattern(frostcollector.dll,0x100500,(PBYTE)"\x90\x90\x90\x90\x90-это рабочие байты, которые взаимодействуют с frostcollector.dll,"xxxxxxxxxx- вот эта "маска" отображается в отладчике OllyDbg");
Маска-отображение левого кода.
Мне нужно узнать байты которые взаимодействуют с frostcollector.dll, я не пойму просто как их посмотреть, если отображается только "маска"



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 20 марта 2012 14:16
· Личное сообщение · #5

KokoIN
видите строчку которую вы сами указали?
DWORD Hack = FindPattern(frostcollector.dll,0x100500,(PBYTE)"\x90\x90\x90\x90\x90,"xxxxxxxxxx");
так вот в отладчике видимо как раз и отображается xxxxxxxxxx из этой строчки

а указатель на массив байтов (PBYTE)"\x90\x90\x90\x90\x90 может находиться где угодно. исследуйте внутренности своей процедуры FindPattern



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 20 марта 2012 14:31
· Личное сообщение · #6

сдается мне что массив это mov ebx,6e16b7ac



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 20 марта 2012 15:39 · Поправил: Konstantin
· Личное сообщение · #7

KokoIN пишет:
P.S: И можно узнать чем запакована длл-ка



KokoIN пишет:
Мне нужно узнать байты которые взаимодействуют с frostcollector.dll, я не пойму просто как их посмотреть, если отображается только "маска"

По китайски понятнее будет.

Есть некая функция - FindPattern, оперирующая данными - (Адрес, откуда начинаем искать,диапазон сканирования,[Байты, которые ищем],[Байты, в виде маски]). Вам нужно найти в коде этой функции переменную - [Байты, которые ищем], точнее узнать, что она из себя представлят в ассемблерном коде, (данные из стека, регистров, ячейки памяти) так?

| Сообщение посчитали полезным: KokoIN

Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 20 марта 2012 16:14
· Личное сообщение · #8

Сдается мне, что топикстартер под тем, что являет его ник.

| Сообщение посчитали полезным: ClockMan, DimitarSerg

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

Создано: 20 марта 2012 16:28 · Поправил: KokoIN
· Личное сообщение · #9

Vovan666 пишет:
сдается мне что массив это mov ebx,6e16b7ac

нет, должно быть 10 символов (смотри на маску состоящая из 10 - x, каждый X число от 1 до F, 0 - обозначается в "маске" - "?" знаком.

Konstantin пишет:
Вам нужно найти в коде этой функции переменную - [Байты, которые ищем], точнее узнать, что она из себя представлят в ассемблерном коде, (данные из стека, регистров, ячейки памяти) так?


Да.



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 20 марта 2012 16:40 · Поправил: Konstantin
· Личное сообщение · #10

Если значение переменной известны, то проще поставить бряк на начало функции и потрассировать. Оценить алго по вашим скринам - зрение сломаешь.

Выкладывайте скрины лучше с превью, и картинку заливайте на хостинг без изменения размера. Есть еще соответствующий bbcod на этом форуме, чтобы выложить код в текстовом виде.



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 20 марта 2012 16:52 · Поправил: tihiy_grom
· Личное сообщение · #11

чего там трассировать? в функцию передаётся 4 параметра.
Когда в отладчике мы зашли в эту функцию - все эти 4 параметра лежат в стеке. Не судьба что ли их посмотреть?

KokoIN
почитали бы что ли как с ollydbg работать. ибо вообще непонятно как вы с такими знаниями собрались ломать FROST



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

Создано: 20 марта 2012 16:53
· Личное сообщение · #12

Code:
  1. 6AF9A470   . 68 98B7F96A    PUSH Private_.6AF9B798                   ; /pModule = "frostcollector.dll"
  2. 6AF9A475   . FF15 60B0F96A  CALL DWORD PTR DS:[6AF9B060]             ; \GetModuleHandleA
  3. 6AF9A47B   . A3 4406FA6A    MOV DWORD PTR DS:[6AFA0644],EAX
  4. 6AF9A480   . C3             RETN
  5. 6AF9A481     CC             INT3
  6. 6AF9A482     CC             INT3
  7. 6AF9A483     CC             INT3
  8. 6AF9A484     CC             INT3
  9. 6AF9A485     CC             INT3
  10. 6AF9A486     CC             INT3
  11. 6AF9A487     CC             INT3
  12. 6AF9A488     CC             INT3
  13. 6AF9A489     CC             INT3
  14. 6AF9A48A     CC             INT3
  15. 6AF9A48B     CC             INT3
  16. 6AF9A48C     CC             INT3
  17. 6AF9A48D     CC             INT3
  18. 6AF9A48E     CC             INT3
  19. 6AF9A48F     CC             INT3
  20. 6AF9A490   . 53             PUSH EBX
  21. 6AF9A491   . 56             PUSH ESI
  22. 6AF9A492   . BB ACB7F96A    MOV EBX,Private_.6AF9B7AC
  23. 6AF9A497   . 57             PUSH EDI
  24. 6AF9A498   . 8B3D 4406FA6A  MOV EDI,DWORD PTR DS:[6AFA0644]
  25. 6AF9A49E   . 33F6           XOR ESI,ESI
  26. 6AF9A4A0   . 81EB 58B6F96A  SUB EBX,Private_.6AF9B658                ; ASCII "xxxxxxxxxx"
  27. 6AF9A4A6   > B8 58B6F96A    MOV EAX,Private_.6AF9B658                ; ASCII "xxxxxxxxxx"
  28. 6AF9A4AB   . B1 78          MOV CL,78
  29. 6AF9A4AD   . 8D1437         LEA EDX,DWORD PTR DS:[EDI+ESI]
  30. 6AF9A4B0   > 80F9 78        CMP CL,78
  31. 6AF9A4B3   . 75 07          JNZ SHORT Private_.6AF9A4BC
  32. 6AF9A4B5   . 8A0A           MOV CL,BYTE PTR DS:[EDX]
  33. 6AF9A4B7   . 3A0C03         CMP CL,BYTE PTR DS:[EBX+EAX]
  34. 6AF9A4BA   . 75 16          JNZ SHORT Private_.6AF9A4D2
  35. 6AF9A4BC   > 8A48 01        MOV CL,BYTE PTR DS:[EAX+1]
  36. 6AF9A4BF   . 40             INC EAX
  37. 6AF9A4C0   . 42             INC EDX
  38. 6AF9A4C1   . 84C9           TEST CL,CL
  39. 6AF9A4C3   .^75 EB          JNZ SHORT Private_.6AF9A4B0
  40. 6AF9A4C5   . 33D2           XOR EDX,EDX
  41. 6AF9A4C7   . 3ACA           CMP CL,DL
  42. 6AF9A4C9   . 0F94C2         SETE DL
  43. 6AF9A4CC   . 8BC2           MOV EAX,EDX
  44. 6AF9A4CE   . 85C0           TEST EAX,EAX
  45. 6AF9A4D0   . 75 14          JNZ SHORT Private_.6AF9A4E6
  46. 6AF9A4D2   > 46             INC ESI
  47. 6AF9A4D3   . 81FE F99F2410  CMP ESI,10249FF9
  48. 6AF9A4D9   .^72 CB          JB SHORT Private_.6AF9A4A6
  49. 6AF9A4DB   . 5F             POP EDI
  50. 6AF9A4DC   . 33C0           XOR EAX,EAX
  51. 6AF9A4DE   . 5E             POP ESI
  52. 6AF9A4DF   . A3 8005FA6A    MOV DWORD PTR DS:[6AFA0580],EAX
  53. 6AF9A4E4   . 5B             POP EBX
  54. 6AF9A4E5   . C3             RETN
  55. 6AF9A4E6   > 8D0437         LEA EAX,DWORD PTR DS:[EDI+ESI]
  56. 6AF9A4E9   . 5F             POP EDI
  57. 6AF9A4EA   . 5E             POP ESI
  58. 6AF9A4EB   . A3 8005FA6A    MOV DWORD PTR DS:[6AFA0580],EAX
  59. 6AF9A4F0   . 5B             POP EBX
  60. 6AF9A4F1   . C3             RETN
  61. 6AF9A4F2     CC             INT3
  62. 6AF9A4F3     CC             INT3
  63. 6AF9A4F4     CC             INT3
  64. 6AF9A4F5     CC             INT3
  65. 6AF9A4F6     CC             INT3
  66. 6AF9A4F7     CC             INT3
  67. 6AF9A4F8     CC             INT3
  68. 6AF9A4F9     CC             INT3
  69. 6AF9A4FA     CC             INT3
  70. 6AF9A4FB     CC             INT3
  71. 6AF9A4FC     CC             INT3
  72. 6AF9A4FD     CC             INT3
  73. 6AF9A4FE     CC             INT3
  74. 6AF9A4FF     CC             INT3
  75. 6AF9A500   . E8 2BB6FFFF    CALL Private_.6AF95B30
  76. 6AF9A505   . 68 20A5F96A    PUSH Private_.6AF9A520
  77. 6AF9A50A   . E8 E0E5FFFF    CALL Private_.6AF98AEF
  78. 6AF9A50F   . 59             POP ECX
  79. 6AF9A510   . C3             RETN
  80. 6AF9A511   . 68 A3A5F96A    PUSH Private_.6AF9A5A3
  81. 6AF9A516   . E8 D4E5FFFF    CALL Private_.6AF98AEF
  82. 6AF9A51B   . 59             POP ECX
  83. 6AF9A51C   . C3             RETN
  84. 6AF9A51D     CC             INT3
  85. 6AF9A51E     CC             INT3
  86. 6AF9A51F     CC             INT3
  87.  




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

Создано: 20 марта 2012 16:56
· Личное сообщение · #13

tihiy_grom пишет:
Когда в отладчике мы зашли в эту функцию - все эти 4 параметра лежат в стеке. Не судьба что ли их посмотреть?

Поподробнее можно со стеком



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 20 марта 2012 17:04 · Поправил: Konstantin
· Личное сообщение · #14

tihiy_grom пишет:
чего там трассировать? в функцию передаётся 4 параметра.Когда в отладчике мы зашли в эту функцию - все эти 4 параметра лежат в стеке. Не судьба что ли их посмотреть?

Видимо судьба у всех разная. Напомню название ветки - Вопросы новичков. Сможет автор топика посмотреть в стеке, я не знаю, также я не знаю сможте ли потрассировать.

P.S.
Вот и ответ.
KokoIN пишет:
Поподробнее можно со стеком





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 20 марта 2012 17:14
· Личное сообщение · #15

KokoIN в окне дампа, ctlr+g 6AF9B7AC

-----
[nice coder and reverser]




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

Создано: 20 марта 2012 17:48 · Поправил: KokoIN
· Личное сообщение · #16

А смысл тут в чем? типа x - это 78? и "?" знак = 3F
Code:
  1. 6AF5B470   . 78 78 78 3F 78 3F 3F 3F 3F 78 78 78 78 78 78 78      ASCII "xxx?x????xxxxxxx"
  2. 6AF5B480   . 78 78 00                                             ASCII "xx",0






Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 20 марта 2012 18:13 · Поправил: Konstantin
· Личное сообщение · #17

KokoIN пишет:
А смысл тут в чем? типа x - это 78? и "?" знак = 3F

Допустим сигнатура - 010203, маска - x?x

Вот байты сигнатуры - 01, 03 будут сравниваться в цикле, а байт 02 будет игнорироваться(может быть любым).
Т.е. мы ищем - 01??03.

Чё куришь? Поделись.
Кoму, зачем и для чего нужны такие байты? В EAX находится адрес - 6af5b3e0. Байты выделенные красным это тот же адрес в текстовом виде.




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 20 марта 2012 18:20
· Личное сообщение · #18

Чё куришь? Поделись.
По нику же видно...

-----
Everything is relative...




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

Создано: 20 марта 2012 18:25 · Поправил: KokoIN
· Личное сообщение · #19

Konstantin пишет:
Допустим сигнатура - 010203, маска - x?x

Будет маска - xxx, так как ? знак = \x00, я пример привел в стеке, как должны выглядеть байты скрывающийся за маской.


Vamit пишет:
По нику же видно...

Да ты остряк, лучше помог бы разобраться.



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 20 марта 2012 18:32
· Личное сообщение · #20

KokoIN пишет:
как должны выглядеть байты скрывающийся за маской.

Маска нужна не для того чтобы что то скрыть, а для того чтобы показать, какие байты сигнатуры(паттерна) учитывать при её поиске по коду, а какие нет.



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

Создано: 20 марта 2012 18:45 · Поправил: KokoIN
· Личное сообщение · #21

Konstantin пишет:
Маска нужна не для того чтобы что то скрыть, а для того чтобы показать, какие байты сигнатуры(паттерна) учитывать при её поиске по коду, а какие нет.

Ну вот как посмотреть байты ? вообще можно ли посмотреть байты(паттерна) в отладчике, кто-то сталкивался с такой проблемой?



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 20 марта 2012 18:51 · Поправил: Konstantin
· Личное сообщение · #22

ЭЭЭЭЭ, мдя.

Hellspawn пишет:
KokoIN в окне дампа, ctlr+g 6AF9B7AC


Вроде уже ответили, или всё по кругу? Вот по этому адресу - 6AF9B7AC паттерн и находится. Удобнее всего его посмотреть в окне дампа отладчика.

P.S. Вот сюда загляните. --> Link <--



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

Создано: 20 марта 2012 20:00 · Поправил: KokoIN
· Личное сообщение · #23

Konstantin, вот смотри.

Code:
  1. 6E4AB798   . 66 72 6F 73 74 63 6F 6C 6C 65 63 74 6F 72 2E 64   ASCII "frostcollector.d"
  2. 6E4AB7A8   . 6C 6C 00                                          ASCII "ll",0
  3. 6E4AB7AB     00                                                DB 00
  4. 6E4AB7AC     E8                                                DB E8
  5. 6E4AB7AD     F8                                                DB F8
  6. 6E4AB7AE     0F                                                DB 0F
  7. 6E4AB7AF     00                                                DB 00
  8. 6E4AB7B0     00                                                DB 00
  9. 6E4AB7B1     8B                                                DB 8B
  10. 6E4AB7B2   . C3                                                RETN
  11. 6E4AB7B3     8B                                                DB 8B
  12. 6E4AB7B4     4D                                                DB 4D                                    ; CHAR 'M'
  13. 6E4AB7B5     F4                                                DB F4
  14. 6E4AB7B6     00                                                DB 00
  15. 6E4AB7B7     00                                                DB 00
  16. 6E4AB7B8   . BB000000                                          DD 000000BB
  17. 6E4AB7BC   . 008BC38B                                          DD 8BC38B00
  18. 6E4AB7C0   . C890                                              DW 90C8
  19. 6E4AB7C2     00                                                DB 00
  20. 6E4AB7C3     00                                                DB 00
  21. 6E4AB7C4   . 44 33 44 39 2E 44 4C 4C 00                        ASCII "D3D9.DLL",0
  22.  


P.S: Где тут можно увидеть байты паттерна? покажи плиз, а то я туплю...



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 20 марта 2012 20:19 · Поправил: tihiy_grom
· Личное сообщение · #24

ну давайте третий раз попробуем ...

Hellspawn пишет:
KokoIN в окне дампа, ctlr+g 6AF9B7AC

сейчас надо будет очень сильно напрячься, чтобы третий раз не протупить с адресом, и в окне дампа перейти именно на тот адрес, который указан в строке
Code:
  1. 6AF9A492   . BB ACB7F96A    MOV EBX,Private_.6AF9B7AC

и надо снова не протупить, и не лезть в окно дампа именно по этому адресу - потому что ImageBase у библиотеки будет другой, и адрес тоже изменится с учетом этой новой ImageBase.
и следующий вопрос наверное будет такой - а что такое ImageBase, да?

я вот только одного не могу понять (у меня много вопросов сейчас к вам будет)
- на кой черт вам сдались эти байты?
- что это вам даст, если вы их посмотрите в отладчике?
- почему не посмотреть эти байты в стеке, куда они передаются как параметр для функции?
- почему сначала не почитать где находится окно стека в отладчике ollydbg ?
- почему сначала не почитать цикл статей "Введение в крэкинг с нуля, используя OllyDbg", ссылку на которые дал Konstantin ?



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 20 марта 2012 21:07 · Поправил: Konstantin
· Личное сообщение · #25

KokoIN пишет:
Konstantin, вот смотри.

Если программу постоянно перезагружать в отладчике, то длл каждый раз грузится по разным адресам. Чтобы узнать адрес сигнатуры нужно заново отыскать тот код. А именно строку
Code:
  1. Code:6AF9A492   . BB ACB7F96A    MOV EBX,Private_.6AF9B7AC

Но адрес соответственно будет уже другой, и вот по этому адресу пройти в окне дампа отладчика.

Судя по приведенному коду в посте выше длл была загружена предположительно по базе 6e4?????, соответственно адрес сигнантуры будет - 6e4aB7AC

KokoIN пишет:
P.S: Где тут можно увидеть байты паттерна? покажи плиз, а то я туплю...

6E4AB798, а нужно 6e4aB7AC.

P.S. Щас посмотрел что написал, и я уже под столом. Заразительно однако.
Да действительно адреса теже.
А что смущает в данной сигнатуре ?
E8 F8 0F 00 00 8B C3 8B 4D F4 00 ... не знаю её длину.
Сама сигнатура что из себя должна предсталять? Часть кода, текстовою строку, какие то другие данные?



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

Создано: 20 марта 2012 21:37 · Поправил: KokoIN
· Личное сообщение · #26

Konstantin пишет:
Сама сигнатура что из себя должна предсталять? Часть кода, текстовою строку, какие то другие данные?


Сигнатура должна из себя представлять цифры и буквы из шестнадцатеричной системы счисления, вот например маска "xxxxxxxxxx" состоит из 10 x, в ней нет ? знака - а значит что двух нулей соответственно нет.
Пример сигнатуры \x90\x90\x90\x90\x90 - тут могут быть другие значения от 1 до F, исключение составляет \x00 = ? знак.



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 20 марта 2012 21:53 · Поправил: Konstantin
· Личное сообщение · #27

KokoIN пишет:
Пример сигнатуры \x90\x90\x90\x90\x90 - тут могут быть другие значения от 1 до F

значения от 00 до ff

KokoIN пишет:
исключение составляет \x00 = ? знак.

Исключений нет, так как присутствует маска, которая в данном случае определяет ещё длину сигнатуры, а вот если бы маски не было, то было бы исключение.

E8F80F00008BC38B4DF4 - сигна
xxxxxxxxxx или (78787878787878787878) или (\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78) - маска

Что не так?



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

Создано: 20 марта 2012 22:02 · Поправил: KokoIN
· Личное сообщение · #28

Konstantin, где ты взял 78, и всего должно получится 10 символов, у тебя их 20.
P.S: Байты должны соответствовать маске (я не могу найти в коде полного соответствия с маской)



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 20 марта 2012 22:13
· Личное сообщение · #29

KokoIN пишет:
где ты взял 78

KokoIN пишет:
А смысл тут в чем? типа x - это 78?

Именно.

KokoIN пишет:
10 символов

Ай яй яй. Должно быть 10 байт.

в виде дампа байтов:
E8F80F00008BC38B4DF4 - сигна
78787878787878787878 - маска

в текстовом виде:
\xE8\xF8\x0F\x00\x00\x8B\xC3\x8B\x4D\xF4 - сигна
\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78 - маска



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

Создано: 20 марта 2012 22:18 · Поправил: KokoIN
· Личное сообщение · #30

Konstantin пишет:
Ай яй яй. Должно быть 10 байт.

не 10 байтов =) 10 символов.

\xE8\xF8\x0F\x00\x00\x8B\xC3\x8B\x4D\xF4 - "xxxxxx??xxxxxxxxxx" = так будет выглядеть маска, а нужно "xxxxxxxxxx"


. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Как посмотреть маску в отладчике
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати