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

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

Ранг: 30.1 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 24 апреля 2012 01:50 · Поправил: Kuzya69
· Личное сообщение · #1

Проблема в следующем.
Нашел ОЕП, сдампил, вроде разобрался с ресурсами (был один инвалидный адрес, оказался ExitProcess), но не запускается.
Нашел первый "косяк"
Внутри распака и оригинала есть такое.
Code:
  1. 00455EBF     Call 003864C6

В оригинале, соответственно эта пп-мма выполняется.
А в распаке этой секции просто нет, вот и вылетает при запуске.
Как мне поступить? Вернее как-бы Вы поступили?




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 27 апреля 2012 11:23
· Личное сообщение · #2

Kuzya69 пишет:
1)создал новую секцию2) До прихода в ОЕП дважды вызывался VirtualAlloc. И создавал секции до ImageBase. После ОЕП секции создавались после ImageBase.(поэтому я их не трогал).

Офигеть я ему рассказывал как правильно расспаковать надо было а ты гланды через выдираешь

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.


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

Ранг: 30.1 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 27 апреля 2012 15:30 · Поправил: Kuzya69
· Личное сообщение · #3

Да я и не говорю, что это моя заслуга. Я просто рассказал как это сделал, с Вашей помощью.
Я начал спасибо проставлять. А форум сразу много в один день не дает поставить.
А вопросы другие задавал, чтоб понять, как это происходит. Действовать по шаблону, я не люблю, я пытаюсь понять, и может быть, сделать по своему.
Извините, если кого обидел.
Кстати попутно возник еще один вопрос. Таких мест в программе, где сначала раскриптовка, выполнение, и потом закриптовка, оказалось по меньшей мере 14. Я попытался занопить все раскриптовщики и закриптовщики (чтоб следовать "хорошему тону"), но оказалось, что не все места можно отключать. В некоторых местах, код меняется, по ходу выполнения программы. И полностью избавиться от крипторов-декрипторов не получается.
Видимо надо искать весь код, который подгружается, в "места с переменным кодом", и расшифровывать все это отдельно, собирать как подпрограмму, и потом вклинивать в основной код?
Это и есть виртуальная машина?




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

Создано: 27 апреля 2012 16:05 · Поправил: ARCHANGEL
· Личное сообщение · #4

Kuzya69
Из вашего описания я понял, что это не ВМ, а, скорее, антидамп. А там хз, файл для исследований вы не выложили, мало ли, что там. Ну, можно попробовать так - останавливаетесь в программе на таком месте, где ещё не был вызван ни один из этих VirtualAlloc, который выделяет память для "расшифровщиков", открываете карту памяти и смотрите, где же есть такое место в виртуальной памяти, куда можно было бы всандалить весь код, записанный таким образом по адресам, выделенным через VirtualAlloc. Нашли такое место, записали адрес начала этой области. Теперь скриптом топаете до ОЕР, попутно останавливаясь на каждом целевом VirtualAlloc,до вызова самой API прописываете адрес, который должен попасть в ваш регион виртуальной памяти так, чтоб не было фрагментации, потом даёте VirtualAlloc отработать, и т.д. Когда дойдёте до ОЕР, можно будет снимать дамп. Снимаете дамп с образа, и отдельно дампите тот новосозданный регион, потом тот регион с антидампами прикручиваете к дампу образа в виде отдельной секции. Дальше восстанавливаете импорт, ресурсы, релоки или что вам ещё надо будет делать, то и делайте.

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




Ранг: 30.1 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 27 апреля 2012 16:17
· Личное сообщение · #5

ARCHANGEL
...файл для исследований вы не выложили, мало ли, что там...
Как?
Вот-же в третьем сообщении
http://zalil.ru/33126971
Еще жива ссылка




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

Создано: 27 апреля 2012 16:42
· Личное сообщение · #6

Kuzya69
А, да, точно. Блин, не заметил, извините.

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





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

Создано: 27 апреля 2012 21:24
· Личное сообщение · #7

вот tutorial от PassingThrough
http://ar.rghost.net/37800841

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

Ранг: 30.1 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 27 апреля 2012 21:58 · Поправил: Kuzya69
· Личное сообщение · #8

AKAB
Отлично, давно хотел посмотреть на скрипт. Меня одно слово "скрипт" заставляло трепетать.
PS
Прошу прощения, что ввел в заблуждение. Ничего там похожего на переменный код нет. Просто по невнимательности я сравнил разные участки. Вот и заклинило. Все и так руками распаковалось на ура. Правда 40 раз.
Вот теперь немного понял как скрипт пишется.
Еще-бы какую статью, по написанию скриптов почитать?



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

Создано: 27 апреля 2012 22:35
· Личное сообщение · #9

Kuzya69
Было несколько видео-туторов по распаковке и одновременно написанию скриптов для простых пакеров на тутс4ю, но кто выкладывал не помню. Да и хелп к ODbgScript не плохой, не сложный скрипт с онлайн переводчиком, за пол часа легко накатать можно.




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 28 апреля 2012 08:52 · Поправил: ClockMan
· Личное сообщение · #10

Kuzya69 пишет:
Я начал спасибо проставлять. А форум сразу много в один день не дает поставить

Я за спасибо неработаю просто хотел тебе помочь и понять что лучше восстановить криптованный код чем топорный способом пьяного лесоруба прикручивать разные секциии.. написал скрипт для восстоновления крипто кода. восстановил твой файл и нормально он запускается ;)
--> fixed <--

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





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

Создано: 28 апреля 2012 12:05
· Личное сообщение · #11

Видео от PassingThrough лично мне ужасно не понравилось. Мораль всего видео в том, чтоб запустить скриптос. Как он был создан, как автор узнал о методе прохода на ОЕР, о том, что оригинальный адрес ExitProcess будет записываться до адреса переходника - ничего нет. И да - это антидампы.

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




Ранг: 30.1 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 28 апреля 2012 14:00 · Поправил: Kuzya69
· Личное сообщение · #12

ClockMan
Я тоже, перед сообщением от АКАВА, распаковал , без прикручивания секции. Скажем так. Совсем выкинув крипто-декриптор.
Ставя "New original here", выполняя распаковку, и затем нопил сами крипторы и декрипторы. Долго но получилось.
Почему я сначала сделал с сохранением крипто-декриптора? По совету монашек: "А вдруг, сказала монашка, одевая
презерватив на морковку" . Ну и заодно научился секции создавать.
За скрипт, спасибо (хоть ты за это и не работаешь )
ARCHANGEL
Ну я, в основном, из тутора рад был скрипту (как наглядному материалу), хотя он у меня почему-то не запустился.
Вылетел на "ALLOC 100". Но метод нахождения ОЕП работает и на двух других, более свежих версиях этой программы. На остальных еще не успел проверить.

У меня цель, это научиться распаковывать эти программы.
И еще есть одна задачка.
В этих программах, автор закрывает кнопку "DMA". Она есть, эта кнопка, но я так думаю, что она доступна лишь определенным пользователям.
У кого лицензия разрешает это.
Не подскажите по каким признакам найти место, где эта кнопка должна стать "видимой" ?
Саму кнопку теперь, только на этой версии, я могу "включить".
Но на других версиях программы, похожих мест я не могу найти.




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 28 апреля 2012 14:12
· Личное сообщение · #13

ARCHANGEL пишет:
Как он был создан, как автор узнал о методе прохода на ОЕР

Методом первого тыка
ARCHANGEL пишет:
о том, что оригинальный адрес ExitProcess будет записываться до адреса переходника

А как вы раньше восстонавливали импорт?,это единственный способ выйти на код прота отвечающего за заполнения таблички импорта...
Kuzya69 пишет:
За скрипт, спасибо (хоть ты за это и не работаешь :s1

Скрипт будет работать только для этой пограммы,чтобы он заработал на другой проге нужно будет внести в него изминения...
Ну и до куче вам скрипт нахождения OEP


ec64_28.04.2012_EXELAB.rU.tgz - Find_OEP.txt

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.


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

Ранг: 3.2 (гость), 6thx
Активность: 0.020
Статус: Участник

Создано: 28 апреля 2012 14:15 · Поправил: CTPaHHuk
· Личное сообщение · #14

помогите распаковать
http://www.realmcrafter.com/demo/RealmCrafter_DEMO2.exe
330 Мб
PC Guard 5
только распаковать Architect.exe, Armoury.exe, Gubbin Tool.exe, Rock Editor.exe, ScriptsEditor.exe, Terrain Editor.exe, Tree Editor.exe (я знаю что эта чистая демка)

ClockMan распаковал мне уже Game Editor.exe, Game Client.exe и Server.exe!
я ему написал чтобы он мне дораспаковывал те экзешники которые находятся в папке установленной программы? но что то пока ответа не дождался!
если нужно могу отдельно экзешники залить чтобы софт весь не качать!

ClockMan если не трудно напиши и мне скипт для нахождения OEP!




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 28 апреля 2012 14:27
· Личное сообщение · #15

CTPaHHuk пишет:
ClockMan если не трудно напиши и мне скипт для нахождения OEP!

? он для всех версий катит....

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




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

Создано: 28 апреля 2012 14:51
· Личное сообщение · #16

7 файлов - это очень мало. Надо бы штук 50-60 файлов предложить распаковать - тогда бы он сразу согласился.

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


Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 28 апреля 2012 14:52
· Личное сообщение · #17

CTPaHHuk
На выходных свободная минута появится расспакую...

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





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

Создано: 28 апреля 2012 15:09
· Личное сообщение · #18

ClockMan
Я догадываюсь, как он это сделал, но если это тьютор - то надо расписывать, а не надеяться, что все догадаются.

А как вы раньше восстонавливали импорт?,это единственный способ выйти на код прота отвечающего за заполнения таблички импорта...

Та нет, это неправда. Я нашёл этот адрес путём трассировки переходника.

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





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 28 апреля 2012 17:04
· Личное сообщение · #19

CTPaHHuk
Для запросов вполне себе отдельный топик есть, где ты уже написал, не надо выпрашивать в других топиках.



Ранг: 30.1 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 05 мая 2012 20:58 · Поправил: Kuzya69
· Личное сообщение · #20

Ребята, еще раз здравствуйте.
Появилась еще одна проблема.
В той версии, что вы помогли распаковать, есть кнопка ДМА. Как включить эту кнопку разобрался. И после нажатия на нее,
открывается соответствующая форма.
Взял я следующую версию этой-же программы, кнопку активировал, но после активации, программа уходит "в лес"
тоесть открывается совсем не то, что нужно. Вобщем то место, которое должно осуществлять переход в создание нужной формы,
выглядит как "безусловный переход сам на себя".
Я нашел уже входы почти во все остальные формы, которые не закрыты. Но вход в нужную форму не могу найти.
Создается впечатление, что искать по шаблону нет смысла, видимо этот переход должен
идти сначала на распаковщик-декриптор, а уже потом создается форма.
Вопрос вот в чем.
Где лежит в дампе диалоговое окно(форма) я вижу. Да и программа Ресторатор эту форму видит, но как определить, какой участок кода
будет работать с этой формой, чтоб перенаправить туда зацикленный переход?
Вот маршрут для открывания похожей формы.
Соответственно нужная мне форма будет отличаться третьей частью.
Вот откуда должна начаться моя часть и не могу придумать метод поиска.
Code:
  1. ;--------После нажатия кнопки идет выбор маршрута.--------------------------------------------
  2. 0047C647    FF75 14                PUSH    DWORD PTR SS:[EBP+14]                     ; !!! Zagruzka parametrov okna posle press button eax=addr!!!
  3. 0047C64A    FF70 10                PUSH    DWORD PTR DS:[EAX+10]
  4. 0047C64D    FF75 10                PUSH    DWORD PTR SS:[EBP+10]
  5. 0047C650    FF70 14                PUSH    DWORD PTR DS:[EAX+14]
  6. 0047C653    FF75 0C                PUSH    DWORD PTR SS:[EBP+C]
  7. 0047C656    FF75 08                PUSH    DWORD PTR SS:[EBP+8]
  8. 0047C659    57                     PUSH    EDI
  9. 0047C65A    E8 F5FDFFFF            CALL    0047C454                              
  10. ;
  11. ;---------- Блок выбора подпрограммы и загрузки параметров-------------------------------------
  12. 0047C454    55                     PUSH    EBP                                       ; !!! Block Opredelenia okna [EAX+14]=addr form!!!
  13. 0047C455    8BEC                   MOV     EBP, ESP
  14. 0047C457    8B45 20                MOV     EAX, DWORD PTR SS:[EBP+20]
  15. 0047C45A    53                     PUSH    EBX
  16. 0047C45B    56                     PUSH    ESI
  17. 0047C45C    6A 01                  PUSH    1
  18. 0047C45E    85C0                   TEST    EAX, EAX
  19. 0047C460    5B                     POP     EBX
  20. 0047C461    74 10                  JE      SHORT 0047C473                        
  21. 0047C473    8B45 1C                MOV     EAX, DWORD PTR SS:[EBP+1C]
  22. 0047C476    83F8 28                CMP     EAX, 28
  23. 0047C479    77 71                  JA      SHORT 0047C4EC                      
  24. 0047C47B    74 5C                  JE      SHORT 0047C4D9                      
  25. 0047C47D    48                     DEC     EAX
  26. 0047C47E    48                     DEC     EAX
  27. 0047C47F    74 53                  JE      SHORT 0047C4D4                         
  28. 0047C481    83E8 0A                SUB     EAX, 0A
  29. 0047C484    74 46                  JE      SHORT 0047C4CC                         
  30. 0047C4CC    8B4D 08                MOV     ECX, DWORD PTR SS:[EBP+8]
  31. 0047C4CF    FF55 14                CALL    DWORD PTR SS:[EBP+14]                     ; !!! for 0C
  32. ;
  33. ;----------Это сама подпрограмма "Avto Scan"----------------------------------------------------
  34. 00434A96    B8 97764800            MOV     EAX, 487697                               ; Button "Avto Scan"
  35. 00434A9B    E8 C8250300            CALL    00467068                          
  36. 00434AA0    B8 742F0200            MOV     EAX, 22F74
  37. 00434AA5    E8 A6360300            CALL    00468150                               
  38. 00434AAA    6A 00                  PUSH    0
  39. 00434AAC    8D8D 80D0FDFF          LEA     ECX, DWORD PTR SS:[EBP+FFFDD080]
  40. 00434AB2    E8 0872FDFF            CALL    0040BCBF                                 
  41. 00434AB7    8365 FC 00             AND     DWORD PTR SS:[EBP-4], 0
  42. 00434ABB    80A5 DCD0FDFF 00       AND     BYTE PTR SS:[EBP+FFFDD0DC], 0
  43. 00434AC2    8D8D 80D0FDFF          LEA     ECX, DWORD PTR SS:[EBP+FFFDD080]
  44. 00434AC8    E8 4B9CFDFF            CALL    0040E718                                  ; "Working Process"
  45. 00434ACD    834D FC FF             OR      DWORD PTR SS:[EBP-4], FFFFFFFF
  46. 00434AD1    8D8D 80D0FDFF          LEA     ECX, DWORD PTR SS:[EBP+FFFDD080]
  47. 00434AD7    E8 DC72FDFF            CALL    0040BDB8                           
  48. 00434ADC    8B4D F4                MOV     ECX, DWORD PTR SS:[EBP-C]
  49. 00434ADF    64:890D 00000000       MOV     DWORD PTR FS:[0], ECX
  50. 00434AE6    C9                     LEAVE
  51. 00434AE7    C3                     RETN

Извините если много написал. Просто хотел чтоб было понятней.
http://zalil.ru/33188715
Вот сама прога, библиотека с ресурсами (в папке со скринами). Ну и еще файлы, которые прога просит, для запуска.

Ах, да а вот и маршрут от этой кнопки, заканчивающийся переходом "сам на себя"
Code:
  1. 0047C647    FF75 14                PUSH    DWORD PTR SS:[EBP+14]                     ; !!! Zagruzka parametrov okna posle press button eax=addr!!!
  2. ;...............................................................................
  3. 0047C65A    E8 F5FDFFFF            CALL    0047C454                         
  4. 0047C454    55                     PUSH    EBP                                       ; !!! Block Opredelenia okna !!!
  5. ;...............................................................................
  6. 0047C4CF    FF55 14                CALL    DWORD PTR SS:[EBP+14]                     ; !!! for 0C
  7. 004416DE    33C0                   XOR     EAX, EAX                                  ; !!! Block DMA !!!
  8. 004416E0    3881 270A0000          CMP     BYTE PTR DS:[ECX+A27], AL
  9. 004416E6    90                     NOP                                               ; JE SHORT 004416FC ---> nop Vremenno for DMA
  10. 004416E7    90                     NOP
  11. 004416E8    68 00010000            PUSH    100
  12. 004416ED    FF15 00C34800          CALL    DWORD PTR DS:[48C300]                     ; kernel32.GetCurrentProcess
  13. 004416F3    50                     PUSH    EAX
  14. 004416F4    FF15 04C34800          CALL    DWORD PTR DS:[48C304]                     ; kernel32.SetPriorityClass
  15. 004416FA  - EB FE                  JMP     SHORT 004416FA                            ; !!! jmp short 4416fa ---> jmp 00.... !!! DMA
  16.  



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


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