Мне всегда было интересно, как найти недокументированный / приватный API?
Пример недокументированного / закрытого API Apple , Play Station , Windows Phone 7 , ядра Win32 , Windows API , скрытого обратного вызова и т. Д.
Какие инструменты используют хакеры, чтобы узнать о частных и недокументированных функциях?
Где я могу прочитать о том, как люди изучают частные API и методы обратного инжиниринга, раскрывающие секреты, которые обычно объясняются в документации API?
спасибо,
Обычные инструменты, которые вы используете для разработки программного обеспечения :)
Обычно недокументированные API-функции - это просто недокументированные и не очень тщательно скрытые секреты.
Разработка API, ориентированного на будущее, сложна - вы можете легко добавлять вещи в API, но действительно сложно что-либо удалить (не нарушая некоторые клиенты). Таким образом, вы очень осторожны при добавлении чего-либо в API. Вот почему в API могут быть некоторые дополнительные функции (для тестирования, в разработке, для быстрого взлома?), Которые не документированы и не имеют гарантий работы или присутствия в следующей версии.
Эти недокументированные функции можно легко найти, если вы знаете, как работают компиляторы, компоновщики, библиотеки и отладчики (системное программирование). Знание языка ассемблера целевой архитектуры не повредит. Если ваш IDE / компилятор может создавать рабочие исполняемые файлы, вы можете делать это также «вручную», и, не отрываясь от этого пути, вы можете обнаружить некоторые скрытые функции :)
Пример в среде Unix: сценарий, в котором у нас есть документация только для функции printf, и мы хотели бы знать, есть ли другие функции, подобные printf . Ход мыслей может идти примерно так:
1. Проверьте заголовочные файлы
2. Проверьте библиотеку
3. Разберите библиотечную функцию
Или что-то вроде того...
источник
Отказ от ответственности: мне нравится ответ ChrisF. Я думаю, это исключает пару подходов. Если это будет размещено в комментариях к ответу, как они освещены, я удалю свой ответ.
Это может как бы попасть в декомпиляцию:
Найти другие недокументированные API также можно с помощью отладки предоставленного поставщиком инструмента, который делает то, что вам нужно, и отслеживания межбиблиотечных вызовов. Таким образом, вы можете иметь представление о том, какой тип данных отправляется куда.
Затем можно написать другие «пользовательские» инструменты для работы с этими недокументированными API, используя python и CTYPES, или ruby с его версией чего-то похожего, пока вы точно не выясните, что он делает или размышляет о сбоях. Эта тема в минимальной глубине освещена Аароном Портным в: http://pentest.cryptocity.net/reverse-engineering/ и некоторых других его выступлениях на конференциях (кажется, я помню, что он говорит об этом прямо во время выступления в Бразилии ). Это связано с RE, но я не думаю, что это просто общее RE. Примечание: видео на pentest.cryptocity.net не являются просто этой темой. Они охватывают другие области более глубоко, это только затронуто. Я думаю, потому что часто это то, что тестеры охраняют, поскольку «точные шаги будут выдавать наши секреты».
Спасибо, что прочитали любые отзывы приветствуются.
редактирование: один инструмент, который может оказаться полезным для этого на стороне Windows, описан здесь минимально: http://breakingcode.wordpress.com/2010/08/24/winappdbg-1-4-is-out/
вызов угона для толстой Java клиенты, чтобы узнать о пользовательских сетевых услугах, описаны здесь:
http://www.securitytube.net/JavaSnoop-How-to-hack-anything-written-in-Java-video.aspx
этот последний только минимально релевантен, но может оказаться уместным к тому, куда в конечном счете уходит спрашивающий. используя API, которые вам не нужны ... что угодно.
источник
Хакинг звучит довольно романтично, индустриальный шпионаж, утечки, взятки, воровство и просто удача - нет. Я бы не стал их считать.
источник