Olá a todos, estou tentando resolver um problema de faculdade, bem eu preciso criar um hack de um programa open source, eu tenho os códigos e sei o que fazer com meus códigos, porém não sei como eu faço para “ligar” meu programa com esse outro open source, já pensei em usar o readprocessmemory mas com isso terei acesso a memória e não é isso que estou querendo, eu já tenho o código open source e não preciso manipular a memória com ponteiros etc… Só preciso saber como eu posso conectar meu programa para que eu possa manipular diretamente o código ?
PS: não preciso que postem os códigos, mas sim uma maneira de fazer essa ligação, assim eu mesmo implementarei do meu jeito.
vamos ver se eu entendi: vc tem um programa open source X que vc NÃO PODE ( ou não quer) alterar o codigo fonte do mesmo, que esta rodando em um dado sistema operacional ( é um processo ) e vc quer se intrometer de alguma forma, seja lendo a memoria, seja se comunicando com o processo, mudando algum valor ou fazendo algo mais agressivo como alterando o comportamento do mesmo.
se sim, existem algumas maneiras, todas demandam de algum conhecimento do sistema operacional e qual a natureza do programa em questão ( ele roda sob uma maquina virtual? ele é interpretado? ele foi compilado para a plataforma alvo? )
se vc PODE mudar o codigo fonte, então é questão de entender o codigo em si.
de qualquer forma esta muito vago.
M
MatheusVB
Opa, deixa eu explicar melhor, lendo novamente meu tópico nem mesmo eu entendi direito…
Eu tenho um programa disponibilizado pelo professor que é Open Source, a questão da aula é abordagem da segurança da informação, a tarefa é manipulá-lo sem pegar o seu código e compilar, ou seja, é testar métodos que possam acessá-lo e modificá-lo, porém a única opção que conseguimos até agora é por meio de manipulação de memória, já fizemos as documentações necessárias para esse método específico, mas precisamos de um método que possa fazer esse acesso e modificação com base nos códigos do programa.
Precisamos de uma “luz” de métodos que possam ser utilizados, como modificar memória etc… Temos todas informações como qual SO e tipo de linguagem, precisamos apenas dessas maneiras para estudarmos cada uma e colocar na documentação a ser entregue.
peczenyj
O programa disponibilizado é em que? Java? C? .Net?
Java talvez vc possa usar reflection pra acessar alguma api
.Net poderia ver tb reflection ou ver se existe alguma interface COM
Em C temos varios tipos de vulnerabilidade como Buffer Overflow. Qualquer coisa que leia string vc poderia tentar enviar uma string maior que o buffer + código assembler pra causar desvios de rotina.
Veja se o programa foi compilado com opção debug e vc pode tentar usar o
GDB pra debugar e inspecionar memória etc
M
MatheusVB
Obrigado, irei estudar melhor o que você já passou de possibilidade. O programa em questão é em C.