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

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

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

Создано: 12 марта 2012 11:01
· Личное сообщение · #1

Добрый день!

Я скачал игрушку. Все хорошо, но она перед выходом открывает браузер. Вот кусок кода, открывающий ссылку на сайт производителя:

Code:
  1. 005C2580  /$  B8 80100000   MOV EAX,1080
  2. 005C2585  |.  E8 56E03200   CALL RunningS.008F05E0
  3. 005C258A  |.  8B8424 841000>MOV EAX,DWORD PTR SS:[ESP+1084]
  4. 005C2591  |.  8378 18 10    CMP DWORD PTR DS:[EAX+18],10
  5. 005C2595  |.  72 05         JB SHORT RunningS.005C259C
  6. 005C2597  |.  8B40 04       MOV EAX,DWORD PTR DS:[EAX+4]
  7. 005C259A  |.  EB 03         JMP SHORT RunningS.005C259F
  8. 005C259C  |>  83C0 04       ADD EAX,4
  9. 005C259F  |>  68 24080000   PUSH 824
  10. 005C25A4  |.  8D4C24 3C     LEA ECX,DWORD PTR SS:[ESP+3C]
  11. 005C25A8  |.  51            PUSH ECX
  12. 005C25A9  |.  50            PUSH EAX
  13. 005C25AA  |.  E8 01B3FFFF   CALL RunningS.005BD8B0
  14. 005C25AF  |.  83C4 0C       ADD ESP,0C
  15. 005C25B2  |.  6A 1C         PUSH 1C
  16. 005C25B4  |.  33D2          XOR EDX,EDX
  17. 005C25B6  |.  68 E077AB00   PUSH RunningS.00AB77E0                   ; UNICODE "url.dll,FileProtocolHandler "
  18. 005C25BB  |.  8D4C24 08     LEA ECX,DWORD PTR SS:[ESP+8]
  19. 005C25BF  |.  C74424 20 070>MOV DWORD PTR SS:[ESP+20],7
  20. 005C25C7  |.  C74424 1C 000>MOV DWORD PTR SS:[ESP+1C],0
  21. 005C25CF  |.  66:895424 0C  MOV WORD PTR SS:[ESP+C],DX
  22. 005C25D4  |.  E8 87B8F9FF   CALL RunningS.0055DE60
  23. 005C25D9  |.  8D4424 38     LEA EAX,DWORD PTR SS:[ESP+38]
  24. 005C25DD  |.  50            PUSH EAX
  25. 005C25DE  |.  8D4C24 04     LEA ECX,DWORD PTR SS:[ESP+4]
  26. 005C25E2  |.  51            PUSH ECX
  27. 005C25E3  |.  8D5424 24     LEA EDX,DWORD PTR SS:[ESP+24]
  28. 005C25E7  |.  52            PUSH EDX
  29. 005C25E8  |.  E8 5371FEFF   CALL RunningS.005A9740
  30. 005C25ED  |.  83C4 0C       ADD ESP,0C
  31. 005C25F0  |.  837C24 18 08  CMP DWORD PTR SS:[ESP+18],8
  32. 005C25F5  |.  72 0D         JB SHORT RunningS.005C2604
  33. 005C25F7  |.  8B4424 04     MOV EAX,DWORD PTR SS:[ESP+4]
  34. 005C25FB  |.  50            PUSH EAX
  35. 005C25FC  |.  E8 9ECB3200   CALL RunningS.008EF19F
  36. 005C2601  |.  83C4 04       ADD ESP,4
  37. 005C2604  |>  837C24 34 08  CMP DWORD PTR SS:[ESP+34],8
  38. 005C2609  |.  8B4424 20     MOV EAX,DWORD PTR SS:[ESP+20]
  39. 005C260D  |.  73 04         JNB SHORT RunningS.005C2613
  40. 005C260F  |.  8D4424 20     LEA EAX,DWORD PTR SS:[ESP+20]
  41. 005C2613  |>  6A 01         PUSH 1                                   ; /IsShown = 1
  42. 005C2615  |.  6A 00         PUSH 0                                   ; |DefDir = NULL
  43. 005C2617  |.  50            PUSH EAX                                 ; |Parameters
  44. 005C2618  |.  68 C477AB00   PUSH RunningS.00AB77C4                   ; |FileName = "rundll32.exe"
  45. 005C261D  |.  68 B877AB00   PUSH RunningS.00AB77B8                   ; |Operation = "open"
  46. 005C2622  |.  6A 00         PUSH 0                                   ; |hWnd = NULL
  47. 005C2624  |.  FF15 2C05A900 CALL DWORD PTR DS:[<&SHELL32.ShellExecut>; \ShellExecuteW
  48. 005C262A  |.  83F8 20       CMP EAX,20
  49. 005C262D  |.  7F 0E         JG SHORT RunningS.005C263D
  50. 005C262F  |.  50            PUSH EAX
  51. 005C2630  |.  68 9877AB00   PUSH RunningS.00AB7798                   ; ASCII "OpenURL failed with error %i
  52. "
  53. 005C2635  |.  E8 465A0000   CALL RunningS.005C8080
  54. 005C263A  |.  83C4 08       ADD ESP,8
  55. 005C263D  |>  837C24 34 08  CMP DWORD PTR SS:[ESP+34],8
  56. 005C2642  |.  72 0D         JB SHORT RunningS.005C2651
  57. 005C2644  |.  8B4C24 20     MOV ECX,DWORD PTR SS:[ESP+20]
  58. 005C2648  |.  51            PUSH ECX
  59. 005C2649  |.  E8 51CB3200   CALL RunningS.008EF19F
  60. 005C264E  |.  83C4 04       ADD ESP,4
  61. 005C2651  |>  81C4 80100000 ADD ESP,1080
  62. 005C2657  \.  C3            RETN


Я нашел способ занопить эти строчки:

Code:
  1. 005C2613  |>  6A 01         PUSH 1                                   ; /IsShown = 1
  2. 005C2615  |.  6A 00         PUSH 0                                   ; |DefDir = NULL
  3. 005C2617  |.  50            PUSH EAX                                 ; |Parameters
  4. 005C2618  |.  68 C477AB00   PUSH RunningS.00AB77C4                   ; |FileName = "rundll32.exe"
  5. 005C261D  |.  68 B877AB00   PUSH RunningS.00AB77B8                   ; |Operation = "open"
  6. 005C2622  |.  6A 00         PUSH 0                                   ; |hWnd = NULL
  7. 005C2624  |.  FF15 2C05A900 CALL DWORD PTR DS:[<&SHELL32.ShellExecut>; \ShellExecuteW


Но это как-то по варварски

Можно ли как-то поискуснее и меньшей кровью?




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

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

Да занопь и вместо CALL:
Code:
  1. MOV EAX,21


Либо в 005C260D:
Code:
  1. JMP 005C263D




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

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

по адресу 005C260D вписать JMP 005C263D



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

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

tihiy_grom пишет:
по адресу 005C260D вписать JMP 005C263D


Это не прокатило, игра вообще не запускается:

mono: failed to load dll




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

stabud

--> Здесь <-- говорится следующее.

If the function succeeds, it returns a value greater than 32

а, значит, по адресу 005C2613 впиши:
Code:
  1. or al,0FF
  2. jmp short 005C262A


-----
Stuck to the plan, always think that we would stand up, never ran.




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

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

ARCHANGEL

Та же ошибка вываливается.

Не пойму Если тупо нопить весь вызов ShellExecute, работает как надо. По логике вещей, должен работать джамп предложенный tihiy_grom и Airenikus, но валится ошибка.

Видно не судьба

Но на всякий случай ссыль на игру, мало ли...: http://gametop.com/ru/download-free-games/running-sheep/




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

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

stabud делай как написал тебе ARCHANGEL, а измененный exe не забудь переименовать в RunningSheep.exe и будет тебе счастье



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

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

не забудь переименовать в RunningSheep.exe

Как же я не подумал об этом Спасибо всем кто откликнулся. Я выбрал вариант Airenikus и tihiy_grom поскольку в нем меньше изменений.


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


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