[antlr-interest] analysing java source code

Jim O'Connor Jim.OConnor at microfocus.com
Fri Oct 3 07:13:19 PDT 2003


Hi Suma,
  The Cross Reference Tool is very raw.  I have been working for the past
month to enhance its recognition.  It will be "more approachable" when I get
done with it.

More approachable
	1. Users have different needs.  Holes will be left to "plug in"
different end results (see refMethod() in CodeProject.java).
	2. A few examples, documentation and a "how to" would be helpful.

  I see all this being accomplished in about three months, real time. 

The obfuscator could be more or less complicated, depending on how much you
plan to do.  It will be more complicated, if you plan on using the Cross
reference information.  If you know all the files in the project, and just
mangle consistantly, you just need a translator.

"Mangle consistantly"
even characters and odd characters

voltage => otgvlae
volume  => ouevlm

"name consistantly"
cross reference information necessary to find all voltage reference and
change them to v1

voltage => v1
volume => v2
etc...


Jim

-----Original Message-----
From: Suma Venkatesh [mailto:sumav_99 at yahoo.com]
Sent: Friday, October 03, 2003 1:47 AM
To: antlr-interest at yahoogroups.com
Subject: RE: [antlr-interest] analysing java source code


Hi
  Jim,

  Thank you so much for the help.I now kind of understand java.g,java.tree.g
and main
classes.I can now display the variable, types and methods etc..
My next task is to change the names of the variables into less meaningfull
ones like if
variable name is voltage,it should become v1 and so on.
I tried to experiment with the cross refererence tool.But i get compiler
errors and also
i dodnt understand how to use it to acheive my task.

Can u help me on this ??

thanks in advance,
suma
--- Jim O'Connor <Jim.OConnor at microfocus.com> wrote:
>  Hi Suma,
>   I assume you can "Tool" a grammar using antlr.  I assume you understand
> the role of the Main.java file in "running" the grammar.   If you don't
> understand either of those, I would recommend going to the getting started
> section of antlr.org.
>   The printing of the variables and types for a java file should be half
> hour exercise (being generous), assuming you already have java.g,
> java.tree.g, and Main.java cranked up.
> 
> Steps
> 1. Tool java.g
> 2. Tool java.tree.g
> 3.  compile all the *.java files, including Main.java.
> 4.  Execute Main.java given an input file.
>          I don't think it will output anything - no actions!
> 5.  To get your types and variables look at java.tree.g
> 
> variableDef
> 	:	#(VARIABLE_DEF modifiers typeSpec variableDeclarator
> varInitializer)
> 	;
> 
> variableDeclarator
> 	:	IDENT
> 	|	LBRACK variableDeclarator
> 	;
> 
> This section of the world should be very interesting to you.  Rip off some
> print methods from other grammars and you're set.
> 
> 
> The obfuscator, minimally,  is a translator that wants to make everything
> less readable, rather than more.  I haven't looked for translators, but
> there are people here that have opinions/expertise on those.
> 
> I am working on the Java Cross Referencing Tool.  The obfuscator would
want
> to know this type of information to make consistant changes. 
> 
> Hope that helps.
> 
> Jim
> 
>   
> 
> -----Original Message-----
> From: Suma Venkatesh
> To: antlr-interest at yahoogroups.com
> Sent: 10/1/03 6:14 PM
> Subject: Re: [antlr-interest] analysing java source code
> 
> Hi
>   Terence,
> 
>  I did look into that already but can you please give me some tips on
> how to run it and
> use it to achieve my task.I mean read a java file parse it and print
> variables and their
> types.some small sample will do for me.I need to start from here and
> later learn to
> analyse entire java code like control constructs etc.Our main idea is to
> build an
> obfuscation tool kit for java programs using antlr.
> 
> 
> thanks in advance,
> suma
> 
> 
> --- Terence Parr <parrt at antlr.org> wrote:
> > See the cross referencing headstart in the file sharing area.
> > 
> > Terence
> > On Wednesday, October 1, 2003, at 10:01 AM, Suma Venkatesh wrote:
> > 
> > > Hi,
> > >
> > >   Iam looking for  parsing which can parse an input java source
> code.I 
> > > mean the parser
> > > should read the source code and identify the variable names and
> types 
> > > and control
> > > structures.I saw java.g example of antlr.But can anyone help me on
> how 
> > > to use that for
> > > getting specific results like below.ALso it should the read from an 
> > > input file ,parse it
> > > and write the output in a file.
> > >
> > > Eg: Input is :
> > >   import java.util.*;
> > >
> > > public class HelloWorld{
> > >
> > > public static void main(String args[]) {
> > >
> > > String message = "Hello World";
> > > int count =0;
> > >
> > > 	while(count <10) {
> > >              System.out.println(message);
> > >              count++;
> > >         }
> > >
> > > }
> > >
> > > Output should be :
> > >
> > > Variables: type name
> > >            int  count
> > >            String message
> > >
> > > Can ANTLR do this and if so how ??
> > >
> > > PLEASE HELP ME!!
> > >
> > > thanks in advance,
> > > suma
> > >
> > >
> > >
> > > __________________________________
> > > Do you Yahoo!?
> > > The New Yahoo! Shopping - with improved product search
> > > http://shopping.yahoo.com
> > >
> > >
> > >
> > > Your use of Yahoo! Groups is subject to 
> > > http://docs.yahoo.com/info/terms/
> > >
> > >
> > >
> > --
> > Professor Comp. Sci., University of San Francisco
> > Creator, ANTLR Parser Generator, http://www.antlr.org
> > Co-founder, http://www.jguru.com
> > Co-founder, http://www.knowspam.net enjoy email again!
> > Co-founder, http://www.peerscope.com pure link sharing
> > 
> > 
> > 
> > 
> >  
> > 
> > Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/ 
> > 
> > 
> 
> 
> __________________________________
> Do you Yahoo!?
> The New Yahoo! Shopping - with improved product search
> http://shopping.yahoo.com
> 
>  
> 
> Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/ 
> 
> 
> 
> ________________________________________________________________________
> This e-mail has been scanned for viruses by MCI's Internet Managed
> Scanning Services - powered by MessageLabs. For further information
> visit http://www.mci.com
> ________________________________________________________________________
> 
>  
> 
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 
> 
> 


__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com

 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 



________________________________________________________________________
This e-mail has been scanned for viruses by MCI's Internet Managed Scanning
Services - powered by MessageLabs. For further information visit
http://www.mci.com
________________________________________________________________________

 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 




More information about the antlr-interest mailing list