неприступный аспротект

Тема в разделе "WASM.BEGINNERS", создана пользователем babandr, 24 ноя 2005.

  1. babandr

    babandr New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2005
    Сообщения:
    29
    Адрес:
    Voronesh
    Есть программа, запакованная , по мнению PEiD, ASProtect 2.0x Registered -> Alexey Solodovnikov.

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

    1) Не запускается гадина под отладчиком. Ни софтайсу, ни оле не помогают никакие плугины.

    2) если запустить софтайс и попробовать скормить программу символьному лоадеру, то софтайс не останавливается на точке входа. Это, на мой взгляд, происходило оттого, что все секции программы имели одинаковый атрибут C0000040. Я изменил атрибут секции, в которой была точка входа, на E0000020 и софтайс выскочил, но программа, не выходя из распаковывающей части, проинформировала меня об изменении контрольной суммы и завершилась.

    3) Я попробовал проанализировать прогу на предмет нахождения алгоритма вычисления контрольной суммы , но софтайс как то криво работал (такое впечатление, что он интерпрерировал очередную инструкцию лишь когда на нее указывал eip ), да и что бы это мне дало?- для иды все равно программа была неисполняемыми данными и подправить exe не удалось бы.

    Что бы вы делали на моём месте?
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    Выпил йаду.
     
  3. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    толи яд был плохой...
     
  4. babandr

    babandr New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2005
    Сообщения:
    29
    Адрес:
    Voronesh
    :)) Ну а поконструктивнее что-нибудь?
     
  5. 123dragon

    123dragon New Member

    Публикаций:
    0
    Регистрация:
    12 янв 2005
    Сообщения:
    46
    Адрес:
    Russia
    Попробуй скрипт
    Код (Text):
    1. // ASProtect 1.32 and greater (except ASProtect 2.0 alpha) OEP finder by sanniassin::REVENGE Crew
    2. // Ignore all exceptions
    3. // Clear all breakpoints
    4. // Tested on WinXP only
    5.  
    6. var x
    7. var y
    8. var is_DLL
    9.  
    10. mov x,esp
    11. sub x,48
    12. bphws x,"r"
    13. mov y,[eip]
    14. and y,000000FF
    15. cmp y,60
    16. jne zzz
    17. mov is_DLL,1
    18.  
    19. zzz:
    20. run
    21. mov y,[eip]
    22. cmp y,01B80875
    23. jne zzz
    24. bphwc x
    25. find edi,#83C404010424C3#
    26. mov x,$RESULT
    27. add x,6
    28. bp x
    29. run
    30. bc x
    31. sto
    32. mov x,eip
    33.  
    34. findcall:
    35. dec x
    36. mov y,[x]
    37. cmp y,5B5E5F5D
    38. jne findcall
    39. sub x,8
    40. go x
    41. sti
    42. rtr
    43. sto
    44. mov x,eip
    45. and x,0000FFFF
    46. cmp x,0
    47. je no_VM_on_OEP
    48.  
    49. VM_on_OEP:
    50. msg "OEP found! OEP stolen."
    51. jmp pause
    52.  
    53. no_VM_on_OEP:
    54. mov x,esp
    55. cmp is_DLL,1
    56. jne is_exe
    57. add x,10
    58. jmp label_9
    59. is_exe:
    60. add x,8
    61. label_9:
    62. bphws x,"r"
    63. run
    64. mov y,eip
    65. dec y
    66. mov y,[y]
    67. and y,000000FF
    68. cmp y,5C
    69. jne label_9
    70. bphwc x
    71. cmp is_DLL,1
    72. jne is_exe2
    73. find eip,#8944241C61FFE0#
    74. add $RESULT,5
    75. bp $RESULT
    76. run
    77. bc $RESULT
    78. sto
    79. jmp msg
    80. is_exe2:
    81. mov x,eax
    82. go x
    83. msg:
    84. msg "OEP found! OEP not stolen."
    85.  
    86. pause:
    87. pause