четверг, 18 ноября 2010 г.

Screencast making

Уже давным давно столкнулся с разнообразными обучающами видео-роликами. Ищи как правило на youtube.com. Все что поднимает бунт в моей душе, к примеру драйвер-девелопмент, разработка и проектирование приложений, написание грамотного кода, да много чего. Однако только недавно решился на создание своих скринкастов, так сказать до рос ))) Встал вопрос, на чем остановиться?

Ответ гугла вывел меня на обзор программ приведенный на хабре, благодаря которумы узнал об этой фриварной проге. Умеет как раз то что надо:
  • Пишет полноэкранный видос с микрофоном;
  • Позволяет также на видосе уставливать разнообразные стрелочки, заметки и др. Причем разными цветами!!
Может, как нить начну толкать свои мысли через скринкасты, пока все это будет направлено на корпоративный документатион, по причине того, что информация нужна, а писать много букав влом!;)

воскресенье, 3 октября 2010 г.

Бъярн Страуструп

Очень многие из нас хотят знать, а что собственно думает о С++ сам автор? Об этом можно получить представление, но только англо-понимающих. К сожалению у меня не такой уровень владения языком,чтобы легко понимать его,однако замечу что говорит Бъярн члено-раздельно!!!
Предлагаю практикующимся в С++ и английском, слушать чаще подобных людей. Приведу ссылки на ютуб, где можно послушать Бъярна:
Успеха вам в понимании! ;)

среда, 29 сентября 2010 г.

Получить десятичное число, перевести и вывести в двоичной системе счисления

Задачка уровня 1-курсника ВУЗа:

Введенное десятичное число в диапазоне от 0 до INT_MAX(константа из climit-инклуда) преобразовать в двоичную систему счисления и вывести на экран. Для вывода и ввода юзать std::cout, std::cin.

Запрещено:
  1. Использовать любые массивы;
  2. Вызывать printf;
  3. Создавать функции, кроме одной main();
  4. Использовать манипуляторы пространства std::
  5. Логические сдвиги чисел, т.е. операции '<<', '>>'
  6. Рекурсия запрещена.
  7. Логическое умножение; 
Ответ(http://www.base64.ru/):
ICAgIGludCBudW1iZXIgPSBpOwogICAgaW50IHBvd2VyICA9IDE7CiAgICB3aGlsZShwb3dlcioyPD1udW1iZXIgJiYgcG93ZXIqMiA+IHBvd2VyKQogICAgICBwb3dlcio9MjsKICAgIAogICAgd2hpbGUocG93ZXIgPiAwKSB7CiAgICAgIGNvdXQgICA8PCBudW1iZXIgLyBwb3dlcjsKICAgICAgbnVtYmVyICU9IHBvd2VyOwogICAgICBwb3dlciAgLz0gMjsKICAgIH0=

понедельник, 13 сентября 2010 г.

Забавное нововведение в использовании реестра MS Windows

Вобщем, теперь можно менять способ поиска DLL-ок, но об этом лучше почитать тут. Фактически означает еще одну "возможность" ;)

среда, 8 сентября 2010 г.

Меня догнал Python

Итак, как дикая смесь ленивого + системаного программиста + реверсера мне всегда было любопытны технологиии автоматизирующие реверс и поиск чего-либо для решения моих задач в кратчейшее время или чтобы само искалось ))) Но в этот раз технологии, а точнее язык, сам меня догнал и четко сказал мне "Я Python! Меня надо учить!" и сколько бы не убегал от его эгоцентричности, что мол он сказал и ... не убежал. Он твердо сегодня мне заявил: "А теперь я еще и в WinDbg"

О чем это я ? О том что скриптовый язык Python теперь почти в любом в более-менее значимом реверс-инструменте:

суббота, 4 сентября 2010 г.

Создание нового SVN-проекта на кряклаб

Ввиду того что команда cracklab.ru подняли SVN сервак, то я тут же воспользовался этой возможностью ) Поэтому теперь, все мои публичные исходники будут только тут .

Цель проекта:
Сбор существующего или разработка нового кода облегчающего написание приложений или исполнимых модулей, т.е. драйверов или динамических библиотек.

Пока еще все конечно сырое, но в последствии будет куда лучше ;)

четверг, 2 сентября 2010 г.

Детект машинной инструкции PUSH/POP reg

Приведу одну из задачек, которые встречаются в практике написания кодо-анализитаторов. Есть код приведенный ниже, нужно оптимизировать и получить более эффективный по выполнению код:

 switch(Opc)
 {
 case 0x50: case 0x51: case 0x52: case 0x53:
 case 0x54: case 0x55: case 0x56: case 0x57:
 {
  std::cout << "This is PUSH reg instruction" << std::endl;
  break;
 }
 case 0x58: case 0x59: case 0x5A: case 0x5B:
 case 0x5C: case 0x5D: case 0x5E: case 0x5F:
 {
  std::cout << "This is POP reg instruction"  << std::endl;
  break;
 }
 default:
  std::cout << "This isn't PUSH/POP reg instruction" << std::endl;
 }
Ответ (http://www.base64.ru/):

CS8vINCe0LTQvdC+INC40Lcg0LLQvtC30LzQvtC20L3Ri9GFINGA0LXRiNC10L3QuNC5CglpZigoT3BjICYgMHhGOCk9PTB4NTApCgkJc3RkOjpjb3V0IDw8ICJUaGlzIGlzIFBVU0ggcmVnIGluc3RydWN0aW9uIiA8PCBzdGQ6OmVuZGw7CgllbHNlIGlmKChPcGMgJiAweEY4KT09MHg1OCkKCQlzdGQ6OmNvdXQgPDwgIlRoaXMgaXMgUE9QIHJlZyBpbnN0cnVjdGlvbiIgIDw8IHN0ZDo6ZW5kbDsKCWVsc2UKCQlzdGQ6OmNvdXQgPDwgIlRoaXMgaXNuJ3QgUFVTSC9QT1AgcmVnIGluc3RydWN0aW9uIiA8PCBzdGQ6OmVuZGw7