How protect your application against Revtran - Home
This text targets programmers who have already tried to protect their own application


Method used by SafeOPL, nOPL+, CodeVault, OPLProtect :
Source Code Before (Hex View) Explanation
If 0
Print "***Protection***"
Endif
4F 00
5B 17 00
2B 10
2A 2A 2A 50 72 6F 74 65 63 74 69 6F 6E 2A 2A 2A
8B 92
If (4F) 0 (00)
Jump (5B=Goto) 17 (ie Skip the next 17h=22d) bytes
Take the next 16 bytes (2B 10)
***Protection*** (16 Bytes)
And print them on screen (8B 92)
Revtran After (Hex View) Explanation
Unparseable command 4F 00
5B 17 00
2B FF
2A 2A 2A 50 72 6F 74 65 63 74 69 6F 6E 2A 2A 2A
8B 92
If (4F) 0 (00)
Jump (5B=Goto) 17 (ie Skip the next 17h=22d) bytes
Take the next 255 bytes (2B FF)
As string Revtran will read the string
+ many opcode command and lost 8B 92 !


The OPX protection method 1
Source Code Explanation Revtran
DECLARE OPX SYSTEM,&1000025C,$101
Protection:(Hacker$) : 123
END DECLARE

include "System.oxh"

Proc Main:
If 0
Protection:("Hacker go out")
Endif
...
Endp
Here the protection is the fake procedure. The procedure 123. Revtran will read Z:/system/OPL/SYSTEM.oxh and try to locate this proc. It will not find it and crach. In order to increase the diffculty you can increase the number of parameters and the type of them. Z:/system/OPL/SYSTEM.oxh : routine #123 not found


The OPX protection method 2 (The best)
Source Code Explanation Revtran
DECLARE OPX SYSTEM,&1000025C,$101
JMFrouin:(Move%,HelpThread&,Ver$) : 13
JMFrouin2:(HelpThread&) : 13
JMFrouin3:(Move%) : 13
JMFrouin4:(Move%,HelpThread&,Ver$) : 13
END DECLARE

Proc Main:
If 0
JMFrouin3:(0)
JMFrouin4:(3,4,"i")
endif
...
endp
Here the protection is based on 4 procedure with same number. (Here number 13).
Be careful I don't know how to remove this protection.
!! Symbol for $4554 missing at &6B !!
!! Unparseable command at &6B; procedure skipped. !!


Hidding an application from Revtran
Before (Hex view) Explanation Revtran
For an OPO File
37 00 00 10 73 00 00 10
For an APP File
37 00 00 10 74 00 00 10
Just change 37 by 00 at offset &00 for OPO or APP.
Be careful you must to change the Checksum UID. To do that use the auto-recalc function in Hexeditor 3.00
Unknow file type;
can't reverse-translate.

This site is always in construction ...
Most of documents on this site are © Jean-Michel Frouin since 1995.