Re: LZ: Self Encrypting Programs


[Prev][Next][Index][Thread]

Re: LZ: Self Encrypting Programs



Michael Wyman wrote:
> 
> I had a thought a while ago, about making a program self encrypting (and
> decrypting) so that while the program is running, the code is decrypted and
> in the actual opcodes.  When the program exits, it encrypts itself, thereby
> making it virtually impossible to decompile unless somebody has a lot of
> time on their hands, as well as hiding the location of variables
> (passwords and such).  Tell me what you think!
> 
> #include ti-85.h
> 
> *org 0
> db "(whatever)", 0
> ;start of decryption
>  ld    hl, Encrypt_loop
>  ld    de, Encrypted_byte
>  sbc   hl, de
>  ex    de, hl
>  push  de
>  ld    bc, (PROGRAM_ADDR)
>  add   hl, bc
>  push  hl
>  ld    a, (hl)
>  cp    $0f
>  jr    Z, Prog_Start
> Decrypt_loop:
>  ld    a, (hl)
>  xor   $ff
>  ld    (hl), a
>  inc   hl
>  dec   de
>  jr    nz, Decrypt_loop
>  jr    Prog_Start
> Encypted_byte:
> db $0f
> Prog_Start:

If you have it rewrite itself at the begining it should loose the revert
to original when it exits lots of computer programs did this to prevent
people from modifying them.


Follow-Ups: References: