• No se han encontrado resultados

Competidores potenciales barreras de entrada

CAPITULO IV: ASPECTOS DE MERCADO

4.3. Micro Entorno (2019)

4.3.5 Competidores potenciales barreras de entrada

The previous chapter showed that using goto statements (especially in conjunction with opaque predicates) can give very powerful and effective obfuscations. This report has shown that this is possible. The implementation of such an obfuscator is possible. An improvement to such a program would be the effect of goto statements on variable declarations. The program could have also had extra features for data and layout obfuscation.

Although the initial interest from five years ago appears to have been lost, the findings of this report suggest that the study of obfuscation can yield interesting results. Obfuscation should be heavily considered for anyone who wishes to protect their code while making it accessible over networks.

Bibliography

[1] Aho, A V, Sethi, R & Ullman, J D, (1986), Compilers: Principles, Techniques and Tools, 1st Edition, Addison-Wesley

[2] Antonioli, D, N & Pilz, M, (1998), Analysis of the Java Class File, URL:http://www.netobjectdays.org/pdf/98/jit/ca3.pdf [24th March 2002]

[3] Bertelsen, P, (2000), Proposal for improving the JVM, URL:http://www.dina.dk/~pmb/jvm-suggestions.html [3rd February 2002]

[4] Cifuentes, C, (1993), A Structuring Algorithm for Decompilation, Proceedings of the XIX

Conferencia Latinoamericana de Informatica, URL:http://www.it.uq.edu.au/~cristina/clei2.ps [17th March 2002]

[5] Cifuentes, C, (1994), Reverse Compilation Techniques,

URL:ftp://ftp.it.uq.edu.au/pub/CSM/dcc/decompilation_thesis.ps.gz [17th March 2002]

[6] Cifuentes, C & Gough, K, J, (1995), Decompilation of Binary Programs, URL:http://www.it.uq.edu.au/~cristina/spe.ps [17th March 2002]

[7] Collberg, C, (2002), Security through Obscurity Handout 3,

URL:http://www.cs.arizona.edu/~collberg/Teaching/620/2002/Handouts/Handout-3.pdf [29th April 2002]

[8] Collberg, C, Thomborson, C & Low, D, (1997), A Taxonomy of Obfuscating Transformations, URL:http://www.cs.arizona.edu/~collberg/Research/Publications/CollbergThomborsonLow97a/

A4.pdf [10th December 2001]

[9] Collberg, C, Thomborson, C & Low D, (1998), Manufacturing Cheap, Resilient, and Stealthy Opaque Constructs,

URL:http://www.cs.arizona.edu/~collberg/Research/Publications/CollbergThomborsonLow98a/

A4.pdf [18th March 2002]

[10] Collberg, C, Thomborson, C & Low, D, (1998), Breaking Abstractions and Unstructuring Data Structures,

URL:http://www.cs.arizona.edu/~collberg/Research/Publications/CollbergThomborsonLow97d/

[19th March 2002]

[11] Collberg, C & Thomborson, T, (2000), Watermarking, Tamper-Proofing, and Obfuscation-Tools for Software Protection, URL:http://www.cs.auckland.ac.nz/~cthombor/Pubs/tsesubmission.pdf [13th March 2002]

[12] Csontos, P & Porkoláb, Z, (2001), On The Complexity Of Exception Handling,

URL:http://www.st.informatik.tu-darmstadt.de/phdws/complexity_of_exception_handling.html [13th December 2001]

[13] Dahm, M, (2002), Byte Code Engineering Library, URL:http://bcel.sourceforge.net/ [13th April 2002]

[14] Dahm, M, (2002), Class Construction Kit, URL:http://bcel.sourceforge.net/cck.html [13th April 2002]

[15] dcc Decompiler, (2001), The dcc Decompiler,

URL:http://www.csee.uq.edu.au/~csmweb/dcc.html [17th March 2002]

[16] Digital Cat’s Java Resource Center – Decompilation and Reverse Engineering Part 1, (1997), URL:http://javacats.com/US/articles/decompiler1.html [7th February 2002]

[17] Digital Cat’s Java Resource Center, (1997), Decompilation and Reverse Engineering Part 2, URL:http://javacats.com/US/articles/decompiler1.html [7th February 2002]

[18] Dijkstra, E, W, (1968), Go To Statement Considered Harmful, URL:http://www.acm.org/classics/oct95/ [2nd November 2001]

[19] Dyer, D, (1997), Java Decompilers Compared, URL:http://www.javaworld.com/javaworld/jw-07-1997/jw-07-decompilers_p.html [2nd November 2001]

[20] Dyer, D, (2002), Java Decompiler,

URL:http://www.andromeda.com/people/ddyer/java/decompiler-table.html [25th January 2002]

[21] Eckel, B, (1998), Thinking in Java, 1st Edition, Prentice Hall

[22] ej-technologies, (2002), jclasslib, URL:http://jclasslib.sourceforge.net/ [25th April 2002]

[23] FOLDOC, (2002), Free On-Line Dictionary Of Computing – public key encryption, URL:http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?public-key+encryption [15th April 2002]

[24] FOLDOC, (2002), Free On-Line Dictionary Of Computing – digital signature,

URL:http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=digital+signature [15th April 2002]

[25] FOLDOC, (2002), Free On-Line Dictionary Of Computing – one-way hash function, URL:http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?one-way+hash+function [15th April 2002]

[26] inside-java.com, (1998), Java Obfuscators, URL:http://www.inside-java.com/articles/obfuscators/ [31st October 2001]

[27] JavaCat, (1996), The Java Programming Environment,

URL:http://javacats.com/US/articles/decompiler1.html [7th February 2002]

[28] Java Wamba, (2001), Java Wamba,

URL:http://members.tripod.com/~javawamba/software.htm [13th December 2001]

[29] Joshi, P, (1999), Verification, Validation and Testing Techniques,

URL:http://manta.cs.vt.edu/cs6204/Assignments/Presentations/Joshi.ppt [25th April 2002]

[30] Kawa, the Java-based Scheme system, (2001), URL:http://www.gnu.org/software/kawa/ [16th March 2002]

[31] Lai, H, (2001) A Comparative Survey of Java obfuscators available on the Internet,

URL:http://www.cs.auckland.ac.nz/~cthombor/Students/hlai/hongying.pdf [13th December 2001]

[32] Lindholm, T & Yellin, F, (1999), The Java virtual machine specification, 2nd Edition, Addison-Wesley

[33] Low, D, (1998), Java Control Flow Obfuscation,

URL:http://www.cs.washington.edu/homes/douglas/publish/thesis.ps [30th April 2002]

[34] Low, D, (1998), Protecting Java Code via Code Obfuscation,

URL:http://www.acm.org/crossroads/xrds4-3/codeob.html [30th April 2002]

[35] Mahmoud, Q, H, (1997), Java Tip 22: Protect your bytecodes from reverse engineering/decompilation, URL:http://www.javaworld.com/javaworld/javatips/jw-javatip22.html [28th April 2002]

[36] Mambo, M, Takanori, M & Eiji, O, (1997), A Tentative Approach to Constructing Tamper-Resistant Software, URL: http://web.yl.is.s.u-tokyo.ac.jp/~cocoa/reading/archive/p23-mambo.pdf [13th December 2001]

[37] McManis, C, (1996), The basics of Java class loaders,

URL:http://www.javaworld.com/javaworld/jw-10-1996/jw-10-indepth.html [13th March 2002]

[38] Meurrens, M, (1997), Java Code Engineering & Reverse Engineering,

URL:http://www.meurrens.org/ip-Links/java/codeEngineering/index.html [13th December 2001]

[39] Mevel Y, (1999), The loop blocking transformation,

URL:http://www.irisa.fr/caps/PROJECTS/TSF/demo/doc/node65.html [25th April 2002]

[40] Neshkov, A, (2002), DJ Java Decompiler,

URL:http://members.fortunecity.com/neshkov/dj.html [15th February 2002]

[41] Nolan, G, (1997), Decompile Once, Run Anywhere Protecting Your Java Source, URL:http://www.webtechniques.com/archives/1997/09/nolan/ [29th April 2002]

[42] Reilly, D, (2001), Inside Java: The Java Virtual Machine,

URL:http://www.javacoffeebreak.com/articles/inside_java/insidejava-jan99.html [18th December 2001]

[43] Smith, E, (2001), Mocha, the Java Decompiler,

URL:http://www.brouhaha.com/~eric/computers/mocha.html [28th April 2002]

[44] Sun Microsystems Inc., (2001), javap – The Java Class File Disassembler,

URL:http://java.sun.com/products/jdk/1.1/docs/tooldocs/solaris/javap.html [2nd November 2001]

[45] Tanenbaum, A, S, (1996), Computer Networks, 3rd Edition, Prentice Hall

[46] The Ethics of Decompilation, (1998), The Ethics of Decompilation,

