As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
is there an open source tainting tool? I am trying to analyze a Java project and it's java source code. Therefore I can see where and which purpose are parameters used for. For instance, is it used in an if statement or is it assigned to another variable etc.
Thanks
You could try using the Checker Framework.
Modern java IDEs provide such information. IMHO, best one is IntelliJ IDEA , but comemrcial license will cost you about 130$ (there is free community edition
wuth somehow reduced functionality with source code published, or 30 day free trial
of full version)
Eclipse and netbean also provide similar functionality, but are not as good.
( IMHO of course )
If you want a general purpose tool to track how a an arbitrary variable is used, or the source of values that feed into a variable, what you want is a program slicer. (Tainting is a special case, where one only wants to slice on certain inputs, usually from a source outside the program).
There is one called Indus. I've never used it, and I don't know its status.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
So I've just realized how easy it is to decompile my Java code. I've been searching around the net and I can't seem to figure out WHY its so easy. Every time I google something like "Why can I decomilple .class files?" or "Why does Java decompile so easily", all I get is links to software that can easily deompile my code. So I turn to you StackOverflow: why is it that Java can be converted back to easlily readable source code while C++ and other languages aren't very friendly to decompiling?
Thanks
Because Java byte-code is closer (more similar) to the source than assembly.
In particular, .class files include metadata for classnames, method names, field & parameter types, etc...
All a Java (or .Net) decompiler needs to do is look at the instructions in each method body, and turn them into the appropriate syntactic constructs.
By contrast, native languages like C++ do not include any metadata at all, so the decompiler needs to reconstruct everything.
Java is compiled into an intermediate form, JVM bytecode, that retains a large amount of the information contained in the original Java code. A language like C++ compiles into assembly code, with looks a lot different from the original code, and is, therefore, harder to reverse.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Our current system is based on a Spring/Hibernate/Java/MySQL stack. We have a relationship with a company for which we will end up doing a portion of the IT work. They are currently building a system using an outside vendor which is based on PHP/MySQL. I would like to make an argument that they should reconsider and switch to a Java-centric platform. My main argument is that we can utilize our current (Java-based) skillset for system maintenance and enhancements, instead of having a system which requires knowledge of both PHP and Java. However, they have asked if there is any technical reason why this couldn't happen.
It would be great if I could bring some technical arguments to table which show the two platforms are incompatible. However, I've googled the differences, and as far as I can tell, there wouldn't be any particular technical issues. For example, we could use web services for the systems to communicate.
So, the question is, is there anything one could say about PHP which makes it either incompatible with or just not as "good" as Java? E.g security, scalability and other enterprise considerations? I know it's a vague question, but it would be very helpful to get some input.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Anyone know any existing library in the market? or open source project? The library should be able to convert picture or any images to cartoon-like image.
Please suggest me if you have use anything like that before.
Depends on what you mean by cartoon-like. Sometimes, applying some filters and doing some other minor operations might give you a decent result. If that is what you are after, you could use something like JavaCV (which is a wrapper for OpenCV.
This library should provide you with access to some graphical tools which should allow you to manipulate the image to obtain what you are after.
If on the other hand you are after a caricature type of cartoon, I think that you would need to use some AI techniques since caricatures usually involve the exaggeration of some physical feature, and for that, you would need AI to extract the said feature.
Finally, you can take a look at this previous SO thread which contains some other pointers on how you can convert an image to a cartoon.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I want to analyze runtime behavior of the application with software profiling. As far as I know there are two basic types of profiling technique. First is Sample based profiling and second is Instrumentation. Can somebody please tell me which one should I use ? I want to analyze behavior of single (java) application and not behavior of one application with other. I am not concerned about the performance related issues like cpu cycle time, memory allocation etc. Please suggest some tools also which can help me.
I would really appreciate any help regarding this.
Thank you.
If you're interested in control flow, sampling is not appropriate (it's great for finding performance bottlenecks). Only instrumentation can provide data for control flow.
Recording method-level chronological data for an application will result in a huge amount of data unless you carefully define which classes should be instrumented.
JProfiler has a call tracer view that may be suitable for your purpose, also see this question.
Disclaimer: My company develops JProfiler.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm trying to assemble a workshop on OOP using Java and one of the things I want to try is to do a sort of autopsy of an application.
The ideia is to show the advantages os OOP through a real-life example of one, or more, complex applications.
My question is: can you sugest a good open-source java project, that is currently under development, and as a bonus is a application that is useful for college students.
Thanks in advance
Ricardo Gomes
This may be a stretch, but if your goal is to get students engaged it may not be.
Take a look at IBM's Robocode. It's an open source Java programming game. You could build / download some existing bots and do your autopsy on them. You could also implement a bot in a very non-OOP manor and refactor it into something more OO.
Do not use Eclipse. That thing is gigantic. It would take an experienced programmer a couple of months just to figure out how it all fits together.
How about HSQLDB? It's a mature project that's used in the real world, and it's fairly complex - but it's also limited in what it tries to do, so the complexity is still manageable.
You can probably look here: http://java-source.net/
My personal one would be something like Eclipse, which everyone uses, works well (enough), is very extensible, and written in Java. But of-course, that's a huge application