Приветствую Вас Гость | RSS

Reversing and Code

Четверг, 21.11.2024, 08:54
Некто Loh_Ushastik на форуме exelab попросил в личку помощи в снятии защиты PE Password 0.2 SMT/SMF. Обычно я такие просьбы игнорирую, но эта была довольно подробно расписана, что делал, где и как искал и что вроде как кроме одного корейца больше никто и не осилил. Даже нашел древний топик на exelab, где уже спрашивали о данной защите. Поэтому я взялся. Защищенный файл есть в приложении. Запускаем подопытного и видим:


Протектор запрашивает пароль. Закрываем программу и загружаем ее в отладчик. Ниже листинг с комментария ... Читать дальше »
Категория: Исследование защиты | Просмотров: 12031 | Добавил: PE_Kill | Дата: 27.09.2011 | Комментарии (10)

На днях, переписывая один крипто компонент для Delphi, столкнулся со странной оптимизацией кода и алгоритма. В одном месте я увидел манипуляции с массивами, которые, если упростить, выглядели следующим образом:

a := a xor b;
b := b xor a;
a := a xor b;

Если при манипуляции с xor переменная встречается несколько раз, значит алгоритм подразумевает получение переменной в ее начальном состоянии. Для чего тут это нужно. Зная логику работы xor можно составить следующие выражения:

b := b xor (a xor b); что дает нам a
a := (a xor b) xor a; что дает нам b

Т.е. это всего лишь обмен местами двух переменных без использования промежуто ... Читать дальше »
Категория: Программирование в Delphi | Просмотров: 2612 | Добавил: PE_Kill | Дата: 13.09.2011 | Комментарии (3)

Небольшой высер мысли. Вот уже год, как у меня зреет план написания грандиозного софта, под определенные нужды. По поводу нужд, сразу скажу - к делу это не относится и вам данный софт будет совсем не интересен. Так вот, начинал я его проектировку раз 100 точно. И каждый раз я стопорился на какой нибудь херне. То не мог выбрать базу данных, неделю изучая преимущества разных баз (не хотелось использовать серверную). То начинал проектировать один из модулей, понимал, что ему потребуется другой модуль, которого сейчас нет, бросал и начинал проектировать сначала нужный модуль. А тут была проблема, что этому модулю тоже нужен какой либо модуль, либо я понимал, что написание этого второстепенного модуля, по времени обойдется в 5 раз дольше основного и бросал это дело, надеясь на то, что скоро появится рабочее настроение. И в таком духе решались и другие проблемы. В итоге я оценил временные затраты на создание системы. Получилось, что написание всех модулей системы обойдется примерно в год раб ... Читать дальше »
Категория: Мысли | Просмотров: 4768 | Добавил: PE_Kill | Дата: 18.08.2011 | Комментарии (4)

Купил недавно смартфон Samsung Galaxy S 2. На следующий день у него отказал акселерометр, т.е. при повороте смартфона приложения не переворачиваются. Делал Wipe/Hard reset, программный reset, обновил прошивку через Kies до последней официальной - ничего не помогло. Тогда я решил перейти к более сложным методам. Установил на него взломанную прошивку и попытался покопаться во внутренностях андроида, но это тоже не дало результат. Нужно нести в сервисный центр. Но тут проблема. При прошивании смартфона неофициальной прошивкой срабатывает защитный механизм от Samsung'а, который увеличивает счетчик прошиваний на 1. Т.е. при переходе в Download Mode отображается, что телефон прошивался неродной прошивкой и указано сколько раз. Это автоматически снимает гарантию. Почитал в интернете, оказывается всё решаемо, причем довольно просто. Нужно купить MicroUSB штекер, резистор на 301 килоом и припаять резистор в виде перемычки на 4 и 5 ногу штекера, потом воткнуть штекер в разъем выключенного смартф ... Читать дальше »
Категория: Железо | Просмотров: 13421 | Добавил: PE_Kill | Дата: 11.08.2011 | Комментарии (8)

Просматривая код других Delphi программистов, я постоянно вижу одни и те же ошибки. Самое ужасное, что я вижу такое и в очень дорогостоящих проектах, где, казалось бы должны работать профи. Давайте я немного расскажу о них, чтобы в последствии ВЫ писали код правильно.

Начнем с того, что по умолчанию все формы в Delphi создаются сразу же при загрузке программы и болтаются в памяти до ее закрытия. Если форм мало (2-3), то это не страшно, и для небольших утилит я даже не заостряю на этом внимание. Но если проект начинает обрастать большим количеством форм, это серьезно отражается на производительности. Простой пример. Мне попалась программа, в которой использовалось ~150 форм. Все они создавались автоматически. У многих были процедуры инициализации и финализации. Загрузка exe до момента показа главной формы занимала почти минуту (!!!). При этом в постоянной работе использовались только 3 (!) формы. Убрав инициализацию форм при запуске я выиграл во времени эту самую минуту, которая ... Читать дальше »
Категория: Программирование в Delphi | Просмотров: 14465 | Добавил: PE_Kill | Дата: 06.08.2011 | Комментарии (2)

Купил недавно новый компьютер и решил перейти на новую опреационку Windows 7. Первая проблема, с которой я столкнулся - это обновление служб и компонентов Windows через прокси сервер. Windows XP подхватывала настройки из настроек подключения сети, которыми пользуются Internet Explorer и Google Chrome. Семерка не захотела этого делать. Почитал, что пишут люди и нашел решение. Оказывается в семерке службы работают через транспорт WinHTTP, который можно конфигурировать из командной строки. Жмем пуск, набираем cmd, когда в пуске найдется cmd жмем правой кнопкой->запустить от имени администратор. Набираем

netsh winhttp import proxy source=ie

и настройки считаются из эксплорера. Либо задаем руками:

netsh winhttp set proxy 127.0.0.1:8080 (это лишь пример)

Чтобы посмотреть текущие настройки прокси, набираем:

netsh winhttp show proxy

Вот и всё.
Категория: Windows 7 | Просмотров: 50674 | Добавил: PE_Kill | Дата: 29.03.2011 | Комментарии (32)