URL:http://www.itee.uq.edu.au/~csmweb/decompilation/ethics.html [17th March 2002]

[47] Travis, G, (2001), How to lock down your Java code (or open up someone else's), URL:http://www-106.ibm.com/develozperworks/java/library/j-obfus/ [31st October 2001]

[48] Van Vliet, H, (1996), A Tercentennial,

URL:http://www.newarchitectmag.com/documents/s=6410/new1013637873/sidebar.htm [31st October 2001]

[49] Vasudevan, A, (2001), Java Decompiler HOW-TO, URL:http://www.tldp.org/HOWTO/Java-Decompiler-HOWTO.html [31st October 2001]

[50] Venners, B, (1996), Under the Hood, URL:http://www.javaworld.com/columns/jw-hood-index.shtml [10th April 2002]

[51] Venners, B, (1996), The lean, mean, virtual machine,

URL:http://www.javaworld.com/javaworld/jw-06-1996/jw-06-vm_p.html [20th March 2002]

[52] Venners, B, (1996), The Java class file lifestyle,

URL:http://www.javaworld.com/javaworld/jw-07-1996/jw-07-classfile_p.html [20th March 2002]

[53] Venners, B, (1996), Java’s garbage-collected heap,

URL:http://www.javaworld.com/javaworld/jw-08-1996/jw-08-gc_p.html [8th April 2002]

[54] Venners, B, (1996), Bytecode basics, URL:http://www.javaworld.com/javaworld/jw-09-1996/jw-09-bytecodes_p.html [8th April 2002]

[55] Venners, B, (1996), Floating-point arithmetic, URL:http://www.javaworld.com/javaworld/jw-10-1996/jw-10-hood_p.html [8th April 2002]

[56] Venners, B, (1996), Logic and integer arithmetic,

URL:http://www.javaworld.com/javaworld/jw-11-1996/jw-11-hood_p.html [8th April 2002]

[57] Venners, B, (1996), Objects and arrays, URL:http://www.javaworld.com/javaworld/jw-12-1996/jw-12-hood_p.html [8th April 2002]

[58] Venners, B, (1996), Control flow, URL:http://www.javaworld.com/javaworld/jw-03-1997/jw-03-hood_p.html [8th April 2002]

[59] Venners, B, (1996), How the Java virtual machine handles method invocation,

URL:http://www.javaworld.com/javaworld/jw-06-1997/jw-06-hood_p.html [8th April 2002]

[60] Venners, B, (1996), How the Java virtual machine handles exceptions,

URL:http://www.javaworld.com/javaworld/jw-01-1997/jw-01-hood_p.html [8th April 2002]

[61] Venners, B, (1996), Java’s security architecture,

URL:http://www.javaworld.com/javaworld/jw-08-1997/jw-08-hood_p.html [8th April 2002]

[62] Venners, B, (1996), Security and the class loader architecture,

URL:http://www.javaworld.com/javaworld/jw-09-1997/jw-09-hood_p.html [8th April 2002]

[63] Venners, B, (1996), Security and the class verifier,

URL:http://www.javaworld.com/javaworld/jw-10-1997/jw-10-hood_p.html [8th April 2002]

[64] Venners, ,B, (1999), Inside the Java 2 Virtual Machine Chapter 1,

URL:http://www.artima.com/insidejvm/ed2/ch01IntroToJavasArchitecturePrint.html [27th April 2002]

[65] Venners, ,B, (1999), Inside the Java 2 Virtual Machine Chapter 2,

URL:http://www.artima.com/insidejvm/ed2/ch02PlatformIndependencePrint.html [27th April 2002]

[66] Venners, ,B, (1999), Inside the Java 2 Virtual Machine Chapter 5,

URL:http://www.artima.com/insidejvm/ed2/ch05JavaVirtualMachinePrint.html [27th April 2002]

[67] whatis.com, (2002), JIT – a whatis definition,

URL:http://whatis.techtarget.com/definition/0,,sid9_gci212423,00.html [15th April 2002]

[68] Wilhelm, U G, (1997) Cryptographically Protected Objects,

URL:http://lsewww.epfl.ch/~willhelm/CryPO.html [9th December 2001]

[69] Yu, G, (2001), Record and Playback For Java Software Watermarking,

URL:http://www.cs.auckland.ac.nz/~cthombor/Students/gyu/gyu.pdf [17th March 2002]

[70] Zhao, J, (1998), Analyzing Control Flow in Java Bytecode,

URL:http://citeseer.nj.nec.com/cache/papers/cs/14884/http:zSzzSzwww.fit.ac.jpzSz~zhaozSzpub zSzpszSzjcfa.pdf/analyzing-control-flow-in.pdf [17th March 2002]

Obfuscators

[71] 2LKit LLC, (2002), 2LKit Obfuscator,

URL:http://www.2lkit.com/products/2LKitObf/index.htm [24th April 2002]

[72] 4thpass, (2002), SourceGuard, URL:http://www.4thpass.com/sourceguard [29th April 2002]

[73] Ant, (2002), Ant, URL:http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/bin/ [24th April 2002]

[74] Aubjex, (2002), Aubjex Obfuscator, URL:http://www.alajava.com/aubjex/ [24th April 2002]

[75] CafeBabe, (2002), CafeBabe,

URL:http://www.geocities.com/CapeCanaveral/Hall/2334/programs.html [24th April 2002]

[76] codingart, (2002), CodeShield, URL:http://www.codingart.com/codeshield.html [24th April 2002]

[77] Coval, P, (2002), Jammer, URL:http://rzr.online.fr/docs/shop/jammer.htm [29th April 2002]

[78] Dr. Java, (2001), The Marvin Obfuscator, URL:http://www.drjava.de/obfuscator/ [29th April 2002]

[79] Eastridge Technology, (2002), Jshrink, URL:http://www.e-t.com/jshrink.html [23rd April 2002]

[80] Elegant Software, (1998), JMangle: The Java Class Mangler, URL:http://www.elegant-software.com/software/jmangle/ [28th April 2002]

[81] Elixir Technology, (2002), Elixir IDE, URL:http://www.elixirtech.com/ElixirIDE/ [28th April 2002]

[82] Excelsior LLC, (2002), Excelsior JET, URL:http://www.excelsior-usa.com/jet.html [28th April 2002]

[83] Force5 Software, (2002), JCloak, URL:http://www.force5.com/JCloak/ProductJCloak.html [29th April 2002]

[84] Helseth Digital System Inc, (2001), Helseth JObfuscator, URL:http://www.helseth.com/HJO.htm [24th April 2002]

[85] JAMM Consulting, (2002), Obfuscate, URL:http://www.JAMMConsulting.com [26th April 2002]

[86] Jansen, M, (2000), Jopt – The Java Class File Optimizer, URL:http://www-i2.informatik.rwth-aachen.de/~markusj/jopt/ [29th April 2002]

[87] JODE, (2001), Java Optimize and Decompile Environment, URL:http://jode.sourceforge.net/

[30th April 2002]

[88] Jokipii, E, (2002), JOBE – The Java Obfuscator,

URL:http://www-personal.engin.umich.edu/java/unsupported/jobe/doc.html [30th April 2002]

[89] JProof Bytecode Protection, (2002), 1stBarrier MINI, URL:http://www.jproof.com/ [24th April 2002]

[90] LNK Corporation Inc., (2001), ShroudIt!, URL:http://www.lnk.com/ [27th April 2002]

[91] MochaSoft, (1997), Mocha Source Obfuscator, URL:http://www.mochasoft.dk/ [27th April 2002]

[92] Mocha Source Obfuscator, (1997), Mocha Source Obfuscator,

URL:http://www.greatfreeware.com/Web_Authoring/Java_Programming_Tools/3013.html [30th April 2002]

[93] Plumb Design Inc., (2001), Condensity, URL:http://www.condensity.com/ [24th April 2002]

[94] preEmptiveSolutions, (2002), DashO-Pro, URL:http://www.preemptive.com/ [23rd April 2002]

[95] Retrologic, (2002), RetroGuard, URL:http://www.retrologic.com/ [24th April 2002]

[96] sbktech.org, (1997), HashJava, URL:http://kbs.best.vwh.net/hashjava_old.html [29th April 2002]

[97] simtel.net, (2000), File Obfuscator, URL:http://www.simtel.net/pub/pd/18539.html [24th April 2002]

[98] SmokeScreen, (2001), SmokeScreen, URL:http://www.leesw.com/ [29th April 2002]

[99] Van Vliet, H, (1996), Crema,

URL:http://www-personal.engin.umich.edu/java/unsupported/crema-e1/doc/index.html [30th April 2002]

[100] WingSoft, (2000), WingGuard Obfuscator, URL:http://www.wingsoft.com/wingguard.html [10th December 2001]

[101] Zelix Pty Ltd., (2001), Zelix KlassMaster 2nd Generation Protection, URL:http://www.zelix.com/klassmaster/ [13th December 2001]