API's Mais importantes para os Crackers

Iniciado por unn4m3D_BR, 28 de Junho , 2010, 12:48:41 PM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

unn4m3D_BR

Olá meus caros .. !
Procurando sempre coisas novas e buscando aperfeiçoamento encontrei um artigo muito legal que decidi entender e traduzir pra vocês com algumas modificações que achei necessárias claro.

Poucos são os artigos que pego pra traduzir, até porque o pedrinho que sempre traduz pra mim agradeço sempre a ele e, mais uma vez quero agradecer sempre pelo carinho e dedicação em ajudar.

Então aqui está uma coisa muito importante para os crackers, programadores, curiosos o que seja, é muito bom utilizar as API's para facilitar a programação e também para crackiar, então vamos
ficar atentos ao que geralmente se é feito para burlar, pois assim também aprendemos a proteger.



GetLocalTime
GetSystemTime

Recuperam a hora e data atual do windows, quase sempre são usadas para programas que tem um período de avaliação, pois ajudam a calcular os dias restantes até o programa parar totalmente com suas funcionalidades, se você descobrir esses pontos e modificar o fluxo ou qualquer comparação, terá boas chances de conseguir burlar o aplicativo.

Exemplo:
CALL program.00400000
MOV ECX,[something]
MOV EDX,[something]
MOV EAX,[something]
PUSH ECX
PUSH EDX
PUSH EAX

-----------

CALL <JMP.&KERNEL32.GetLocalTime>

A API GetLocalTime está dentro da chamada do programa a data vai ser copiada para os registradores ECX, EDX, EAX [ ano, mes, dia em hexa ] em seguida empurrados pra pilha.



MessageBox
CreateWindow
CreateWindowEx


Essas funções criam uma nova janela, DialogBox, pop-ups e são frequentemente usadas para criar uma nag screen, lembrete de registro, lembrete de versão trial e AboutBox.
Se houver breakpoints nessas chamadas, você pode encontrar o ponto de onde é criado e achar a rotina ou inicio da criação pra poder modificar a seu favor.

Exemplo:
CALL DWORD PTR DS:[<&USER32.CreateWindowExA>]



CreateFile
ReadFile


Funções usadas para criar, abrir ou ler um arquivo, geralmente usados para programas que utilizam informações de licença em algum arquivo, encontrando a localização dessas chamadas é fácil modificar para um patch dizendo ao fluxo do programa que ele ta registrado ou para poder ler os dadis que são gravados no arquivo.

Exemplo:
CALL DWORD PTR DS:[<&KERNEL32.CreateFileW>]



RegCloseKey
RegCreateKey and RegCreateKeyEx
RegOpenKey and RegOpenKeyEx
RegSetValue and RegSetValueEx

Essas funções servem para abrir, ler, criar, editar chaves no registro do windows, funcionam como as API's de manipulação de arquivo, geralmente usadas para verificar se um programa esta com a chave correta no registro do windows, logo sempre que o programa iniciar aqui poder ser um lugar
a mais para ser checado, tanto para um patch ou para serial.

Exemplo:
CALL DWORD PTR DS:[<&ADVAPI32.RegCreateKeyExW>]



- VB
Comparação de String
_ vbaStrCmp (String Compare)
_ vbaStrComp (String Compare)
_ vbaStrCompVar (String Compare of special Variable)



Teste de variaveis
_ vbaVarTstEq (Variables: Test if Equal)
_ vbaVarTstNe (Variables: Test if Not Equal)
_ vbaVarTstCmpEq (Variables: Compare if Equal)



- Delphi, C++, ASM
Geralmente usados em Delphi, C++ e ASM para coletar dados do edit, como nome digitado senha digitada e, apartir dessa comparação chegar ao serial correto.

GetDlgItem
GetDlgItemTextA
GetWindowTextA




isDebuggerPresent
Usada para verificar se existe algum debugger present, embora seja muito fácil burlar é recomendável para ser mais um complemento contra depuração.



Gostaria de ressaltar que muitos irão conhecer isso e até mais API's, fato que tem outras que eu também gostaria de propor aqui pra vocês, porém o interessante é também a galer compartilhar postando aqui algumas API's que acham legal ou que costumam usar em verificação de registro de seus aplicativos, a troca de conhecimento é fundamental.

Algumas coisas eu traduzi, outras expliquei com minhas palavras porém a idéia é a mesma proposta no fórum que retirei isso, que é as pessoas postarem as API's relacionadas ao cracking e explicar o funcionamento da API e como pode ajudar no cracking.

Fonte: Forum underground

bjxx .. unn4 .. !
Reversing is my life!
www.reversing4life.com