SWR Аналогично. Не успев запуститься, красиво вылетает с кодом возврата 0103h, не произведя сколько-либо вменяемых действий. [upd] W98SE v4.10.2222A
DEEP SWR спасибо за инфо! ага, значит, на висле эта штука не работает. скорее всего виноват TLS callback... просьба запустить на висле http://kpnc.org/ftp/kdh-reverseme.zip - тут TLS callback'а нет и только один трюк к размером секции. GoldFinch если не взведена галочка "ручная загрузка" IDA просто не кажет часть кода. проверял на 4.7, 5.2, 5.3
kaspersky Ага, теперь и на мастдаях всё в норме. Однако ж особых приёмов против просмотра кода Олей не обнаружено.. видны вызовы обоих боксов, строки тоже нормально отображаются. Единственное что когда сохраняешь изменённый код в ЕХЕ, орёт про кривые секции. впрочем, не мне в моём текущем состоянии лезть в столь высокие материи %)
SWR пасиб, значит, все работает! 4VR в этом примере TLS callback вставлен просто до кучи, к тому же там использован выбор исключения как способ выхода из TLS, о чем лично я нигде не читал, ну и плюс TlsIndex заюзан. плюс проверка на CCh через jp, что заезженной темой всяко не назовешь DEEP > Однако ж особых приёмов против просмотра кода Олей не обнаружено.. ольга испльзует системный загрузчик и потому показывает код "как есть", а вот ида... и в hiew'е трансляция виртуальных адресов "слетает". IDA 5.2 вообще не кажет код (только со скриптами от Atli Gudmindsson), а 5.3 кажет только в режие ручной загрузки, который используют далеко не все и далеко не всегда...
kaspersky А с base of code/data не игрался? кстати тоже был вопрос по этому поводу в момент предкновения. в системные модули лезть было влом. так про эксепшн в тлс нигде не писалось?
kaspersky Ага, работает как и задумано. А на висте другое поведение лишь из-за того, что под ней tls-callback'и, запускаемые перед завершением последнего потока, вызываются, по всей видимости, уже после деинициализации каких-то подсистем - [некоторые] функции из user32 в этом случае приводят к ZwTerminateProcess.
asmfan > А с base of code/data не игрался? во всех системах которые я только видел, они игнорируюся системным загрузчиком. дизассемблеры/отладчики их так же не используют... > кстати тоже был вопрос по этому > поводу в момент предкновения. > в системные модули лезть было влом. > так про эксепшн в тлс нигде не писалось? может и писалось, но я не встречал. правда малварь, использующая этот трюк, имеется. ковырял троян в котором вызывается исключение в первом входе в каллбэк, а во втором - вызывается актуальный код. отладчики видят первое исключение и обламываются так, что до второго вызова дело уже не доходит. аналогично поступают эмуляторы. > Просто под вистой tls-callback'и, запускаемые перед завершением > последнего потока, вызываются, по всей видимости, уже после > деинициализации каких-то подсистем - [некоторые] функции > из user32 в этом случае приводят к ZwTerminateProcess. я тоже на user32 подумал, т.к. в висте изменен интерефейс и, стало быть, user32 переписан, а ms ни разу не гарантировала, что из tls callback'а можно вызывать функции user32, даже напротив, предостерегала нас делать это. гм, ну мне каллбек нужен только чтобы зациклить отладчик в точке входа вот, переисал. http://kpnc.org/KedaH3v1.zip большая просьба запустить под вистой и сказать - работает оно или нет
ну галочка "ручная загрузка" вроде как раз для таких случаев и придумана... не работает автоматика - загрузил вручную и радуешся....
Мессага Код (Text): condom-principle it'd rather have one and not need it that need it and not have one
SWR большое спасибо! с меня пиво! (можно даже реальное!) значит, испускать исключения в каллбаках в висте по прежнему можно и эта часть кода не тронута. это хорошо! GoldFinch логично. однако, проблема в том, что большинство людей (включая меня) _по_ _умолчанию_ ручную загрузку не используют. а теперь представим себе код вида: // видимая часть ; ; запутанный безобидный код ; ; замаскированный переход на H1 ; ; запутанный безобидный код (продолжение) ; // невидимая часть H1: ; ; вредоносный код ; если переход на H1 замаскирован, то у нас даже не возникнет и тени сомнения, что здесь что-то не так и часть кода вообще не загружена. надеюсь, со мной согласятся, что маскировка переходов ни разу не проблема. вот я и столкнулся с троянами (точнее, упаковщиками, но это неважно), которые прячут часть кода и она не видна в ИДА. причем, я распаковывал код на перехаченном x86emu, который видит только то, что загружено в ИДУ и трояна он не распаковал, что и послужило поводом для написания этого поста.
Код (Text): __ __/ \_ \____ \ / \ __ //\ \ __/ \/--\ \ _ \____ __ \ \ || \ \ \ _|| _|| _|| Хэндсом) Только 2й арт не разглядел