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

 eXeL@B —› Вопросы новичков —› Реверсинг Adobe Flash Player
Посл.ответ Сообщение

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

Создано: 05 октября 2010 15:13
· Личное сообщение · #1

мучаю IDA уже некоторое время и никак не найти точного места когда

SWF файл уже загрузился (с интернета) в память в распакованном виде, но еще не начал играться =\

тк нужно его подправить до проигрывания frame1, это не запрос на взлом, но нужна помощь..

ссылка на программу: _http://download.macromedia.com/pub/flashplayer/updaters/10/flashplaye r_10_sa.exe

и что пока нарыл: тут кое как загружается sub_4F4380 и sub_7129C2, смотрел по хард брекпоинтам когда дописывается конец swf файла в память, то с разных мест пишется, то ничем не отличается от записи середины файла.

Защиты разумеется никакой нету у программы.



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 05 октября 2010 19:12 · Поправил: gena-m
· Личное сообщение · #2

ссылка на программу: _http://download.macromedia.com/pub/flashplayer/updaters/10/flashplaye r_10_sa.exe

Не качается....., выложи на файлообменник flashplaye r_10_sa.exe.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше




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

Создано: 05 октября 2010 20:55
· Личное сообщение · #3

gena-m пишет:
Не качается

форум не дал ссылку запостить и вставил в неё пробел между "flashplae" и "r_10_sa.exe"

вот на файлообменнике:
www.mediafire.com/?qj5js9iqnmcvcro




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 05 октября 2010 21:48
· Личное сообщение · #4

Owyn пишет:
еще не начал играться

1. Что Вы под этим подразумеваете?
2. Обычно ничего инетерсного не происходит до тех пор, пока не начнёт исполняться байткод под avm.
3. Расскажите, для чего Вам всё это? А то если Вы танком червяка убить хотите, то найдутся и более гуманные методы.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




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

Создано: 05 октября 2010 21:56
· Личное сообщение · #5

4kusNick пишет:
Что Вы под этим подразумеваете?

функция frame1() еще не вызывалась, а только весь swf в распакованном виде появился в памяти

4kusNick пишет:
2. Обычно ничего инетерсного не происходит до тех пор, пока не начнёт исполняться байткод под avm.

оно же вроде и нужно, поймать момент пока это не начало происходить

4kusNick пишет:
для чего Вам всё это?

Подключение библиотеки для модификации просматриваемых swf онлайн на лету, а нужные инструкции либо в frame1() либо хитро закручины в public func изменение которых после запуска почему-то ничего не меняет



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 05 октября 2010 23:05 · Поправил: gena-m
· Личное сообщение · #6

что пока нарыл: тут кое как загружается sub_4F4380 и sub_7129C2
Code:
  1. .text:004F437E                 mov     edi, eax
  2. .text:004F4380                 add     esp, 10h
  3. .text:004F4383                 mov     [esi+0Ch], ebx
  4. .text:004F4386                 test    edi, edi


Code:
  1. .text:007129BD                 and     eax, edx
  2. .text:007129BF                 add     eax, ebp
  3. .text:007129C1                 mov     ecx, [esp+60h+var_30]
  4. .text:007129C5                 mov     eax, [ecx+eax*4]

не знаю что вы нарыли, но как видите по одному адресу нет никаких процедур, второго адреса нет вообще (если мы смотрим один и тот же файл flashplayer_10_sa.exe), соответственно при работе программы через вышеперечисленные адреса выполнение не проходит.
Приложение многопоточное поэтому ставьте бряк на CreateThread.

Code:
  1. 00500FBE  |.  8B8E A0030000 MOV ECX,DWORD PTR DS:[ESI+3A0]
  2. 00500FC4  |.  6A 00         PUSH 0                                   ; /Arg4 = 00000000
  3. 00500FC6  |.  6A 00         PUSH 0                                   ; |Arg3 = 00000000
  4. 00500FC8  |.  56            PUSH ESI                                 ; |Arg2
  5. 00500FC9  |.  68 200F5000   PUSH flashpla.00500F20                   ; |Arg1 = 00500F20
  6. 00500FCE  |.  E8 C5CB0700   CALL flashpla.0057DB98                   ; \flashpla.0057DB98
  7. 00500FD3  |>  E8 0B5B0800   CALL flashpla.00586AE3


Ставьте бряк на 500FCE и при открытии файла в отладчике остановитесь - дальше... как повезет, поскольку вашей работы пока не вижу.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше




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

Создано: 05 октября 2010 23:16 · Поправил: Owyn
· Личное сообщение · #7

gena-m пишет:
500FCE

середина инструкции вообще

я ж не придумал, вот моя .idb, ф-ции переименовал в $A_sub_..., там есть комментарии в найденных местах где пишется swf в память
http://www.mediafire.com/?e37ljid3az2ejm7


+ на файлообменнике во 3м посте я сам заливал, т.е. там моя версия



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 05 октября 2010 23:49 · Поправил: gena-m
· Личное сообщение · #8

я ж не придумал

