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

 eXeL@B —› Вопросы новичков —› Помогите распаковать новый uTorrent 2.2 RC2
. 1 . 2 . >>
Посл.ответ Сообщение

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

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

download.utorrent.com/2.2/utorrent.exe
Раньше просто upx-ом распаковывалось, сейчас не хочет. Файл после упаковки модифицировался, как минимум добавлена еще одна секция. Попробовал Quick Unpack и разные RL!deUPX - ничего не выходит.



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

Создано: 23 октября 2010 14:19
· Личное сообщение · #2

Вручную распаковывается за 5 сек как обычный upx, только перед дампом всем секциям нужно установить Full Access
OEP - 0048BD64
IAT START - 0048CFFC
IAT SIZE - 000008A8



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

Создано: 23 октября 2010 15:37
· Личное сообщение · #3

Как вручную? По тем мануалам что нашел в инете и тут на сайте ничего не выходит. Загружаю exe в OllyDbg, ищу по Ctrl-F popap, нахожу какой-то по адресу 004db8c7, после которого идет jmp. Ставлю на него брекпоинт, F9 - вываливается Access violation где-то в ntdll, потом Shift-F9 и Debbuged program was unable to process exeption.



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

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

Как вручную?
1. Ставишь железный бряк в Олли на адрес ОЕП который дал Vovan666 и делаешь дамп с помощью PETools.
2. Прикручиваешь импорт по данным который дал Vovan666 с помощью ImpREC.
3. Можешь при желании разобраться с секцией ресурсов, а затем прикрутить импорт.
4. Говоришь спасибо Vovan666 за предоставленную информацию.

ищу по Ctrl-F popap ???????????
нужно искать POPAD, нужный тебе находится здесь:

Code:
  1. 004FF2BB   .  61            POPAD
  2. 004FF2BC   .  8D4424 80     LEA EAX,DWORD PTR SS:[ESP-80]
  3. 004FF2C0   >  6A 00         PUSH 0
  4. 004FF2C2   .  39C4          CMP ESP,EAX
  5. 004FF2C4   .75 FA         JNZ SHORT utorrent.004FF2C0
  6. 004FF2C6   .  83EC 80       SUB ESP,-80
  7. 004FF2C9   .- E9 96CAF8FF   JMP utorrent.0048BD64


а JMP utorrent.0048BD64 ведет на ОЕП

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




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

Создано: 23 октября 2010 16:19
· Личное сообщение · #5

gena-m
Железные брекпоинт на тот OEP срабатывает, но нак найти его? Не буду же я для каждой версии uTorrent-a тут OEP и остальные данные спрашивать? Как найти тот popad правильный? Если там делов на 5 секунд, можно хотя бы коротенькую инструкцию и какие инструменты использовать? У меня упорно отладка валится при брекпоинте на тот popad с jmp-ом, какой бы брекпоинт я не ставил - обычный или железный.



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

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

нужно искать POPAD, нужный тебе находится здесь:
Спасибо. Блин, во всех инструкциях jmp идет сразу после popad.

И что-то в ImpREC я ни IAT START ни IAT SIZE не нахожу.



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

Создано: 23 октября 2010 16:29
· Личное сообщение · #7

К чему все эти pushad\popad тупо прокручиваешь весь код вниз до нулей, последний jmp=jmp(oep)



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

Создано: 23 октября 2010 16:39
· Личное сообщение · #8

можно хотя бы коротенькую инструкцию

Коротенькая инструкция:

стоим на ЕП и видим 004FE710 PUSHAD, приходит мысль что неплохо было бы нажать 1 раз F8.
Обнаруживаем что в стеке, при выполнении команды PUSHAD сохранились все регистры.
Набираем в окне дампа (Ctrl+G) адрес указателя вершины стека 30ffa4 и нажимаем ОК.
Видим в окне дампа такое:

0030FFA4 38 07 91 7C FF FF FF FF F0 FF 30 00 C4 FF 30 00 8‘|яяяяря0.Дя0.
0030FFB4 00 C0 FD 7F 94 EB 90 7C B0 FF 30 00 00 00 00 00 .Аэ”лђ|°я0.....

Левой клавишей мыша выбираем 38 07 91 7C и нажимаем правую клавишу мыша и в меню бряки выбираем железный на доступ. Нажимаем F9 и прерываемся в этом месте ниже POPAD:
Code:
  1. 004FF2BB   .  61            POPAD
  2. 004FF2BC   .  8D4424 80     LEA EAX,DWORD PTR SS:[ESP-80]
  3. 004FF2C0   >  6A 00         PUSH 0
  4. 004FF2C2   .  39C4          CMP ESP,EAX
  5. 004FF2C4   .75 FA         JNZ SHORT utorrent.004FF2C0
  6. 004FF2C6   .  83EC 80       SUB ESP,-80
  7. 004FF2C9   .- E9 96CAF8FF   JMP utorrent.0048BD64


Дальше смотришь мой пост выше.

У меня упорно отладка валится при брекпоинте на тот popad с jmp-ом
1. Выбрось все плагины.
2. Скачай чистую Олии и работай с ней.
3. Используй только железные бряки, если простые не умеешь.

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




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

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

gena-m
Vovan666
Спасибо.

То есть. Последовательность действий примерно такая:
1. Загружаю в OllyDbg v2.0 uTorrent.exe.
2. Пролистываю вниз до нулей.
3. Ставлю брекпоинт на последний JMP utorrent.0048BD64 (в данном случае)
4. F9, F8 - оказываюсь на OEP.
5. В View->Memory map на всех секциях с owher uTorrent делаю Set access -> Full
6. Запускаю PETools, Dump Full на процессе uTorrent, сохраняю exe в файл.
7. Запускаю ImpREC и ...
Вот тут затык. Не пойму куда тут вбивать эти IAT START ни IAT SIZE. Ни разу еще импорт не восстанавливал. И как определить эти IAT START ни IAT SIZE?



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

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

И что-то в ImpREC я ни IAT START ни IAT SIZE не нахожу.
Внизу слева есть три окошка
OEP - адрес ОЕП-400000 =8BD64
RVA - IAT START-400000= 8CFFC
Size - IAT SIZE= 8A8

И не забудь - вверху есть окошко (Attach to an Active Process) и там выбери процесс с именем utorrent.

И как определить эти IAT START ни IAT SIZE? Читай статьи по распаковке, а лучше --> это. <--

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




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

Создано: 23 октября 2010 17:07 · Поправил: StUser
· Личное сообщение · #11

gena-m
Значит дальше так?
7. Запускаю ImpREC, выбираю процесс uTorrent (он все еще висит остановленный в OlleDbg на OEP)
8. вбиваю в ImpREC OEP=8BD64, RVA=8CFFC, Size=8A8
9. нажимаю GetImports - все dll-ки valid:YES
10. Жму Fix Dump, выбираю Dumped.exe, сохраненный из PETools, получаю Dumped_.exe
Что дальше? Полученый Dumped_.exe при запуске валится по адресу Offset: 0008bd98


Добавленно.
Ага, кажется понял. Надо выставить соответствующие атрибыты секциям в exe. Пока тупо вбил в HIEW все единица в атрибуты всех секций. Вроде, работает, но думаю это не совсем правильно.



Ранг: 129.0 (ветеран), 116thx
Активность: 0.060
Статус: Участник

Создано: 23 октября 2010 17:15 · Поправил: verdizela
· Личное сообщение · #12

StUser
Если в олли стоиш на оеп, смотриш и запоминаеш(или копируеш адрес). Далее скопированный адрес оеп в олли - 400000 = что получилось вводиш в имреке в поле оеп, жмеш AutoSearch, далее жмеш GetImports, после этого FixDump и сохраняеш.
А вообще лучше бы почитал туторов по теме распаковки, их полно и есть подробное описание, как пользоваться ImpRec и т.д.

-----
We do what we want because we can.




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

Создано: 23 октября 2010 17:29
· Личное сообщение · #13

Vovan666
gena-m
verdizela
Спасибо! Вроде, получилось. Не понятно, только одно. Ведь выставлял права на секции в OllyDbg, а в окончательном exe все-равно прав на какую-то секцию (вроде UPX1) не хватает.



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

Создано: 23 октября 2010 17:34
· Личное сообщение · #14

Можно откорректировать и просмотреть права доступа к секциям в PETools, я обычно через него делаю а не в Олли.

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





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

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

StUser пишет:

download.utorrent.com/2.2/utorrent.exe
Раньше просто upx-ом распаковывалось, сейчас не хочет. Файл после упаковки модифицировался, как минимум добавлена еще одна секция. Попробовал Quick Unpack и разные RL!deUPX - ничего не выходит.



я сделал tutrial специально для тебя
www.mediafire.com/?ytrrhjtck5mgwdk

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


Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 24 октября 2010 05:36
· Личное сообщение · #16

Tutor это правильно!
PS а что за прога? сразу в swf пишет или конвертнул просто потом?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





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

Создано: 24 октября 2010 07:04
· Личное сообщение · #17

Isaev пишет:
PS а что за прога? сразу в swf пишет или конвертнул просто потом?

portable_InstantDemo.v7.0.0



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

Создано: 24 октября 2010 12:56 · Поправил: StUser
· Личное сообщение · #18

AKAB
Спасибо. Примерно так и делал. Только дампил PETools.
Заметил одну проблему с распакованным таким образом uTorrent-ом. Если он уже запущен, то добавлении торрентов из браузеров или просто кликом на *.torrent файле не срабатывает - не появляется окно добавления закачки. Что это может быть?

Добавленно.
А если дампить с помощью ImpREC, как в туторе AKAB - то все нормально. Хотя, скорей-всего, это я первый раз с PETools-ом где-то наглючил. AKAB, еще раз спасибо!



Ранг: 129.0 (ветеран), 116thx
Активность: 0.060
Статус: Участник

Создано: 24 октября 2010 13:57
· Личное сообщение · #19

StUser пишет:
Только дампил PETools.Заметил одну проблему с распакованным таким образом uTorrent-ом. Если он уже запущен, то добавлении торрентов из браузеров или просто кликом на *.torrent файле не срабатывает - не появляется окно добавления закачки. Что это может быть?

Скорее всего был косяк с настройками в PETools.

-----
We do what we want because we can.




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

Создано: 24 октября 2010 17:32 · Поправил: StUser
· Личное сообщение · #20

verdizela
Скорей-всего.

Я тут подумал, для моих целей, возможно, и распаковывать не надо.
Если я в оригинальный exe вставлю перед jmp-ом на OEP что-то типа:
Code:
  1. 004FF2C9  C605 DAAE4000 EB       MOV BYTE PTR DS:[40AEDA],0EB
  2. 004FF2D0  E9 8FCAF8FF           JMP 0048BD64

То никаких косяков по-идее не должно вылезти? Я там просто меняю условный переход на безусловный. Или адрес этого jmp-а будет меняться в зависимости от системы?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 24 октября 2010 18:25
· Личное сообщение · #21

От системы адреса не меняются, если только это не DLL она по разным адресам грузиться может.

-----
Yann Tiersen best and do not fuck




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

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

PE_Kill пишет:
От системы адреса не меняются, если только это не DLL она по разным адресам грузиться может.

В семерке часто бывает, что грузит куда попало.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

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

Слышал про эту фишку, если она включена. Но разве для нее не надо релоков?

-----
Yann Tiersen best and do not fuck





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

Создано: 25 октября 2010 00:51 · Поправил: 4kusNick
· Личное сообщение · #24

На 7x64 оеп такой же.

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




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

Создано: 25 октября 2010 17:45 · Поправил: StUser
· Личное сообщение · #25

То есть сегмент памяти, куда распаковывается код, может меняться и MOV BYTE PTR DS:[40AEDA],0EB может записать патч не туда? Тогда как лучше патчить без распаковки?
Придумал пока такой вариант, вместо:
Code:
  1. 004FF2B8    FFD5            CALL EBP
  2. 004FF2BA    58              POP EAX
  3. 004FF2BB    61              POPAD
  4. 004FF2BC    8D4424 80       LEA EAX,[ESP-80]
  5. 004FF2C0    6A 00           PUSH 0
  6. 004FF2C2    39C4            CMP ESP,EAX
  7. 004FF2C4   75 FA           JNE SHORT 004FF2C0
  8. 004FF2C6    83EC 80         SUB ESP,-80
  9. 004FF2C9    C605 DAAE4000 E MOV BYTE PTR DS:[40AEDA],0EB
  10. 004FF2D0   E9 8FCAF8FF     JMP 0048BD64

делаю:
Code:
  1. 004FF2B8    FFD5            CALL EBP
  2. 004FF2BA    EB 12           JMP SHORT 004FF2CE
  3. 004FF2BC    8D4424 80       LEA EAX,[ESP-80]
  4. 004FF2C0    6A 00           PUSH 0
  5. 004FF2C2    39C4            CMP ESP,EAX
  6. 004FF2C4   75 FA           JNE SHORT 004FF2C0
  7. 004FF2C6    83EC 80         SUB ESP,-80
  8. 004FF2C9   E9 96CAF8FF     JMP 0048BD64
  9. 004FF2CE    C687 DAAE0000 E MOV BYTE PTR DS:[ESI+09EDA],0EB
  10. 004FF2D5    58              POP EAX
  11. 004FF2D6    61              POPAD
  12. 004FF2D7   EB E3           JMP SHORT 004FF2BC

В ESI в данном случае, как я понял, хранится адрес начала секции, куда UPX распаковывает код(???). У меня это постоянно 0x401000. Теоретически, такой вариант патчинга должен срабатывать и для случаев, когда, как пишет Vovan666, exe-шник грузится куда-попало?



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

Создано: 25 октября 2010 18:10
· Личное сообщение · #26

я бы сделал так
Code:
  1. 004FF2C9     50                                              PUSH EAX
  2. 004FF2CA     64:A1 30000000                                  MOV EAX,DWORD PTR FS:[30]
  3. 004FF2D0     8B40 08                                         MOV EAX,DWORD PTR DS:[EAX+8]
  4. 004FF2D3     C680 DAAE0000 EB                                MOV BYTE PTR DS:[EAX+AEDA],0EB
  5. 004FF2DA     58                                              POP EAX
  6. 004FF2DB   - E9 84CAF8FF                                     JMP utorrent.0048BD64
  7.  




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

Создано: 25 октября 2010 18:33
· Личное сообщение · #27

Vovan666
Спасибо за ликбез! Про этот Thread Information Block и Process Environment Block я вообще ничего не знал, пришлось гуглить по наводке на FS:[30] ;)



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

Создано: 28 ноября 2010 06:42
· Личное сообщение · #28

AKAB пишет:
я сделал tutrial специально для тебя
www.mediafire.com/?ytrrhjtck5mgwdk

Уважаемый, если вас не затруднит, может можно такой же для BitTorrenta сделать?
download.bittorrent.com/dl/BitTorrent-7.2.exe
Я по вашему туториалу распаковал его, а обратно не запаковывается. DiE Scan 0.64 пишет "UPX <Modified>", а FastScanner 3 final выдал "UPX v3.0", но распаковать не может.




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

Создано: 29 ноября 2010 02:31
· Личное сообщение · #29

Prividenie пишет:
Уважаемый, если вас не затруднит, может можно такой же для BitTorrenta сделать?
--> Link <--
Я по вашему туториалу распаковал его, а обратно не запаковывается. DiE Scan 0.64 пишет "UPX <Modified>", а FastScanner 3 final выдал "UPX v3.0", но распаковать не может.



www.mediafire.com/?upvcyuy1mu2kpj5



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

Создано: 29 ноября 2010 05:06
· Личное сообщение · #30

AKAB пишет:
www.mediafire.com/?upvcyuy1mu2kpj5

Спасибо! Но он всё равно не хочет сжиматься, UPX-ом. Насколько я понял, из того что мне говорили на ru-board, он не правильно распакован. На ru-board мне давали нормально распакованную версию, но она более старой версии. Извиняюсь за беспокойство, и ещё раз спасибо за попытку помоч.


. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Помогите распаковать новый uTorrent 2.2 RC2
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати