![]() |
eXeL@B —› Вопросы новичков —› И опять про создание секций... |
Посл.ответ | Сообщение |
|
Создано: 19 февраля 2009 15:07 · Личное сообщение · #1 Сдампил файл... в нем не дампится секция 7FF50000 Поэтому сдампил её отдельно и сейчас пытаюсь прикрутить... как сделать так чтоб её адрес в проге начинался с 7FF50000. тобишь у меня есть еще две секции и секция иат... а как граммотно добавить эту? как только меняю виртуальный адрес прога перестает запускаться. ![]() |
|
Создано: 19 февраля 2009 17:21 · Поправил: user_ · Личное сообщение · #2 |
|
Создано: 19 февраля 2009 17:50 · Поправил: SVIN95 · Личное сообщение · #3 user_ Ты не так понял. Допустим, ты снимаешь аспр. Тебе попались переадресованные в секцию прота call'ы. Ну и так лень восстанавливать... =)). Проще взять и сдампить секцию аспра. Но! Если ты ее сдампишь, а потом прикрутить, виртуальный адрес будет не 7FF50000. Соответственно call'ы все-равно будут вести в небеса. Требуется, чтоб VA секции был равен 7FF50000. Как это сделать незнаю. Тоже интересует. З.Ы. А как добавить секцию - CFF Explorer, например, может добавить не только в хидер, но и в файл. Он будет работать сразу. ADDED: Может это и не аспр, это я пример привел. ![]() |
|
Создано: 19 февраля 2009 18:02 · Личное сообщение · #4 |
|
Создано: 19 февраля 2009 20:16 · Личное сообщение · #5 |
|
Создано: 19 февраля 2009 21:25 · Поправил: NewB · Личное сообщение · #6 |
|
Создано: 19 февраля 2009 21:53 · Личное сообщение · #7 Да ничо ты не сделаешь с таким адресом. Винда обычно память высоко так не выделяет. Разве что если при выделении флажок не воткнуть, что нужно в самом верху. Насколько помню, раньше аспр так не делал. Сейчас хз. Скорее всего это служебная замапленая страница, на аспр не похоже. Ну а если аспр и реально выделяет, ну фигле, уговори выделить его в нормальной области. ![]() |
|
Создано: 20 февраля 2009 02:42 · Личное сообщение · #8 SVIN95 пмшет: user_ Ты не так понял. И правда не понял. Если речь об аспре, то в разделе RAR-статьи есть добротный тутор от vnekrilov со скриптами. А если требуется, чтобы VA секции был равен хххххххх, то другой вопрос. pavka говорит, что очень просто. Может быть и расскажет как именно. Мне на ум только следующее приходит: создать секцию-заглушку, у которой RawSize стремится к нулю, а VirtualSize нужно так подгодать, чтобы следующая (действительная) секция получила желаемый VirtualAddress. Ну что, не прав я? Какие правильные способы существуют? ![]() |
|
Создано: 20 февраля 2009 09:26 · Личное сообщение · #9 Думаю, аспр можно запатчить, чтоб call'ы не переадресовывал. Поставить бряк на запись по адресу, где находится первый call. Потрейсить немного и последить за изменением кода по адресу, где после окончания распаковки call в секцию прота. Найти код, который переадресовывает call's и занопить. Я прав? Можно так? ![]() |
|
Создано: 20 февраля 2009 13:33 · Личное сообщение · #10 |
|
Создано: 20 февраля 2009 18:13 · Личное сообщение · #11 Да адрес кстати странный, наверное какая-нибудь системная либа. Ну а прицепить секцию можно например попробовать плагином для Olly (OllyDbg PE Dumper). Просто перед дампом, смотришь карту памяти и добавляешь нужную секцию. Потом файл надо не забыть ребилднуть, а то винда будет ругаться, что файл не вин32 приложения. Ребилд лучше делать CFF Explorer, так как после PETools некоторые файлы получаются мертвые. Не факт, конечно что этот метод всегда прокатит, но там где надо одну-две секции со старыми адресами впендюрить самое то. ![]() |
|
Создано: 20 февраля 2009 18:15 · Личное сообщение · #12 |
|
Создано: 20 февраля 2009 18:36 · Личное сообщение · #13 |
|
Создано: 20 февраля 2009 22:11 · Личное сообщение · #14 к сожалению софтег не могу положить (заказ) ![]() Когда прога анпачиццо то на место этих адресов тупо необходимые адреса апишек кладуццо, ну кароч все стандартно... ![]() |
|
Создано: 21 февраля 2009 03:24 · Личное сообщение · #15 NewB пишет: А переадресация на эту секцию идет из секции иат, тобишь рядом скажем с адресами апишек лежат адреса этой секции... Когда прога анпачиццо то на место этих адресов тупо необходимые адреса апишек кладуццо, ну кароч все стандартно... Это апи Тинстала и ситуация эта не типичная а просто ты не распаковал файл ![]() |
|
Создано: 21 февраля 2009 12:56 · Личное сообщение · #16 Прогу я прекрасно распаковал, речь шла о том моменте, когда она якобы была не распакована... Тобишь я грубо сдампил на оеп и восстановил часть иат! а часть соответственно представляет собой переходы на вот эту вредную секцию 7FF... которую изначально я пробовал тупо прикрутить чтоп не дурить себе голову... НЕ ВЫШЛО ![]() ![]() |
|
Создано: 21 февраля 2009 17:23 · Личное сообщение · #17 |
|
Создано: 23 февраля 2009 04:26 · Личное сообщение · #18 user_ пишет: Хидер как переделывать? В Hiew ![]() NewB пишет: Прогу я прекрасно распаковал, речь шла о том моменте, когда она якобы была не распакована... Тобишь я грубо сдампил на оеп и восстановил часть иат! а часть соответственно представляет собой переходы на вот эту вредную секцию 7FF... которую изначально я пробовал тупо прикрутить чтоп не дурить себе голову... НЕ ВЫШЛО ... Поэтому сделал все полностью: нашел magic jump не дал ему испортить табличку, подампил файлы которые были "вмонтированы" в мою ехешку ну и т.д. Забавно Так иди делай блог быстрее ![]() ![]() |
|
Создано: 23 февраля 2009 06:21 · Личное сообщение · #19 |
|
Создано: 23 февраля 2009 17:45 · Личное сообщение · #20 user_ Метод который помогал уйти от антидампа в PEP 2.0: 1) вырезаем большую секцию и корректируем адреса ниже идущих. 2) теперь нужно 2 апишки: VirtualAlloc и memcpy ( либо хардкор или добавить в импорт, смотря для чего нужно сделать ). 3) ну и перед OEP вставляешь код, который выделит память данного размера, по нужному адресу и если ему удалось, то скопирует данные из твоих секций туда. 4) переход на EP( OEP ). имхо не очень красиво, и не факт что будет поддерживать разные сервис паки, но иногда хватает. ![]() |
|
Создано: 23 февраля 2009 19:18 · Личное сообщение · #21 pavka пишет: user_ пишет: Хидер как переделывать? В Hiew Ты мне не чем не обязан, так что если не хочешь (не можешь) - не отвечай. Но я не понимаю зачем ты меня дразнишь? Я не спрашиваю где, я спрашиваю как. RSI пишет: Метод который помогал уйти от антидампа в PEP 2.0: 1) вырезаем большую секцию и корректируем адреса ниже идущих. 2) теперь нужно 2 апишки: VirtualAlloc и memcpy ( либо хардкор или добавить в импорт, смотря для чего нужно сделать ). 3) ну и перед OEP вставляешь код, который выделит память данного размера, по нужному адресу и если ему удалось, то скопирует данные из твоих секций туда. 4) переход на EP( OEP ). Интересно, но не совсем понятно. Скачал статью "Снятие протектора PEP на примере программы LikeRusXP v5.195 по vnekrilov", сейчас буду разбираться. ![]() |
|
Создано: 24 февраля 2009 05:10 · Личное сообщение · #22 user_ пишет: Но я не понимаю зачем ты меня дразнишь? Я не спрашиваю где, я спрашиваю как. Странные вопросы ![]() Вот пример, вариант с переделаным хидером и прилепленой секцией выше базы . Старая база стандартно 400000 .003B0000: 4D 5A 50 00-02 00 00 00-04 00 0F 00-FF FF 00 00 MZP .003B0010: B8 00 00 00-00 00 00 00-40 00 1A 00-00 00 00 00 ╕ @ .003B0020: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B0030: 00 00 00 00-00 00 00 00-00 00 00 00-00 01 00 00 .003B0040: BA 10 00 0E-1F B4 09 CD-21 B8 01 4C-CD 21 90 90 ║ ┤ ═!╕ L═!ÉÉ .003B0050: 54 68 69 73-20 70 72 6F-67 72 61 6D-20 6D 75 73 This program mus .003B0060: 74 20 62 65-20 72 75 6E-20 75 6E 64-65 72 20 57 t be run under W .003B0070: 69 6E 33 32-0D 0A 24 37-00 00 00 00-00 00 00 00 in32 $7 .003B0080: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B0090: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B00A0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B00B0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B00C0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B00D0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B00E0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B00F0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B0100: 50 45 00 00-4C 01 03 00-00 00 00 00-5B 4C 6F 72 PE L [Lor .003B0110: 64 50 45 5D-E0 00 03 01-0B 01 02 19-00 10 05 00 dPE]α .003B0120: 00 4A 00 00-00 00 00 00-D0 79 00 00-00 10 00 00 J ╨y .003B0130: 00 10 00 00-00 00 3B 00-00 10 00 00-00 10 00 00 ; .003B0140: 01 00 00 00-00 00 00 00-04 00 00 00-00 00 00 00 .003B0150: 00 50 06 00-00 10 00 00-00 00 00 00-02 00 00 00 P .003B0160: 00 00 10 00-00 40 00 00-00 00 10 00-00 10 00 00 @ .003B0170: 00 00 00 00-10 00 00 00-00 00 00 00-00 00 00 00 .003B0180: 80 42 06 00-A0 00 00 00-00 20 05 00-00 E0 00 00 ÇB á α .003B0190: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B01A0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B01B0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B01C0: 00 70 05 00-18 00 00 00-00 00 00 00-00 00 00 00 p .003B01D0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B01E0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B01F0: 00 00 00 00-00 00 00 00-43 4F 44 45-00 98 14 00 CODE ÿ .003B0200: 00 10 05 00-00 10 00 00-00 10 05 00-00 10 00 00 .003B0210: 00 00 00 00-00 00 00 00-00 00 00 00-E0 00 00 E0 α α .003B0220: 2E 72 73 72-63 00 00 00-00 20 01 00-00 20 05 00 .rsrc .003B0230: 00 20 01 00-00 20 05 00-00 00 00 00-00 00 00 00 .003B0240: 00 00 00 00-E0 00 00 E0-2E 6D 61 63-6B 74 00 00 α α.mackt .003B0250: 00 10 00 00-00 40 06 00-00 10 00 00-00 40 06 00 @ @ .003B0260: 00 00 00 00-00 00 00 00-00 00 00 00-60 00 00 E0 ` α .003B0270: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 . ![]() |
|
Создано: 24 февраля 2009 12:46 · Поправил: NewB · Личное сообщение · #23 pavka пишет: Забавно Так иди делай блог быстрее ) Что к чему??? ![]() ![]() Если можешь реально доступно объяснить как сделать - объясни, если нет - ... Я думаю Archer уже все написал по данному вопросу, что создать секцию с таким адресом в винде не реально. К слову, я может не совсем до конца понял мысль RSI, но примерно так пробовал делать изначально, тупо перехватывал ВиртуалАллок и пытался разместить новый кусок кода по более правдоподобным адресам ![]() К сожалению, прога падала... Затем пробовал тоже так же Аллочить кусок памяти и потом rep movs .... заполнить её тем что надо до оепа, не покатило ![]() ![]() |
|
Создано: 24 февраля 2009 14:09 · Личное сообщение · #24 NewB пишет: я может не совсем до конца понял мысль RSI Я тоже не сразу понял, но потом разобрался. В статье --> "Распаковка Private ExE Protector 1.9" <-- http://www.ahteam.org/articles.html?do=view&id=30 этот прием описан более понятно. NewB пишет: Если можешь реально доступно объяснить как сделать - объясни, если нет - ... Объяснять доступно - это не легко. Этож ведь вопросы новичков, тут разжевывать надо, а кому охота этим заниматься. За шесть дней и 24 поста мало чего талкового услышали. ИМХО тему можно уже закрывать, тем более что NewB пишет: Прогу я прекрасно распаковал , а вот такие штуки pavka пишет: .003B0000: 4D 5A 50 00-02 00 00 00-04 00 0F 00-FF FF 00 00 MZP .003B0010: B8 00 00 00-00 00 00 00-40 00 1A 00-00 00 00 00 ╕ @ .003B0020: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B0030: 00 00 00 00-00 00 00 00-00 00 00 00-00 01 00 00 .003B0040: BA 10 00 0E-1F B4 09 CD-21 B8 01 4C-CD 21 90 90 ║ ┤ ═!╕ L═!ÉÉ .003B0050: 54 68 69 73-20 70 72 6F-67 72 61 6D-20 6D 75 73 This program mus .003B0060: 74 20 62 65-20 72 75 6E-20 75 6E 64-65 72 20 57 t be run under W .003B0070: 69 6E 33 32-0D 0A 24 37-00 00 00 00-00 00 00 00 in32 $7 .003B0080: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B0090: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B00A0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B00B0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B00C0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B00D0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B00E0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B00F0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B0100: 50 45 00 00-4C 01 03 00-00 00 00 00-5B 4C 6F 72 PE L [Lor .003B0110: 64 50 45 5D-E0 00 03 01-0B 01 02 19-00 10 05 00 dPE]α .003B0120: 00 4A 00 00-00 00 00 00-D0 79 00 00-00 10 00 00 J ╨y .003B0130: 00 10 00 00-00 00 3B 00-00 10 00 00-00 10 00 00 ; .003B0140: 01 00 00 00-00 00 00 00-04 00 00 00-00 00 00 00 .003B0150: 00 50 06 00-00 10 00 00-00 00 00 00-02 00 00 00 P .003B0160: 00 00 10 00-00 40 00 00-00 00 10 00-00 10 00 00 @ .003B0170: 00 00 00 00-10 00 00 00-00 00 00 00-00 00 00 00 .003B0180: 80 42 06 00-A0 00 00 00-00 20 05 00-00 E0 00 00 ÇB á α .003B0190: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B01A0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B01B0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B01C0: 00 70 05 00-18 00 00 00-00 00 00 00-00 00 00 00 p .003B01D0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B01E0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 .003B01F0: 00 00 00 00-00 00 00 00-43 4F 44 45-00 98 14 00 CODE ÿ .003B0200: 00 10 05 00-00 10 00 00-00 10 05 00-00 10 00 00 .003B0210: 00 00 00 00-00 00 00 00-00 00 00 00-E0 00 00 E0 α α .003B0220: 2E 72 73 72-63 00 00 00-00 20 01 00-00 20 05 00 .rsrc .003B0230: 00 20 01 00-00 20 05 00-00 00 00 00-00 00 00 00 .003B0240: 00 00 00 00-E0 00 00 E0-2E 6D 61 63-6B 74 00 00 α α.mackt .003B0250: 00 10 00 00-00 40 06 00-00 10 00 00-00 40 06 00 @ @ .003B0260: 00 00 00 00-00 00 00 00-00 00 00 00-60 00 00 E0 ` α .003B0270: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 мало помогают. ![]() |
|
Создано: 24 февраля 2009 14:39 · Личное сообщение · #25 NewB пишет: По делу пока разговора ноль, если честно... По какому делу? Хоть это и сабфорум Вопросы новичков но не вопросы даунов NewB пишет: что создать секцию с таким адресом в винде не реально. Прилеплять секции вообще фиговый способ и юзают его крайних случаях и уж точно не для Тинстала так что не тыч свои адреса . Вопрос был по доблению секций выше и ниже базы.. Есть желание потренеруйтесь на кошках. SVKP, Софтрап , Обсид В пепе старше 1.9 метод убирания гиганской секции фиг прокатит да и это из другой оперы .user_ пишет: а вот такие штуки мало помогают. Portable Executable File Format поможет или еще лучше запакуй обсидом файл с опцией перемещения кода и распакуй его ![]() ![]() |
|
Создано: 24 февраля 2009 19:40 · Личное сообщение · #26 |
|
Создано: 24 февраля 2009 21:53 · Поправил: NewB · Личное сообщение · #27 pavka пишет: По какому делу? Хоть это и сабфорум Вопросы новичков но не вопросы даунов Ну если ты не понимаешь по какому делу, то точно надо раздел для даунов создавать, чтоб там писали непонимающие о чем речь. Вопрос стоит концептуально, а не про Тинстал конкретно, так что не надо отправлять тренироваться на других протах, туторы о которых ты так внимательно читаешь и смотришь. ![]() |
|
Создано: 25 февраля 2009 00:23 · Личное сообщение · #28 1. Добавляешь секцию с виртуальным размером <нужный адрес> - <VA начала секции>, где <нужный адрес> - это твой 7FF...; RawSize секции выставляешь <0> 2. Добавляешь ещё секцию, у которой VA как раз и будет <нужный адрес>, с размером данных разберёшься. P.S. Не забывай про выравнивание и флаги секций. ----- EnJoy! ![]() |
|
Создано: 25 февраля 2009 04:35 · Личное сообщение · #29 |
|
Создано: 25 февраля 2009 19:30 · Личное сообщение · #30 |
![]() |
eXeL@B —› Вопросы новичков —› И опять про создание секций... |
Эта тема закрыта. Ответы больше не принимаются. |