Я не сказал, что придумал я предположил что мы можем смотреть разные версии или сборки (если мы смотрим один и тот же файл flashplayer_10_sa.exe), тогда адреса могут не совпадать, как в данном случае и получилось, я скачал 10.1.85.3 по ссылке с сайта, а у вас 10.1.82.76. Сегодня уже поздно, завтра вечером буду смотреть, если меня не опередят.

Посмотрите это место, возможно поможет (файл брал с диска).

Code:
  1. .text:00586B5B                 push    edx
  2. .text:00586B5C                 call    dword ptr [eax+0Ch] ; 5758D9
  3. .text:00586B5C                                         ; получение дискриптора для доступа к файлу
  4. .text:00586B5F                 mov     edi, eax
  5. .text:00586B61                 cmp     edi, ebx
  6. .text:00586B63                 jz      loc_586C15
  7. .text:00586B69                 mov     eax, [edi]
  8. .text:00586B6B                 lea     ecx, [ebp+var_20]
  9. .text:00586B6E                 push    ecx
  10. .text:00586B6F                 mov     ecx, edi
  11. .text:00586B71                 call    dword ptr [eax+8] ; 575053
  12. .text:00586B71                                         ; получение размера файла
  13. .text:00586B74                 test    al, al
  14. .text:00586B76                 jz      loc_586C08
  15. .text:00586B7C                 lea     eax, [ebp+var_10]
  16. .text:00586B7F                 push    eax
  17. .text:00586B80                 lea     eax, [ebp+var_20]
  18. .text:00586B83                 push    eax
  19. .text:00586B84                 call    sub_423783
  20. .text:00586B89                 pop     ecx
  21. .text:00586B8A                 pop     ecx
  22. .text:00586B8B                 test    al, al
  23. .text:00586B8D                 jnz     short loc_586C08
  24. .text:00586B8F                 mov     eax, [esi]
  25. .text:00586B91                 mov     ecx, esi
  26. .text:00586B93                 call    dword ptr [eax+20h] ; 545549
  27. .text:00586B96                 test    al, al
  28. .text:00586B98                 jz      short loc_586C08
  29. .text:00586B9A                 push    1
  30. .text:00586B9C                 push    ebx
  31. .text:00586B9D                 push    1
  32. .text:00586B9F                 push    10000h
  33. .text:00586BA4                 mov     [ebp+var_C], ebx
  34. .text:00586BA7                 call    sub_752590
  35. .text:00586BAC                 add     esp, 10h
  36. .text:00586BAF                 push    [ebp+var_10]
  37. .text:00586BB2                 mov     [ebp+ThreadId], eax
  38. .text:00586BB5                 mov     eax, [esi]
  39. .text:00586BB7                 mov     ecx, esi
  40. .text:00586BB9                 call    dword ptr [eax+38h] ; 546794
  41. .text:00586BBC                 cmp     [ebp+ThreadId], ebx
  42. .text:00586BBF                 jz      short loc_586C08
  43. .text:00586BC1                 mov     [ebp+var_1], 1
  44. .text:00586BC5
  45. .text:00586BC5 loc_586BC5:                             ; CODE XREF: sub_5869D7+215j
  46. .text:00586BC5                 mov     eax, [edi]
  47. .text:00586BC7                 lea     ecx, [ebp+var_C]
  48. .text:00586BCA                 push    ecx             ; int
  49. .text:00586BCB                 push    10000h          ; nNumberOfBytesToRead
  50. .text:00586BD0                 push    [ebp+ThreadId]  ; int
  51. .text:00586BD3                 mov     ecx, edi
  52. .text:00586BD5                 call    dword ptr [eax+10h] ; 57522a
  53. .text:00586BD5                                         ; чтение файла в цикле кусками, пока не прочитается весь.
  54. .text:00586BD8                 test    al, al
  55. .text:00586BDA                 jz      short loc_586BF0
  56. .text:00586BDC                 push    [ebp+var_C]
  57. .text:00586BDF                 mov     eax, [esi]
  58. .text:00586BE1                 push    [ebp+ThreadId]
  59. .text:00586BE4                 mov     ecx, esi
  60. .text:00586BE6                 call    dword ptr [eax+24h] ; 546736 ?????????????
  61. .text:00586BE9                 cmp     [ebp+var_C], ebx
  62. .text:00586BEC                 ja      short loc_586BC5
  63. .text:00586BEE                 jmp     short loc_586BF3
  64. .text:00586BF0 ; ---------------------------------------------------------------------- -----
  65. .text:00586BF0


-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше




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

Создано: 24 октября 2010 20:22
· Личное сообщение · #9

это только для файла на диске =\

хотя sub_5869D7 где это всё так же вызывается и перед открытием url, но смотря вверх что его вызывает через пару ходов оказывается что перед вызывом sub_5869D7 уже всё загружено в память, хотя если хукать именно sub_5869D7 то ничего в момент его вызова не загружено =\

пока придумал только смотреть то место где в память пишется файл и каждый раз проверять не конец ли файла пишется в память да и если что-то изменить в это время, то просто не грузится ролик =\


 eXeL@B —› Вопросы новичков —› Реверсинг Adobe Flash Player
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати