Программирование на C++ глазами хакера второе издание


24 0

В ближайшее время свет увидит моя последняя работа -второе издание Программирование на C++ глазами хакера. Нет, я не говорю, что это последняя вообще. Последняя книга, это в смысле того, что я после этого ничего не писал. Возможно, что-то еще будет, но издательство ничего не предлагает, так что следующей новинки ждать придется долго. Если издательство что-то предложит, а я увижу, что мне это интересно и будет результат, то на написание-издание уйдет не менее полугода.

Программирование на C++ глазами хакера второе издание отличается от первого достаточно серьезно. Мало того, что я исправил некоторые глюки и освежил информацию, я добавил много нового. Например, появилась целая глава о системе безопасности Windows. Подобная глава есть в Delphi глазами хакера, а теперь все примеры работы с ACL, DACL можно будет увидеть на C++.

Когда точно выйдет книга пока сказать не могу, но как только, так сразу сообщу.


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Сергей

13 Ноября 2008

Вовремя я этот пост увидел, а то собирался уже купить первое издание. Теперь подожду второе издание. Кстати, Линукс глазами хакера у нас в городе появился примерно через месяц или полтора после твоей заметки.


Мария

13 Ноября 2008

Значит ли это, что ты передумал, и карьера писателя будет иметь продолжение? :) Если так, то это радостная весть :)


Михаил Фленов

13 Ноября 2008

Оно может иметь продолжение. Я не планировал ничего писать. Но без проблем вернусь к этому, если увижу интересную тему, от которой получу удовольствие. Так как заработать сложно, то просто писать не особо и хочется, но если будет хорошая дея, то напишу.


Orbis

13 Ноября 2008

Отсутствие финансовой отдачи, это плохо. Практически все качают книги из сети. Я тоже качаю, но только для ознокомления перед покупкой. Или из-за отсутсвия книги в продаже, в нашем городе это сделать сложно.


Евгений(beginer)

27 Декабря 2010

Здравствуйте Михаил, наступающими Вас  праздниками Рождеством и Новым годом. Здоровья, счастье, успехов и процветания Вам в карьере и  в личной жизни. Купил Вашу книгу "Программирование на C++ глазами хакера" 2-е издание 2011г. Прочитал Введение, пролистал дальше и книга мне понравилась, т.к. она рассчитана на новичка в программирование и все разжевано и разложено по полочкам. И что очень меня порадовала много практических работоспособных примеров. Эх по больше бы таких книг на прилавках книжных магазинов.  Воодушевленный я начал выполнять первый пример "Летающий Пуск" ("Start Button"). У меня ОС "Семерка" и кнопка "Пуск" выглядит виде разного цветного флага в кружке. Я делаю снимок с экрана и потом  открываю его в Paint'е. размер кнопки "Пуск" у меня получается: ширина 50 на высота 39 пикселей. Потом его вставляю в Visual Studio 2008 C++ -> Add Resource -> Bitmap -> New -  все как в Вашей книге. В свойствах рисунка Bitmap выставляю ширина 50 на высота 39 пикселей. Хочу поменять Color как у Вас написано на 256 Color или True Color, но  в проекта Visual Studio 2008 доступны параметры Color: 1bit, 4bit 8bit, 24bit и 32bit. Раньше среда позваляла выставлять параметр только 8bit, сейчас уже 24bit. Сам не знаю почему???? Для наглядности я бы мог прикрепить скриншоты с моего экрана, но к сожалению здесь на сайте нет функции прикрепление файлов.   При запуске программы  появляется только верхняя часть кнопки "Пуск", а внизу белое пространство. Извините что получился очень длинный комментарий. Я пытался детально изложить суть моей проблемы. Подскажите пожалуйста как правильно задать размеры окна кнопки, если можно то на скриншотах.
   С уважением к Вам Евгений(beginer)!!!!


Михаил Фленов

27 Декабря 2010

Что-то не так с функцией рисования. Возможно ты копируешь картинку на экран неверно указывая размеры. Я уже не помню какую функцию я использовал для рисования битовой маски, но проверь ее


Евгений(beginer)

27 Декабря 2010

Делаю снимок экрана, открываю графический редактор, вставляю туда снимок с экрана, вырезаю кнопку "Пуск" затем в Visual Studio 2008 C++ с помощью команды Edit/Paste вставляю в проект, других функций Вставки в проект Visual Studio 2008 C++ типа Win32 Project, я больше не знаю как разве, что  комбинация клавиш Shift + Insert.Далее захожу в свойства (Propperties), полученного рисунка Bitmap Editor,   далее выставляю значения Height и  Width. Я не понимаю где у меня ошибка, я бы мог прикрепить скриншоты с экрана моего компьютера, но к сожалению здесь на сайте нет функции прикрепление файлов. Икак можно проверить функции рисования для битовой маски в Visual Studio 2008??????????


Михаил Фленов

27 Декабря 2010

Смотреть нужно в коде. Там должна быть функция типа BitBlt (по идее я использовал ее) и она копирует изображение. Ее параметры могут быть выставлены так, что копируется не все изображение. В книге описана эта функция и ее параметры. Проверь высоту.


Евгений(beginer)

28 Декабря 2010

У меня размеры кнопки "Пуск" полученные с помощью графического редактора Paint такие ширина: 52 и высота: 39. Я функции  BitBlt выставляю следующие параметры фрагмент кода:


