Eu sempre me perguntei como você encontra API privada / não documentada ?
Exemplo da API não documentada / privada da Apple , Play Station , Windows Phone 7 , Kernel do Win32 , API do Windows , retorno de chamada oculto , etc.
Quais ferramentas os hackers usam para descobrir funções privadas e não documentadas?
Onde posso ler sobre as experiências das pessoas que pesquisam APIs privadas e técnicas de engenharia reversa que revelam os segredos normalmente explicados na documentação da API?
obrigado,
A
Ferramentas normais que você usa para desenvolver software :)
Normalmente, as funções da API não documentadas são apenas isso, não documentadas e não realmente escondidas com cuidado.
Criar uma API à prova do futuro é difícil - você pode facilmente adicionar itens à API, mas é realmente difícil remover qualquer coisa (sem quebrar alguns clientes). Portanto, tenha muito cuidado ao adicionar qualquer coisa à API. É por isso que pode haver algumas funções extras (para testar, em desenvolvimento, um hack rápido?) Na API, que não estão documentadas e sem garantias de trabalhar ou estar presente na próxima versão.
Essas funções não documentadas podem ser encontradas com alguma facilidade, desde que você saiba como os compiladores, vinculadores, bibliotecas e depuradores funcionam (material de programação do sistema). Saber a linguagem assembly da arquitetura de destino não será prejudicial. Se o seu IDE / compilador puder criar executáveis funcionais, você poderá fazer isso "manualmente" também e, mantendo os olhos abertos nesse caminho, poderá descobrir alguns recursos ocultos :)
Exemplo no ambiente Unix: um cenário em que temos documentação apenas para a função printf e gostaríamos de saber se existem outras funções semelhantes a printf . Linha de pensamento pode ser algo como:
1. Verifique os arquivos de cabeçalho
2. Verifique a biblioteca
3. Desmonte a função de biblioteca
Ou algo assim...
fonte
isenção de responsabilidade: eu gosto da resposta de ChrisF. Isso deixa de fora algumas abordagens, eu acho. Se ele for colocado nos comentários da resposta como eles são cobertos, excluirei minha resposta.
Pode cair na descompilação:
Encontrar outras APIs não documentadas também pode ser através da depuração de uma ferramenta fornecida pelo fornecedor que faz o que você deseja e do rastreamento de chamadas entre bibliotecas. Dessa forma, você pode ter uma idéia de que tipo de dados é enviado para onde.
Outras ferramentas "personalizadas" podem ser escritas para brincar com essas APIs não documentadas usando python e CTYPES ou ruby, com sua versão de algo semelhante até você descobrir exatamente o que está fazendo ou fuzilando por falhas. Este tópico é abordado em profundidade mínima por Aaron Portnoy em: http://pentest.cryptocity.net/reverse-engineering/ e em algumas de suas outras palestras em conferências (lembro-me de que ele fala diretamente sobre isso em uma palestra no Brasil). ) Está relacionado ao ER, mas não acho que seja exatamente o ER geral. Nota: os vídeos no pentest.cryptocity.net não são APENAS este tópico. Eles cobrem outras áreas com mais profundidade, isso é apenas abordado. Eu acho que porque muitas vezes é algo que os testadores guardam como "os passos exatos seriam revelar nossos segredos".
Obrigado por ler qualquer comentário apreciado.
edit: uma ferramenta que pode ser útil para isso no lado do Windows é abordada minimamente aqui: http://breakingcode.wordpress.com/2010/08/24/winappdbg-1-4-is-out/
chamada de seqüestro para java espesso os clientes para confundir serviços de rede personalizados são abordados aqui:
http://www.securitytube.net/JavaSnoop-How-to-hack-anything-written-in-Java-video.aspx
esse último é apenas minimamente relevante, mas pode ser pertinente para onde o questionador está indo. usando APIs que você não possui para fazer ... tanto faz.
fonte
Hacking parece bastante romântico, espionagem industrial, vazamentos, subornos, roubo e pura sorte não. Eu não os contaria embora.
fonte