System for obfuscating computer code upon disassembly

Electrical computers and digital processing systems: support – Data processing protection using cryptography – Computer instruction/address encryption

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C726S033000

Reexamination Certificate

active

07065652

ABSTRACT:
A system for preventing accurate disassembly of computer code. Such code masking, referred to as “obfuscation,” is useful to prevent unwanted parties from making copies of an original author's software, obtaining valuable information from the software for purposes of breaking into a program, stealing secrets, making derivative works, etc. The present invention uses assembly-language instructions so as to confuse the disassembler to produce results that are not an accurate representation of the original assembly code. In one embodiment, a method is provided where an interrupt, or software exception instruction, is used to mask several subsequent instructions. The instruction used can be any instruction that causes the disassembler to assume that one or more subsequent words, or bytes, are associated with the instruction. The method, instead, jumps directly to the bytes assumed associated with the instruction and executes those bytes for a different purpose. A preferred embodiment works with a popular Microsoft “ASM” assembler language and “DASM” disassembler. The instructions used to achieve the obfuscation include “INT” instructions. Using this approach up to 17 bytes of obfuscation can be achieved with five instructions. Each instruction remains obfuscated until executed and returns to an obfuscated state afterwards.

REFERENCES:
patent: 5748741 (1998-05-01), Johnson et al.
patent: 6205550 (2001-03-01), Nardone et al.
patent: 6594761 (2003-07-01), Chow et al.
patent: 6643775 (2003-11-01), Granger et al.
patent: 6665796 (2003-12-01), Folmsbee
patent: 6668325 (2003-12-01), Collberg et al.
patent: PCT/WO 97/04394 (1997-02-01), None
patent: PCT/WO 99/01815 (1999-01-01), None
Operating System Concepts, 5th edition, Silberschatz et al. Wiley & Sons, Figure 12.3 and pp. 402-404.
“Programmer's Guide to the IBM PC”, Peter Nortion, 1985, Microsoft Press, pp. 303, 49, Figure 3-1.
Turbo Assembler, Version 2.5, Borland International, 1988, 1991, p. 292.
Cohen, F.B., “Operating System Protection Through Program Evolution,” Computers & Security, Elsevier Science Publishers, Amsterdam, NL, vol. 12, No. 6, Oct. 1, 1993, pp. 565-584.
Mambo, M., et al., “A Tentative Approach to Constructing Tamper-Resistant Software,” School of Information Science, Japan Advanced Institute of Science and Technology, Sep. 23, 1997, pp. 23-33.
Bentson, R., “Re: “Hiding” variables in C,” Messages from Newsgroups: Comp. Lang. C., Comp. OS. MSDOS.Programmer, Sci.Crypt., Online! Mar. 6, 1992.
Hoffman, J., “Re: “Hiding” variables in C,” Messages from Newsgroups: Comp. Lang. C., Comp. OS. MSDOS.Programmer, Sci.Crypt., Online! Mar. 4, 1992.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System for obfuscating computer code upon disassembly does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System for obfuscating computer code upon disassembly, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System for obfuscating computer code upon disassembly will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3645994

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.