|
Again that is not precise.
A 'dropped' IP packet on a firewall involves very specific functionality. That functionality is different than what occurs when a proxy does not forward a TCP request.
That is because IP is not TCP. Two different protocols.
So if ALL you want to do is not forward a TCP request then it would seem obvious - don't forward it. You can do that in Java.
But that is NOT what happens in a firewall. You can't drop an IP packet in Java because the Java API does not support the IP protocol.
|
|
|
|
|
Decompiled a .class (translating to C++) using third party tools (namely Java Decompiler by Emmanuel Dupuy and DJ Java) and also from the bytecode output from javap; all result in the following:
StringBuffer stringbuffer = new StringBuffer();
for(int i = 0; i < stringbuffer.length(); i++)
{
byte byte0 = (byte)stringbuffer.charAt(i);
stringbuffer.append((char)byte0);
}
I've been scratching my head for hours trying to figure it out. From what I can see it creates an empty buffer, tests the length (which would be 0) against 0 and skips the loop. Please, somebody, explain it to me.
For completeness sake here is the javap output:
0: getstatic #5;
3: ifeq 47
6: new #4;
9: dup
10: invokespecial #9;
13: astore_1
14: iconst_0
15: istore_2
16: goto 36
19: aload_1
20: iload_2
21: invokevirtual #13;
24: i2b
25: istore_3
26: aload_1
27: iload_3
28: i2c
29: invokevirtual #11;
32: pop
33: iinc 2, 1
36: iload_2
37: aload_1
38: invokevirtual #15;
41: if_icmplt 19
44: invokestatic #12;
47: getstatic #6;
50: ifeq 57
53: iconst_0
54: putstatic #6;
57: iconst_0
58: putstatic #5;
61: return
Waldermort
|
|
|
|
|
Your assessment looks correct: the loop will always be skipped. What were you trying to decompile, anyway?
|
|
|
|
|
Thanks for the confirmation, I thought I was missing something. After posting the message a came across a few other oddities like double xor'ing values and over complicated method calls that return the same data as passed in.
Went from 4pm to 8am, manually reversing about 2000 lines of bytecode only to end up with a 9 line C++ method.
I can only guess that the coder, an ex-coworker, coded it in such a way to make reverse engineering very difficult. By the way, it was initially a web app that was later converted to a standalone binary.
Waldermort
|
|
|
|
|
I love that:
wiki on Obfuscated_code[^]
one can have hours of fun with this!
did the decompiler figure out what really is supposed to happen here? the code in the loop also doesn't make sense. Please try to decompile it into a JAVA code - just to see what happens.
regards
Torsten
I never finish anyth...
|
|
|
|
|
I'm guessing that only about 1/5th of this code actual does anything. I would love to just plug it into a debugger and find out exactly what is going on but I gave up on that idea. The only thing I can do now is extract the base algorithms and rewrite the remaining code myself.
At this point I'm thinking that even if I had the original code at hand (uncommented), I would probably still have a headache.
Waldermort
|
|
|
|
|
You are right. Loop skipped the condition all the times. I'm not sure the original code has an issue or the decompiler caused any.
I appreciate your help all the time...
CodingLover
|
|
|
|
|
I am unable to load C# DLLs from Win32 DLL API when called from JAVA Application using JNI.
I have used Comvisible(true)property for C# DLL, i generate a TLB file for the C# DLL using REGASM and then used this to get the COM interface of the DLL.
CreateInstance Fails and Gives error as "Class Not registered".
Could anyone guide me with this?
|
|
|
|
|
Vodka_Chill wrote: CreateInstance Fails and Gives error as "Class Not registered".
... which suggests that the UUID value you are using does not match the entry in the registry. Check your values again to make sure they are correct.
|
|
|
|
|
Via JNI it is rather simple to do the following.
1. Java calls JNI.
2. JNI calls secondardy dll (not managed code.)
However when the secondary dll is managed code one must take additional steps.
There are threads dealing with this in the Oracle Java JNI forum.
I believe one (or the only way) involves the correct implementation of the 'manifest'. That term refers to .Net code (the dll) and does NOT refer to the file associated with a java jar.
As a suggestion, myself I would not use JNI unless there is a proven need for it. Instead implement an executable which one manages in Java via Runtime.exec() or ProcessBuilder. It uses a communications API to talk between the app and Java. It is easier to debug, fix and it can't crash the VM.
|
|
|
|
|
IWAB0379E Unable to open http://localhost:8080/WebServiceProject/CalculatorPort?WSDL.
IWAB0135E An unexpected error has occurred.
WSDLException
WSDLException: faultCode=OTHER_ERROR: http://localhost:8080/WebServiceProject/CalculatorPort?WSDL
Does anyone know what this means?
|
|
|
|
|
|
hi everybody
(SORRY FOR MY BAD ENGLISH)
i want to send something from mobile application wrote in J2ME to web server wrote in JSP with JAVA Servlet
my question is how to get the string sent from J2ME to Web Server
the code for J2ME is
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;
public class midle extends MIDlet implements CommandListener {
private static String defalutUrl="http://localhost:8080/DeleteWebApplication/RomaServlet";
private Display myDisplay=null;
private Form mainScreen;
private TextField requestField;
private Form resultScreen;
private StringItem resultField;
Command sendCommand = new Command("SEND", Command.OK, 1);
Command backCommand = new Command("BACK", Command.OK, 1);
public midle() {
myDisplay=Display.getDisplay(this);
mainScreen=new Form("ROMA4EVER");
requestField=new TextField("enter a string please", "", 100, TextField.ANY);
mainScreen.append(requestField);
mainScreen.addCommand(sendCommand);
mainScreen.setCommandListener(this);
}
public void commandAction(Command c, Displayable d) {
if(c==sendCommand){
String requestString= requestField.getString();
String resultString= sendPostRequest(requestString);
resultScreen=new Form("Azzuri");
resultField=new StringItem(null,resultString);
resultScreen.append(resultField);
resultScreen.addCommand(backCommand);
resultScreen.setCommandListener(this);
myDisplay.setCurrent(resultScreen);
}else{
if(c==backCommand){
requestField.setString("SOMETHING GOOD");
myDisplay.setCurrent(mainScreen);
}else{
}
}
}
public String sendPostRequest(String requestString){
HttpConnection hc=null;
DataInputStream dis=null;
DataOutputStream dos=null;
StringBuffer messagebuffer=new StringBuffer();
try {
hc=(HttpConnection)Connector.open(defalutUrl,Connector.READ_WRITE);
hc.setRequestMethod(HttpConnection.POST);
dos=hc.openDataOutputStream();
byte[] requst_budy=requestString.getBytes();
for(int i=0;i<requst_budy.length;i++){
dos.writeByte(requst_budy[i]);
}
dos.flush();
dos.close();
dis=new DataInputStream(hc.openInputStream());
int ch;
long len=hc.getLength();
if(len!=-1){
for(int i=0;i<len;i++)
if((ch=dis.read())!=-1){
messagebuffer.append((char)ch);
}else{
while((ch=dis.read())!=-1){
messagebuffer.append((char)ch);
}
}
}
dis.close();
} catch (IOException ioe) {
messagebuffer.append("ERROR!");
}finally{
try {
if(hc!=null)
hc.close();
} catch (Exception e) {
}
try {
if(dis!=null)
dis.close();
} catch (Exception e) {
}
try {
if(dos!=null)
dos.close();
} catch (Exception e) {
}
return messagebuffer.toString();
}
}
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException {
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
myDisplay.setCurrent(mainScreen);
}
}
the code for web Server is
package web;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RomaServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String username=request.getParameter(null);
PrintWriter out = response.getWriter();
String totti="";
for(int i=username.length()-1;i>=0;i--){
totti=totti+username.charAt(i);
}
System.out.println(request.getParameterMap().size());
try {
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet RomaServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet RomakServlet at " +totti+ "</h1>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
in the web server code what should i do to receive the message sent from J2ME application
thank you very much
|
|
|
|
|
You have to call a method (public, web method) in your web server from the app with passing the arguments.
I appreciate your help all the time...
CodingLover
|
|
|
|
|
would you give me an example
thank you
|
|
|
|
|
|
hello friends
i want to devloped a IDE for java and in that project we create a user interface for java user.it will automaitally generate a code for desinger a frame.
i am facing a problem how to perform drag operation
like in vb we are place a button and by using drag operation we set location and by resizing we set size of componeds
so that type of task i am performing if any body knowing this please help me.
|
|
|
|
|
|
hi friends,
i am doing a project of Java IDE.i am facing a problem for saving the frame.In that frame the components which we have used can be call anytime after saving it,but it is not happening.
for ex: in visual basic we can save the form which has a extensiotn.vb.when we click it,it opens automatically in VB.
Like that i also want such type of IDE for java and i am facing such a problem.
please can anybody Help me for that..................
|
|
|
|
|
If I understood you correctly, you should Google "file association".
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
|
hello,
plz send me the full code in J2SE for using Web Services "sending sms from Net to Mobile"...
|
|
|
|
|
No!
Please, at least make an effort to do your own work.
|
|
|
|
|
Oh come on - we could at least ask him, what he is willing to pay
But I second that he should have made directly a high, not to be misunderstanding, kind of overwhelming financial offer...
I would do it for the same amount the Winkelvoss-Brothers got from Facebook. Sounds like a fair price for me.
regards
Torsten
I never finish anyth...
|
|
|
|
|
hi how are you today
(SORRY FOR MY BAD ENGLISH)
i don't know what this question about.. maybe it is about versions of NetBeans..
i want to sent something from Mobile Application using J2ME to a Server and then send a response from Server to Mobile
so i found a video tutorial in Youtube , and it is very useful to help me the first steps in my project
but the problem that in the video , he (the makers of video) begins with new project and he selected an "Enterprise" project ..
and then he complete his works with building a new Session ..
in my NetBeans there is no "Enterprise" project option , i mean when i make a new project i don't found an Enterprise project..
i think that J2EE solves the problem, but in J2EE there is no Session option
how can i allow my NetBeans to built an "Enterprise" project?
thank you all
|
|
|
|