Página 1 de 1

Escrever em área não formatada do HD...

Enviado: 28 Jul 2007 15:41
por Eolo
(Esta é pro Maligno, porque [parece que] tem a ver com C++)


Há muito muito tempo atrás eu conheci um camarada que trabalhava com programação, que foi aliás quem me deu as primeiras dicas do Clipper, e me marcou uma coisa que ele comentou, sobre segurança dos sistemas dele, que eu nunca consegui confirmar.

Seguinte: segundo ele, o DOS (à época, o que existia) não particionava e formatava 100% da capacidade disponível nos HDs, sobrando sempre algumas "rebarbas" que não eram utilizadas mas que podiam sim ser acessadas, por exemplo pelo C+...

(algo como, mesmo com SET FILTER TO RECNO()>10, vc fazer um GOTO 5 e o ponteiro estacionar no recno()=5)

Sabendo disso, ele fez uma função que ia "out there", fora da partição, e gravava / lia alguma coisa: (a) no primeiro acesso, ele gravava "X" nesse algum lugar e "X" dentro do EXE; (b) nos acessos seguintes, ele checava a existência e igualdade dos dois "X". Se não batesse, o EXE tinha sido copiado pra outra máquina...

Isso tem algum fundamento?

Enviado: 28 Jul 2007 16:10
por Maligno
Isso tem algum fundamento?
Totalmente. Na época do DOS eu próprio só fazia assim. Instalava no cliente e por meio de um programa ASM "marcava" nesta área não só o programa como instalado, como também inseria algumas informações extras, como por exemplo, até quando o programa funcionaria. Ele fazia em C, mas não propriamente em C, já que nesta linguagem, in natura, você só tem as funções de alto nível para acesso ao disco. Era preciso usar uma interrupção do DOS em baixo nível. Em C dá, mas só através de uma função que permite interagir com o DOS em baixo nível.
Era um esqueminha legal, mas depois, quando os anti-vírus começaram a reclamar demais dos meus acessos "esquisitos", abandonei a técnica. :)