Как стать автором
Обновить

Комментарии 15

/offtop: Rouse иногда мне кажется что вы и Ms-Rem это одно и то же лицо.
Нет, мы разные :)
Спасибо за статью! Под XE2 код выдает зюки в окно консоли. Фикс:

procedure _Write(const Value: AnsiString); overload;
var
  s: AnsiString;
begin
  Writeln(Value); exit;
{
  SetLength(s, Length(Value));
  AnsiToOem(@Value[1], @s[1]);
  Writeln(s);
}
end;


Не очень понял — зачем вообще эти танцы с _Write?
Статьи я пишу дома, а дома у меня только семерка стоит, она без этих «танцев с бубном» выдает «кракозябры» :)
Под старшими версиями дельфи (юникодными) данный этап избыточен.
Прогнал под различными Windows. Везде работает :) SDT индексы, просто для информации:

Windows 7 x64: 13/10/48
Windows 7 x86: 248/335/179
Windows Server 2008 R2 x64: 13/10/48
Windows Server 2003 SE: 170/238/122
Windows XP Professional: 163/229/116

Их лучше не запоминать, они меняются достаточно часто, я наблюдал смену даже после обычного обновления Windows (какой-то там KBxxx ставился — не сервиспак).
Конечно.
Да, кстати, чуть не забыл. Некоторые антивирусы занимаются перехватом вызова данных АПИ (например симантек баловался, если не ошибаюсь) и размешают вместо первого опкода перехватчик на свой обработчик. В этом случае SDT индекс считается не верно и вызов такой API будет не успешен.
Поэтому с таким подходом нужно быть осторожным.

Методика применяется примерно такая: alexander-bagel.blogspot.ru/2013/01/intercept.html
(Эту статью я попозже на хабре тоже опубликую для ознакомления).
Извините что offtop, но интересно знать приходилось ли Вам заниматься оптимизацией виртуализованного кода?
Не оптимизацией, а скорее обфускацией (разбавление мусорными инструкиями, полиморфная перестановка, генерация и исполнение на лету).
Где-то ближе к концу года, если все будет хорошо, хочу об этом статью реализовать, но не знаю что с загрузкой будет, могу и не успеть.
Но сразу хочу описать один момент, до таких монстров как ВМ ExeCryptor-а или StarForce мне очень далеко, это целое направление и им должны заниматься люди немного другой квалификации, которая у меня к сожалению отсутствует (не то образование — не математик я :)
Не знаю как в ExeCryptor'е, а в StarForce до 5 версии ВМ не сложная.
По сравнению с последними версиями да — но я не сказал бы, что она тривиальная :)
Можно вообще всю ntdll промапить второй раз и дергать функции не из оригинальной, а копии. Это кстати один из способов снятия бряков с API функций
Да, можно и так. Мне встречались такие варианты реализаций, но они, к сожалению, достаточно легко детектируются и обходятся.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории