| Посл.ответ |
Сообщение |
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 21 сентября 2007 12:09 · Поправил: ivans77 New!
· Личное сообщение · #1
Всем привет!
Наконец то решил пост сделать, когда совсем приперло..
Ситуация такая.. Сестре на mail свалился очередной вирь.. Ну благополучно запустила.. В итоге я вычищал ей комп
Каспером и руками с некоторым софтом, нашел как обычно кучу хлама, а также один странный файл.
Почему я на него обратил внимание.. У меня в наборе утилит разных была тулза от китайских товарищей под
названием XSniffer. Так вот тот файл назывался точно также..
Я его забрал и запихнул в VMWare . Запустил его.. И чудо -информация в консоли такая же как и при
запуске обычного XSniffer-a... НО!
Разница в том что один весит 27 кил (который странный) а обычный - 44 кила. Я попытался запихнуть старнный
файл в OllyDbg, а та радует меня: "Module 'xsniffer.exe' has entry point outside the code....."
Я нажимаю Ok и прохожу таки туда.. IDA также ругается при попытке просмотра данного файла, говоря о том
что он типа видимо чем то упакован.
Я уже неделю пытаюсь выделить упаковщик, но ничего не получается.. Читал статьи на cracklab.ru
Но пока все равно не очень помогает..
Может кто попробует расковырять заразу? Просто интересно узнать на что я нарвался.
Оба файла прикладываю в архиве
<img src="/f/img/attach.gif"> <SCRIPT type=text/javascript>dfl("files/","4750_21.09.2007_CRACKLAB.rU.tgz");< /SCRIPT> - Arch-strange.zip
|
|
Gerpes
Ранг: 61.5 (постоянный)
Статус: Участник
|
Создано: 21 сентября 2007 12:53 New!
· Личное сообщение · #2
Olly, IDA, а ты проверял QUnpack или PEID ? они почти все показывают, даже самопал быват распаковывают.
Попробуй, не получится, посмотрим...
|
Satyr
Ранг: 21.1 (новичок)
Статус: Участник
|
Создано: 21 сентября 2007 14:19 New!
· Личное сообщение · #3
ivans77 не мог бы ты аттач поправить а то я не вкуриваю как скачать
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 21 сентября 2007 14:35 New!
· Личное сообщение · #4
М-да, аттач как странное себя ведет.. Сейчас.. Что касается PEiD и Qunpack - делал ими, причем с актуальными сигнатурами ... Ничего не показывают..
15:38:27 - Opened xsniff.exe
Quick self analyze.... unknown
PESniffer EP Scan: Unknown
PEiD scanning... Nothing found *
{ Атач доступен только для участников форума } - Arch-strange.rar
|
pavka
Ранг: 1045.7 (!!!!)
Статус: Участник
|
Создано: 21 сентября 2007 14:55 New!
· Личное сообщение · #5
ivans77
UPX обработаный какой то дрянью ;)Зачем тебе анализаторы открой в HIEW да посмотри это самый лучший анализатор
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 21 сентября 2007 14:59 · Поправил: ivans77 New!
· Личное сообщение · #6
pavka пишет:
UPX обработаный какой то дрянью ;)Зачем тебе анализаторы открой в HIEW да посмотри это самый лучший анализатор
Не понял идеи.. И чем мне поможет HEIW ? Открывал во FlexHEX только толку то что? Мне хотелось разобраться как снять такую заразу.. И покаким признакам ты определил что это измененный UPX?
Тьфу блин! Точно гуру! Ещё раз сам открыл во FlexHex и все увидел! Сорри!!! 
Только тогда все равно остаются вопросы - почему его анализаторы не видят? И как тогда снять таки упаковку? Имеющиеся средства не идентифицируют его как UPX и применение Unpacker-ов для UPX не дает результатов 
|
pavka
Ранг: 1045.7 (!!!!)
Статус: Участник
|
Создано: 21 сентября 2007 15:24 New!
· Личное сообщение · #7
ivans77 пишет:
И как тогда снять таки упаковку?
Самый лучщий способ руками ;) хотя Qunpack должен снять ..
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 21 сентября 2007 15:26 New!
· Личное сообщение · #8
Я понял что руками! Qunpack-ом пробовал - не помогает 
С чего тогда нужно начинать? Откуда отталкиваться? Я просто под Олькой то его уже на раз гонял, частично алгоритм восстановил до определенного момента, но от этого не легче 
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 21 сентября 2007 15:42 New!
· Личное сообщение · #9
Просто что сильно сбивает столку - после POPAD как написано в статьях сразу должен стоять JMP на OEP..
Здесь же нет JMP.. А есть ret..
Как тогда быть?
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 21 сентября 2007 15:59 · Поправил: ivans77 New!
· Личное сообщение · #10
Кажется нашел, причем сильно напоминающее то что у меня имеется... Вот в этой статье:
[url=Распаковка UPX-Scrambler - нет ничего проще]--> https://exelab.ru/art/?action=view&id=366 <--[/url]
Только объясните мне чайнику, что за слова там такие:
"...
Для начала найдём OEP, здесь не будем придумывать ничего нового, а просто в отладчике поставим бряк:
hr esp-4
...
"
hardware breakpoint я ставил - только то ли это - не пойму ? и в каком месте нужно ставить?
И с этим вроде тоже разобрался. Стоя на начале посмотрел то что в ESP, Нашел его в стеке и сметился на 4. После чего сделал Follow in Dump для ентого элемента, и там поставил Hardware breakpoint на чтение для DWORD. После этого запустил c помощью F9. Несколько раз сделал шаги, в том числе попадая и на POPAD.. А потом в итоге встал намертво и OllyDbg говорит о какой то ошибке.. Я так понимаю что мне нужно внимательно смотреть шаг перед тем как прога умирает?
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 21 сентября 2007 18:45 New!
· Личное сообщение · #11
нАРРооД! Помогите! Весь день снова головой об стенку простучался но так и не смог ничего сделать.. Не могу OEP найти...
|
|
Создано: 21 сентября 2007 19:43 New!
· Личное сообщение · #12
oep вроде бы 00403bc7
попробуйте
{ Атач доступен только для участников форума } - dumped.rar
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 21 сентября 2007 21:32 New!
· Личное сообщение · #13
Слушай похоже получилось!!! Огромное спасибо!!! Слушай, ты не мог бы здесь или в приват мне (лучше наверное здесь) рассказать как ты сие сделал и получил! Очень прошу - хотелось бы понять технику!
|
Mavlyudov
Ранг: 156.2 (ветеран)
Статус: Участник
|
Создано: 22 сентября 2007 01:28 New!
· Личное сообщение · #14
ReZiDenT_USSR
Интересно получится, если в Quick Unpack ввести в поле ОЕР 004140D0
P.S. Я не говорил что это OEP
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 22 сентября 2007 11:29 New!
· Личное сообщение · #15
Мужики  )) Все таки, объясните мне - как вы выходите на эти значения? Какая технология?
|
Assass1n
Ранг: 159.0 (ветеран)
Статус: Участник
|
Создано: 22 сентября 2007 12:48 New!
· Личное сообщение · #16
ivans77
да поищи ты по форуму в новичках про распаковку upx или других несложных пакеров. ей богу як дитё. ivans77 пишет:
hardware breakpoint я ставил - только то ли это - не пойму ? и в каком месте нужно ставить?
а такие вещи в распаковке надо просто знать. Распаковка: от самого простого к чуть более сложному - в статьях.
читай
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 22 сентября 2007 13:16 New!
· Личное сообщение · #17
Assass1n пишет:
да поищи ты по форуму в новичках про распаковку upx или других несложных пакеров. ей богу як дитё. ivans77 пишет:
hardware breakpoint я ставил - только то ли это - не пойму ? и в каком месте нужно ставить?
а такие вещи в распаковке надо просто знать. Распаковка: от самого простого к чуть более сложному - в статьях.
читай
Если ты бы внимательно прочитал что написано ниже в том посте то увидел что я там разобрался. Далее, у меня нет привычки писать на форумах по подобной тематике не порывшись по ним - если я написал вопрос и прошу объяснить значит мне реально не хватило информации.
P.S: я читал про распаковку UPX но мне сие не очень сильно помогло .. И если честно я не совсем понимаю в чем сложность ОБЪЯСНИТЬ ? Почему если у кого-то знания выше, то считается ниже своего достоинства рассказывать более подробно тем кто только учиться?
|
FrenFolio
Ранг: 340.0 (мудрец)
Статус: Участник
THETA
|
Создано: 22 сентября 2007 14:50 New!
· Личное сообщение · #18
ivans77
UPX распаковать очень просто (если он не модифицированный и не скремблирован). Загружаешь файл в Ольку и прокручиваешь вниз (буквально несколько экранов) до пустого места кода, заполненного нулями. Перед ним будут две инструкции
POPAD
JMP xxxxxxxx,
где xxxxxxxx - адрес перехода на OEP.
Примерно так. 
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 22 сентября 2007 15:04 New!
· Личное сообщение · #19
Дело в том что я писал выше - он не идентифицируется никакими средставми как UPX. Как мне сказали выше - это измененный UPX, т.е модифицированный! Я сам увидел что енто UPX лишь когда открыл файл во FlexHex и там увидел запись..
Тот пример что ты привел - я о нем читал и первоначально когда изучал этот файл именно такую связь и искал, о чем читал выше. Такой связи не было найдено.
Далее я нашел ещё здесь одну статью (ссылка написана выше в одном из моих постов в этой теме)... Так вот там как раз очень похожая на мою ситуацию:
"...Как видите, вместо pushad, которые так свойственны upx, первой инструкцией является popad.
Код явно нетипичный для upx. ..."
у меня именно так .. Дальше начал разбираться так как в статье написано... Но в итоге увы не получилось.. у меня.. А ReZiDenT_USSR успешно снял пакер... Только вот как он добрался до OEP = я никак не могу разобраться..
|
|
Создано: 22 сентября 2007 15:07 New!
· Личное сообщение · #20
OEP нашлось довольно просто. Т.К. прога на С++ то одной из первых вызываемых API является GetVersion. Поставил бряк на начало функции, первый же вызов 00403bf3 был из секции кода проги. Вышел из GetVersion,
00403BEA . 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
00403BED ? FF15 58804000 CALL DWORD PTR DS:[408058] ; kernel32.GetVersion
00403BF3 ? 33D2 XOR EDX,EDX
чуть выше увидел OEP
00403BC7 ? 55 PUSH EBP
00403BC8 . 8BEC MOV EBP,ESP
00403BCA . 6A FF PUSH -1
00403BCC . 68 38814000 PUSH 00408138
Далее перезапустил программу в отладчике и посмотрел, что до старта находиться в секции кода(00401000-00407fff). Там находился мусор и нули.
Поставил memory breakpoin on write,
остановился здесь (вроде бы происходит затирание мусора нулями)
004141F3 8826 MOV BYTE PTR DS:[ESI],AH
004141F5 46 INC ESI
004141F6 49 DEC ECX
и просто зажал клавишу F9.
Оказался тут
003200E1 F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
003200E3 5E POP ESI
003200E4 53 PUSH EBX
аналогично клавиша F9, оказался тут(запись раскриптованого кода в секцию)
0033005E F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
00330060 5F POP EDI
00330061 83C7 28 ADD EDI,28
также зажал клавишу F9 , подожда пока в ecx останется 40,
поставил memory breakpoint on access на секцию кода
и оказался на oep.С дампил, прикрутил импорт, всё.
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 22 сентября 2007 15:09 New!
· Личное сообщение · #21
ReZiDenT_USSR !!!!! Ещё раз огромное спасибо  ! Сейчас буду осмысливать  ))
Пасиба!
|
FrenFolio
Ранг: 340.0 (мудрец)
Статус: Участник
THETA
|
Создано: 22 сентября 2007 18:57 New!
· Личное сообщение · #22
ivans77 пишет:
Дело в том что я писал выше - он не идентифицируется никакими средставми как UPX. Как мне сказали выше - это измененный UPX, т.е модифицированный!
Дело в том, что мне не скачать было. 
Но даже если есть модифицированный UPX, то это не намного усложняет задачу. В основном, просто добавляют несколько инструкций/криптуют код, чтобы нельзя было снять на автомате. Может еще и антидамп прикрутят, что не очень-то помогает. Но добраться до OEP в случае с UPX все равно очень просто. Так что слей файл на нормальный файлообменник, например на рапиду, тогда я может и напишу подробнее...
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 22 сентября 2007 19:08 New!
· Личное сообщение · #23
Залил:
slil.ru/24887235
|
Mavlyudov
Ранг: 156.2 (ветеран)
Статус: Участник
|
Создано: 23 сентября 2007 01:50 New!
· Личное сообщение · #24
ReZiDenT_USSR
как я понял:
После бряка на GetVersion мы тут
7C4FEB3A > 64:A1 18000000 MOV EAX,DWORD PTR FS:[18]
Возврат в прогу по ALT+F9
00403BF3 ? 33D2 XOR EDX,EDX
Смотри выше выше
00403BC7 ? 55 PUSH EBP
..Кажется прога написана на делфи...
ReZiDenT_USSR пишет:
Далее перезапустил программу в отладчике и посмотрел, что до старта находиться в секции кода(00401000-00407fff).
00401000 - это адрес первой секции, которая без названия. А почему ставим бряк именно на 00401000-00407FF0 ? (может это и есть вся первая секция)
Кстати, как поставить бряк на секцию из командной строки? а тоя мучаюсь и выделяю адреса вручную...
|
Assass1n
Ранг: 159.0 (ветеран)
Статус: Участник
|
Создано: 23 сентября 2007 02:43 · Поправил: Assass1n New!
· Личное сообщение · #25
Я бы сделал так:
После того как визуально определили OEP, набираем в комманд баре d 00403BC7, выделяем байт по вышеуказанному адресу и ставим бряк на экзекушан. перезапускаем программу, жмём f9 и опа, мы стоим прямо на оеп.
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 23 сентября 2007 16:21 · Поправил: ivans77 New!
· Личное сообщение · #26
ReZiDenT_USSR пишет:
Далее перезапустил программу в отладчике и посмотрел, что до старта находиться в секции кода(00401000-00407fff). Там находился мусор и нули.
Поставил memory breakpoin on write,
остановился здесь (вроде бы происходит затирание мусора нулями)
004141F3 8826 MOV BYTE PTR DS:[ESI],AH
004141F5 46 INC ESI
004141F6 49 DEC ECX
и просто зажал клавишу F9.
Оказался тут
003200E1 F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
003200E3 5E POP ESI
003200E4 53 PUSH EBX
аналогично клавиша F9, оказался тут(запись раскриптованого кода в секцию)
0033005E F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
00330060 5F POP EDI
00330061 83C7 28 ADD EDI,28
Cнова привет! Опять заморочки у меня.. когда пытался разобраться что и как:
итак, сначала я иду полностью также как и ReZiDenT_USSR :
1) после загрузки модуля, вызвал View->Memory и поставил Memory breakpoint on write
2) нажал F9 и благополучно попал туда, куда и говорил ReZiDenT_USSR:
004141F3 8826 MOV BYTE PTR DS:[ESI],AH
004141F5 46 INC ESI
004141F6 49 DEC ECX
3) после чего зажал F9, и благополучно прокрутившись попал в области памяти, вот на это место:
003300E1 F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
003300E3 5E POP ESI
003300E4 53 PUSH EBX
003300E5 68 00800000 PUSH 8000
- как видно, все тоже самое что и у ReZiDenT_USSR, разница только в адресе памяти ..
4) также держу F9 и прокрутившись.... Вообщем попадаю совсем не туда...
0040C027 AD LODS DWORD PTR DS:[ESI]
0040C028 CD 20 INT 20
0040C02A 83C4 20 ADD ESP,20
и в Statusbar-e пишет "Access violation when reading (00000000)-please ...."
и все...
p.s: спасибо Assass1n-у, он все объяснил 
|
|
Создано: 23 сентября 2007 22:57 New!
· Личное сообщение · #27
Assass1n пишет:
набираем в комманд баре d 00403BC7, выделяем байт по вышеуказанному адресу и ставим бряк на экзекушан
Да, так действительно намного проще.
ivans77 пишет:
Вообщем попадаю совсем не туда
Отладчик тормозиться на экзепшене, у меня такие настройки см.аттач
точка останова на GetVersion
ctrl+g в появившемся окне вводишь GetVersion и оказываешься на начале этой функции ставишь бряк на первые байты.
Mavlyudov пишет:
как поставить бряк на секцию из командной строки?
MW expression1 ,expression2 memory breakpoint on write
MR expression1 ,expression2 memory breakpoint on access
{ Атач доступен только для участников форума } - Screen.JPG
|
FrenFolio
Ранг: 340.0 (мудрец)
Статус: Участник
THETA
|
Создано: 24 сентября 2007 20:46 New!
· Личное сообщение · #28
ivans77 пишет:
и в Statusbar-e пишет "Access violation when reading (00000000)-please ...."
Надо поставить галку у ексепшна "Memory access violation". Это единственный анти-отладочный прием использовавшийся здесь. Проверил на оригинальной Ольке. 
В принципе, если еще актуально, то могу флеху заснять.
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 1 октября 2007 16:40 · Поправил: ivans77 New!
· Личное сообщение · #29
Всем привет! Народ, снов нужна помощь!
Вот какая проблема - пробую снять с очередного файла упаковщик (примерно похож на тот что я здесь указывал).. Но есть проблема.. Когда пробовал ставить бряк на GetVersion (исследуемый файла написан (как говорит Die) на MS VC++) то пролетал мимо.. Когда я нашел похожий аналог, не упакованный (как и в данном случае) то оказалось что в функции Start вместо GetVersion используется GetVersionEx.
Однако Gtrl+G и ввод туда GetVersionEx заканчивалось плачевно.. Типа нет ничего такого.. Пробовал и другие - типа GetModuleHandle и GetCoomandLine (они также идут до вызова функции main(...)) - также меня программа посылала...
Подскажите, как в такой ситуации быть ?
P.S:Тьфу сорри, дурацкий вопрос = сам разобрался.. GetVerisonExA и W..
но почему то все равно блин я не возвращюсь в код программы.  а оказываюсь в ntdll.dll кажется
P.S:
Попробую уточнить.. Итак, если в предыдущих файлах использовался вызов GetVersion - То все было нормально. действительно ставили бряк на GetVersion и проходили её и вываливались в код, где рядом было OEP.
Сейчас у нас идет вызов GetVersionEx. Я поставил бряк на GetVersionExA, внутри которого вызывается GetVersionExW. Попадаю туда успешно, но после retrun из этой функции я оказываюсь внутри MSVCRT.. и далее я кручусь там.. попасть в тело у меня никак не получается.. В какой то момент работа заканичивается и в StatusBar OllyDbg у меня имеется запись: "Process terminates. Exit code 0"
- я так понимаю, что программа закончила свою работу.
Подскажите все таки плиз = как мне найти OEP??? 
|
ivans77
Ранг: 3.9 (гость)
Статус: Участник
|
Создано: 1 октября 2007 22:26 New!
· Личное сообщение · #30
Решил таки все таки прикрепить файл. Может кто попробует. Если получиться - то плиз подскажите как искать OEP в такой ситуации! Очень буду признателен.
P.S: файл вроде не вирус
{ Атач доступен только для участников форума } - s3.rar
|