case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
Rectangle(hdc, 1,1,10,10);
hdcBits=::CreateCompatibleDC(hdc);
SelectObject(hdcBits,startBitmap);
BitBlt(hdc, 0, 0, 52, 39, hdcBits, 0, 0,SRCCOPY);
DeleteDC(hdcBits);
EndPaint(hWnd, &ps);
break;

  
  Возникает вопрос нужно ли выставлять значения ширины: 52 и высоты: 39 в функции  "Установить верхнюю позицию окна в левый нижний угол экрана"?

Фрагмент кода:

//Установить верхнюю позицию окна в левый нижний угол экрана.
SetWindowPos(hWnd, HWND_TOPMOST, 4, toppos, 52, 39, SWP_SHOWWINDOW);
UpdateWindow(hWnd);

У меня пока результат остается прежний, где ошибка и какие параметры еще нужно изменить???????


Михаил Фленов

28 Декабря 2010

Кидай мне на мыло свой исходник, буду смотреть


Евгений(beginer)

28 Декабря 2010

Я его к сожалению не знаю????!!!!


Серёга Иванов

24 Января 2011


Привет !
Купил Вашу книгу "Программирование на C++ глазами хакера" 2-е издание 2011г
нравяться практические примеры

но сразу столкнулся с проблемами
в первом же примере

На Делфи пример работает кнопка летает

нс VC++ нет
кнопка прорисовывается в окне программы
всё правильно сверху
но окно не уменьшилось меню заголовок не исчезает
Style || WS_CAPTION
Style || WS_SYSMENU
SetWindowLng()- игнорируется
SetWindowPos()- начало урезать в блоке InitInstace, но меню и шапка на месте

DrawStartButton() Игнорируется
помоги пожалуйста
использую Microsoft Visual Studio 2008
Win32 приложение!
может не те настройки какие,?
если будет время глянь этот пример





Михаил Фленов

24 Января 2011

Мне уже выслали исходник с такими же симптомами, все нет времени посмотреть. Кстати, на какой ОС запускаете?


Серёга Иванов

24 Января 2011

Михаил а так навскидку где искать?
Windows XP


Михаил Фленов

24 Января 2011

Протрейсить и посмотреть, почему DrawStartButton игнорируется. Я эти примеры писал года четыре назад и не помню, как я их делал.


Серёга Иванов

24 Января 2011

Михаил небеспокойся
пример рабочий
но Microsoft Visual Studio 2008
другие ATOM MyRegisterClass(HINSTANCE hInstance)
и что то ещё
исправил всё летает ты прав
очень красиво
Спасибо!


Серёга Иванов

25 Января 2011

Михаил привет!
ищё забыл добавить
в блоке
int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
пришлось перед обработкой сообщений

while (GetMessage(&msg, NULL, 0, 0))

ставить не DrawStartButton();
а
SetWindowPos(hWnd, HWND_TOPMOST, 1,GetSystemMetrics(SM_CYSCREEN)-29 , 67, 26,
   SWP_SHOWWINDOW);

иначе в начале действия программы не прорисовывается картинка

если можно что то попроще подскажи
буду признателен


Серёга Иванов

25 Января 2011

Комментарий принят к рассмотрению и будет отображен после подтверждения.
а да и ещё в
DrawStartButton()
в каждый цикл надо вставить
UpdateWindow(hWnd);

иначе никак


Михаил Фленов

26 Января 2011

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


Серёга Иванов

27 Января 2011

Михаил привет!
подскажи как заставить этот цикл работать
SendMessage() не даёт результата
может через
CreateEvent()можно?
если окно открывается то что то проходит
если wm_hide
ждёт сообщения msg
а его нет
даже не набирая примеры уже понятно
будут ждать и очень долго


Михаил Фленов

27 Января 2011

Используй PeakMessage. Поищи на диске, я где-то точно использовал эту функцию. Если сообщений нет, то она не ждет.


Лена

17 Октября 2011

Та же проблема. Кнопка нифига не летает, а расположена строго в одном месте экрана, какие параметры не меняешь. ЧТо в ХП, что в вин7. Не могли бы вы выложить корректный пример? А то и так пришлось кучу часов убить на поиск то визуал студии (в борланде жутко криво), то на разбор бага заглушки, что используется юникод.
Аська 179339479.
В общем вместо получения удовольствия, приходится просто вымучивать этот пример(...


Михаил Фленов

17 Октября 2011

Сейчас реально работаю по 10 часов на работе, не считая того, что работаю дома. Плюс затраты на дорогу до работы и домой, и времени уже ни на что не остается. Как только будет свободное время, я обязательно посмотрю, как этот пример работает в Windows 7, хотя я не уверен, что он вообще там будет работать. Дело в том, что MS изменила принципе панель. А кнопка у вас хоть отрывается от своего места?


Лена

17 Октября 2011

Спасибо за ответ! Я долго насиловала свой мозг и наконец убрала это злополучное меню:
SetMenu(hWnd, 0);

Теперь у меня другой глюк, если стоят флаги CW_USERDEFAULT, как в книге, то окно получает большим, а в нем маленькая картинка. Если я ставлю нули, то остается маленькая полоска справа в высоту картинки, примерно на 60 пикселей вправо. И как я не меняю параметры прорисовки ширины и высоты в разных функциях, например в setwindowpos, все равно эта полоска остается и никак не изменяется...


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне