Рубрика «отладка» - 41

О чем эта статья

В двух предыдущих статьях я рассказывал как отлаживать приложения для Android без исходного кода на Java и о некоторых особенностях установки breakpoints. Если уважаемый читатель ещё не ознакомился с этими статьями — я настоятельно рекомендую начать с них, а уже потом читать эту статью.

Так уж вышло что до сих пор я рассказывал исключительно об отладке байткода Dalvik и ни словом не обмолвился об отладке native методов. А ведь именно в native методах часто скрывается самое вкусное — хитрые защиты, интересные malware фичи, уязвимости нулевого дня. Поэтому сегодня я сжато, без «воды», расскажу как отлаживать native методы без исходного кода на C/C++ (ну или на чем, уважаемый читатель, они у вас там написаны).
Читать полностью »

Пару месяцев назад я искал руководство по созданию DbgEng расширений к отладчику из Debugging Tools for Windows для начинающих. Что бы на простом примере, с самого начала, подробно и с картинками. Google дал много информации по теме, но ни одного руководства отвечающего вышеперечисленным требованиям.
Читать полностью »

Пару месяцев назад я искал руководство для начинающих по созданию DbgEng расширений к отладчику WinDbg из Debugging Tools for Windows. Что бы на максимально простом примере, с самого начала, подробно и с картинками. Google дал много информации по теме, но ни одного руководства отвечающего вышеперечисленным требованиям.
Читать полностью »

Наверняка каждый разработчик модулей для Magento попадал в ситуацию, когда вроде бы все сделано правильно, но не работает. Особенно это касается характерных ситуаций: создал роутер, а выдает 404 старницу, создал лэйaут, а контент не выводится, создал темплейт, а страница по прежнему пуста. Отличительной чертой таких ситуация является то, что как правило Magento никак на них не реагирует (не выдается ошибок, логи остаются пустыми). Именно об отладке таких ошибок и пойдет речь в данной статье.

Вдоволь намучавшись с подобными ситуациями, я собрал небольшую коллекцию советов по разработке и методов отладки модулей, которые позволяют быстро справляться с подобными неприятностями. Особенно полезны они будут новичкам, но и опытные разработчики могут найти для себя что-то новое.
Читать полностью »

О чем эта статья

Это продолжения моей вчерашней статьи об отладке приложений для Adnroid без исходного кода на Java (если кто-то её не читал — я очень советую начать с неё). Вчера я давал пошаговую инструкцию как настроить и начать использовать связку Apk-tool плюс NetBeans. Два последних пункта там звучали примерно так:

13. Установите breakpoint на интересующую вас инструкцию… blah-blah-blah...

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

Дальше, в разделе «Подводные камни», я рассказывал почему мы не может начать отладку приложения с самого начала, например поставив breakpoint на какую-нибудь инструкцию метода onCreate(...) в activity, с которой начинает выполняться приложение.

В этой статье я расскажу как всё же можно начать отлаживать приложение без исходного кода на Java с самого начала. Эта статья опять-таки не для новичков. Нужно как минимум понимать синтаксис ассемблера Smali и уметь ручками патчить .smali файлы, грамотно вписывая туда свой код.

Читать полностью »

О чем статья

В этом статье я сжато, без «воды», расскажу как отлаживать приложения для Android не имея их исходного кода на Java. Статья не совсем для новичков. Она пригодиться прежде всего тем кто более или менее понимает синтаксис Smali и имеет некоторый опыт в reversing engineering приложений для Android.

Читать полностью »

Я недавно наткнулся на статью, описывающую простейший грувлет, позволяющий исполнить любой код на Groovy у Вас на сервере. Мне это показалось очень удобным для организации отладочного бэкдора.

Проблема в то, что грувлеты — это всё таки сервер, а у нас есть еще толстый клиент на Swing. Для него мне хотелось бы сделать нечто похожее, но встраивание какого нибудь embedded Jetty или Tomcat только для этого в клиент выглядело как то слишком.

По счастью, мне попалась на глаза и другая статья — про наличие в стандартной библиотеке Java простейшего веб сервера. Вот им то я и решил воспользоваться.
Читать полностью »

Иногда возникают ситуации, когда стандартных средств отладки недостаточно.

Например, в iOS 4.1 была возможность использовать valgrind в симуляторе. А в Lion x86_64 и iOS 5 valgrind работать уже перестал.
Это связано с 64-битной архитектурой и изменениями в симуляторе (в valgrind есть ряд
недоработок).

С переходом на ARC метод отладки retain исчез:

- (id) retain
{
// Break here to see who is retaining me.
return [super retain];
}

Читать полностью »

Реверс инжинирим игру Hogs of War, часть 1

Мотивация

В связи с испорченным местными властями отпуском приходится занимать свое время чем-нибудь интересным. Например, подлечить старую игрушку, косяки которой не позволяют нормально поиграть на современных ОС, либо поменять несколько байтов для получения разных extra-возможностей just for fun. Подопытным будет игра из далекого 2000 года под названием Hogs of War. Если кто не знает, то это turn-based стратегия, где вам дается команда хрюшек, с помощью которых вы должны ни много ни мало, завоевать мир. В процессе игры в зависимости от результатов можно модифицировать каждую хрюшку, например повысив её в звании. В 2009 Atari объявила о продолжении игры в виде разработки HOW2, но по последним данным проект свернули из-за недостатка финансирования. Ничего приятного.

Цель этой части: исправление бага, при котором блокируется весь рабочий стол, если произошел appcrash по какой-либо причине и подготовка приложения для работы в экранном режиме для упрощения отладки.
Читать полностью »

в 9:48, , рубрики: debugger, perl, отладка, метки: , ,

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

Прежде чем я начну описывать работу с отладчиком, приведу несколько советов, которые помогут выявить некоторые типичные ошибки, еще до запуска debugger:

  • Проверьте ваш синтаксис с помощью ключа -c: perl -c yourprog
  • Используйте use strict, который предотвратит многие ошибки, связанные с названиями переменных и их объявлением.
  • Включайте предупреждения с помощью ключа -w (если вы хотите получать все предупреждения, то можете использовать ключ -W).
  • Более расширенную информацию о неполадках можно получить используя use diagnostics (или -Mdiagnostics из коммандной строки) все сообщения генерируются с помощью perldiag (man).
  • Проверьте вашу программу в режим Taint. При запуске вашей программы с данным ключом -T (легкий вариант -t), каждая переменная вне вашей программы считается инфицированной (tained) и отказывается запускать внешние команды из незнакомых мест.
  • Программа splain. Действует как и use diagnostics, принимает предупреждающие сообщения и преобразует их в детализированные сообщения, но с тем преимуществом, что ничего не включается постоянно в ваш код (perl -w your.pl | splain ).

Теперь непосредственно перейдем к возможностям, которые предоставляет Perl Debugger.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js