вторник, 12 июля 2011 г.

задачко

придумал тут для собеседования вирусных аналитиков
Вот например у вас есть уязвимый метод xyz в некоем activexе, которому на вход подается слишком длинная строка и по этому признаку можно вполне надежно детектить всякое. Вы смотрите tlb и реализуете свою версию этого activex - с IDispatch и той же tlb, на чем угодно - visual basic/atl/pure asm - неважно
Запускаем и видим что наш фальшивый объект создается, но метод xyz не вызывается, хотя с оригинальным activex эксплойт вполне себе срабатывает
Нужно описать ваши действия по выяснению того что пошло не так
Лично мне например хватило давеча 20 минут чтобы полностью понять что происходит, но в данном случае интересно не конкретное решение (которых кстати может быть несколько (минимум 3 штуки) и гуглить их бесполезно, ага), а именно ход мыслей кандидата и какие инструменты он собирается при этом использовать
Заодно было бы интересно узнать сколько действующих вираналитиков способны решить подобное

пятница, 8 июля 2011 г.

победить диктатуру

а вот например попробуйте угадать автора цитаты:
Я считаю, что в мире операционных систем демократия и свобода выбора не просто должны - они обязаны! - победить диктатуру
Если кто не знал например - это тот же самый человек, который
  • постоянно требует анального зонда предъявления паспорта для каждого пользователя этих ваших интернетов
  • уже лет десять с регулярностью перебравшего несвежих мухоморов баньши воет из каждого утюга про скорую смерть интернета
 демократия и свобода выбора ему должны и обязаны, бгг

среда, 6 июля 2011 г.

IoQueueThreadIrp

Если зрение меня не обманывает, то в vista эта экспортируемая функция потоконебезопасна
Доказательства:
в w2k/xp она имеет вызовы KfRaiseIrql/KfLowerIrql
в w7 KfAcquireSpinLock на ETHREAD.IrpListLock
в vista никаких ф-ций синхронизации нет
Это все отчего например ?

вторник, 5 июля 2011 г.

cng.sys exports

если кто не читал например

déjà vu

весьма поучительное чтиво
The developers accounts all indicate that the studio functioned under a decidedly informal hierarchy. If writer/director Brendan McNamara wanted something changed, he'd just go and talk to the staff member implementing it, rather than going through lead staff. "Often the leads weren't involved," remembers a programmer. "If you'd talk to your lead and say, 'Hey, Brendan's making this unreasonable demand,' they'd be understanding, but they're ultimately powerless. They can't go and tell Brendan that it's not feasible, just as much as I couldn't tell him. He just won't listen to reason."
Фамилия впрочем другая была, да. "Лаборатория имени меня"
Впрочем туземцам еще бесконечно далеко до передовых технологий потовыжималок:
"There was simply an expectation that you'd work overtime and weekends," said a source. "I was told that I was taking the piss by saying that I couldn't give every single one of my weekends away. We were looked at as a disposable resource, basically. If you weren't in the 'inner circle'" – an exclusive group which seems to have consisted of the former Team Soho employees – "you were just a resource to be burned through," he says. "Their attitude is: 'it's a privilege to work for us, and if you can't hack it, you should leave'. I heard one of the upper echelons say pretty much that. I thought it was disgusting. I don't understand how they can't see that maintaining talent would actually be good for them."
 бгг

суббота, 2 июля 2011 г.

avx не будет

я давеча посмотрел на адову упячку avx и решил забить на его прикручивание к udis86 по следующим причинам:
  • в некоторых инструкциях avx 4 аргумента, что потребует очень серьезно переписать практически весь код движка. Не говоря уже о том что эти инструкции с вероятностью 99.999% мне лично не встретятся но при этом все таблицы распухнут в размерах
  • если верить сорцам yasm инструкций avx 471 штука. В настоящее время во всем файле x86optable.xml содержится 637 инструкций. Боюсь одному человеку удвоить кол-во инструкций займет довольно таки дофига времени

пятница, 1 июля 2011 г.

crc32 instruction

отвратительно - из-за двух opcodes нужно заводить отдельную таблицу длиной 256 элементов для f2 0f 38 XX
+ 8Kb памяти между прочим
вот уроды (c)