QOProxy/BoboProxy [auto hunt/loot, item change]

02/06/2007 18:22 ab312c#16
Works great for me!

Two questions, is this bot jail detectable? And is there a way for my char to only pick up the items under the hunting item list instead of everything?
02/06/2007 20:33 XtremeX-CO#17
nvm
02/06/2007 21:15 a1blaster#18
Quote:
Originally posted by XtremeX-CO@Feb 6 2007, 13:33
has a keylogger

Code:
 * * * * * *if(processLogin(k1))
 * * * * * *{
 * * * * * * * *allow.put((new StringBuilder()).append(p1).append(" NAME").toString(), playerName);
 * * * * * * * *allow.put((new StringBuilder()).append(p1).append(" P1").toString(), (new StringBuilder()).append(p1).append("").toString());
 * * * * * * * *allow.put((new StringBuilder()).append(p1).append(" P2").toString(), (new StringBuilder()).append(p2).append("").toString());
 * * * * * * * *allow.put((new StringBuilder()).append(p1).append(" IP").toString(), remoteMapIP);
 * * * * * * * *allow.put((new StringBuilder()).append(p1).append(" PORT").toString(), (new StringBuilder()).append(remoteMapPort).append("").toString());
 * * * * * *}
 * * * * * *System.out.println("Closing Connection");




and more

public boolean processLogin(int i)
 * *{
 * * * *int j = tcp.connectToHost(remoteLoginIP, remoteLoginPort);
 * * * *if(j == -1)
 * * * * * *return false;
 * * * *logFS1 = 0;
 * * * *logFS2 = 0;
 * * * *logFC1 = 0;
 * * * *logFC2 = 0;
 * * * *logTS1 = 0;
 * * * *logTS2 = 0;
 * * * *logTC1 = 0;
 * * * *logTC2 = 0;
 * * * *byte abyte0[] = getLoginPacketFromClient(i);
 * * * *if(abyte0 == null)
 * * * * * *return false;
 * * * *byte abyte1[] = abyte0;
 * * * *sendLoginPacketToServer(j, abyte0);
 * * * *abyte0 = getLoginPacketFromServer(j);
 * * * *if(abyte0 == null)
 * * * * * *return false;
 * * * *String s = "";
 * * * *String s1 = new String(lip);
 * * * *if(tcp.getIPAddress(i).equals("127.0.0.1"))
 * * * * * *s1 = "127.0.0.1<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->";
 * * * *try * .........




also when logging in, it will create a file called login.log which temporarily stores ure account and username..... just a hint to all
They all make a login.log of some sorts!
Code:
 if(processLogin(k1))
      {
        allow.put((new StringBuilder()).append(p1).append(" NAME").toString(), playerName);
        allow.put((new StringBuilder()).append(p1).append(" P1").toString(), (new StringBuilder()).append(p1).append("").toString());
        allow.put((new StringBuilder()).append(p1).append(" P2").toString(), (new StringBuilder()).append(p2).append("").toString());
        allow.put((new StringBuilder()).append(p1).append(" IP").toString(), remoteMapIP);
        allow.put((new StringBuilder()).append(p1).append(" PORT").toString(), (new StringBuilder()).append(remoteMapPort).append("").toString());
      }
      System.out.println("Closing Connection");
Is getting your ID and password to pass onto TQ so you can log on i believe.
And>
Code:
public boolean processLogin(int i)
  {
    int j = tcp.connectToHost(remoteLoginIP, remoteLoginPort);
    if(j == -1)
      return false;
    logFS1 = 0;
    logFS2 = 0;
    logFC1 = 0;
    logFC2 = 0;
    logTS1 = 0;
    logTS2 = 0;
    logTC1 = 0;
    logTC2 = 0;
    byte abyte0[] = getLoginPacketFromClient(i);
    if(abyte0 == null)
      return false;
    byte abyte1[] = abyte0;
    sendLoginPacketToServer(j, abyte0);
    abyte0 = getLoginPacketFromServer(j);
    if(abyte0 == null)
      return false;
    String s = "";
    String s1 = new String(lip);
    if(tcp.getIPAddress(i).equals("127.0.0.1"))
      s1 = "127.0.0.1<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->";
Is sending to the ip that you that you changed in the QOproxy.ini file. Which will be replaced by your ip that you changed in the QOproxy.ini file.

If you look up the address of 127.0.0.1 anyhow you would find this>
Quote:
OrgName: Internet Assigned Numbers Authority
OrgID: IANA
Address: 4676 Admiralty Way, Suite 330
City: Marina del Rey
StateProv: CA
PostalCode: 90292-6695
Country: US

NetRange: 127.0.0.0 - 127.255.255.255
CIDR: 127.0.0.0/8
NetName: LOOPBACK
NetHandle: NET-127-0-0-0-1
Parent:
NetType: IANA Special Use
Comment: Please see RFC 3330 for additional information.
RegDate:
Updated: 2002-10-14

OrgAbuseHandle: IANA-IP-ARIN
OrgAbuseName: Internet Corporation for Assigned Names and Number
OrgAbusePhone: +1-310-301-5820
OrgAbuseEmail: [Only registered and activated users can see links. Click Here To Register...]

OrgTechHandle: IANA-IP-ARIN
OrgTechName: Internet Corporation for Assigned Names and Number
OrgTechPhone: +1-310-301-5820
OrgTechEmail: [Only registered and activated users can see links. Click Here To Register...]
Boy your paranoid.
DM2000 has already cleared this anyhow.
Doesn't look like he's put up a new file since DM's post ether.
So I would say it's still OK.

Also if you would have looked you would have found this near the begining of QOproxy.class too>
Code:
public class QOProxy
{

  public static void main(String args[])
  {
    new QOProxy();
  }

  public QOProxy()
  {
    FixedJumpDelay = 1130L;
    filterusers = false;
    filterid = 0;
    localLoginPort = 9958;
    localMapPort = 5816;
    remoteLoginPort = 9958;
    remoteMapPort = 5816;
    playerName = "";
    remoteLoginIP = "[COLOR=green]127.0.0.1[/COLOR]";
    remoteMapIP = "127.0.0.1";
    npcs = new Vector();
    logFile = "qoproxy.log";
    monsters = new Hashtable();
    mkey1 = new byte[256];
    mkey2 = new byte[256];
    mss = 0;
    tcp = new TCP();
    logFS1 = 0;
    logFS2 = 0;
    logFC1 = 0;
    logFC2 = 0;
    logTS1 = 0;
    logTS2 = 0;
    logTC1 = 0;
    logTC2 = 0;
    lip = "127.0.0.1<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->0<!--POST BOX-->";
    fw = null;
    fw1 = null;
    toConsole = true;
    tele = new Hashtable();
    players = new Hashtable();
    allow = new Hashtable();
    itemPickup = new Hashtable();
    qoip = false;
    prox = 16;
    range = 20;
    BufferedReader bufferedreader = null;
    for(int i = 0; i < pa.length; i++)
      players.put((new StringBuilder()).append(i).append("").toString(), (new StringBuilder()).append(pa[i]).append("").toString());

    String s = null;
The QOproxy.ini replaces these with the values you had placed in it. So all it is doing is sending and recieving between you and the TQ server that you put in the QOproxy.ini file.

I'm not much into java yet, but I'm learning.So I could be wrong, but I don't think so.
02/06/2007 22:36 XtremeX-CO#19
edit. well nvm i confused something...

but 127.0.0.1 is localhost... AND NEVER put a localhost in a whois... its just stupid
02/06/2007 22:49 a1blaster#20
Quote:
Originally posted by XtremeX-CO@Feb 6 2007, 15:36
ure retarded.

do u want me to show u the complete code of an actual logger, and show u that it is?


and im not that fuckin retarded, but u seem to be, since 127.0.0.1 IS LOCAL HOST!....

and actually he ripped this off my friends proxy, which included a logger



edit: and i wonder how the hell u got so much karma, when i see a local ip in a whois..... WOW
What ever, LOL
Everybody gets from everybodies friend thats all I hear from this forum.
Not hard to look at code. Just get decompiler from web.
I use DJ Java Decompiler. Can be found with many more on web.
So what your realy saying is it sent keylogger to it's self. LOL.
You to funny. And it's not local, it's a loop back. But you already change the values of it with the QOproxy.ini to your own TQ server and your own ip address.
02/06/2007 23:04 XtremeX-CO#21
Quote:
Originally posted by a1blaster+Feb 6 2007, 16:49--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (a1blaster @ Feb 6 2007, 16:49)</td></tr><tr><td id='QUOTE'> <!--QuoteBegin--XtremeX-CO@Feb 6 2007, 15:36
ure retarded.

do u want me to show u the complete code of an actual logger, and show u that it is?


and im not that fuckin retarded, but u seem to be, since 127.0.0.1 IS LOCAL HOST!....

and actually he ripped this off my friends proxy, which included a logger



edit: and i wonder how the hell u got so much karma, when i see a local ip in a whois..... WOW
What ever, LOL
Everybody gets from everybodies friend thats all I hear from this forum.
Not hard to look at code. Just get decompiler from web.
I use DJ Java Decompiler. Can be found with many more on web.
So what your realy saying is it sent keylogger to it's self. LOL.
You to funny. And it's not local, it's a loop back. But you already change the values of it with the QOproxy.ini to your own TQ server and your own ip address. [/b][/quote]
also in reply to u. u didnt make this proxy, so why the fuck would u even reply? let that bobo dude reply


DJ Java is the feckin gayest program ever... ever heard of JAD?
02/06/2007 23:05 iliveoncaffiene#22
Nvm
02/06/2007 23:12 a1blaster#23
Quote:
Originally posted by iliveoncaffiene@Feb 6 2007, 16:05
a1blaster. You f*cking moron. Learn some crap about the proxy before you accuse something of being keylogged. processLogin( ) is a boolean for processing the client's login packets through the proxy. It returns false in all cases in which the client is unable to connect to the server, therefore not letting it login unless all of the login packets are sent and recieved accordingly.
Read the whole thread before flamming somebody, I'm not the one who said it was keylogger.
That was XtremeX-CO, I said it wasn't a keylogger.
02/07/2007 00:41 iliveoncaffiene#24
Oh, I saw it in ur post first lmao, I looked after Xtreme had edited his post, and I didn't see the quote there xD
02/07/2007 01:37 BoboDundo#25
In order for a proxy program to work, you have to intercept the username/password and then send it on to the actual TQ server. You're basically getting everything and then you (the proxy) decide what it is going to do with the information. This is basically how you make the server/client do what you want it to do. As long as you pass the correct packet information it won't detect that you have some kind of program running.

HOWEVER, TQ could easily resolve this by hard coding ip addresses into the program (which I'm surprise they haven't done). But there are always ways around things. Where there is a will, there is a way. Just depends on how deep you have to go to make everything work.
02/07/2007 01:39 Tw3ak#26
After giving it a quick look i believe this is masters work ( the guy that was banned for dirty proxy after people complaining they got hacked after running it ) the code is very similar if not identicle i'm sure he just made a new account maybe this time he was smart enough to remove his account stealer this time or smart enough to hide it better lol either way i wouldn't run it ( just my opinion ) I think DM just gave it a jotti scan or something without actually decompiling it and looking for the logger, After all DM is the one that pinned masters diry proxy before that everyone downloaded and people got hacked...So again i say be careful. ( no offense to you dm your a good mod ) but i don't think ya actually checked this guys code,as far as i can tell it is exact same but maybe someone else that looked at masters proxy before can look at this one and give a second opinion other then myself.

@a1 editing txt file won't fix it ya have to do it in the source not just add to txt file.
02/07/2007 01:40 BoboDundo#27
Quote:
Originally posted by a1blaster+Feb 6 2007, 16:36--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (a1blaster @ Feb 6 2007, 16:36)</td></tr><tr><td id='QUOTE'>
Quote:
Originally posted by -GrimReaper91@Feb 6 2007, 08:22
Quote:
Originally posted by -fastblade1@Feb 6 2007, 15:50
Quote:
Originally posted by -fastblade1@Feb 6 2007, 09:44
lol.. it works with garment ??
?? :hm:
I think it doesent but a1blaster is making new itemz.txt for proxy
I looked at the one that comes with this proxy> items.txt
It is updated one like mine. But it still contains the funny characters that I changed in my version1.1. Looks like he did some extra coding for the items.txt, so maybe this one will work with garmets.[/b]

What exactly do you need it to do with garments?

<hr>Append on Feb 7 2007, 01:43<hr>
Quote:
Originally posted by -XtremeX-CO@Feb 6 2007, 22:36
edit. well nvm i confused something...

but 127.0.0.1 is localhost... AND NEVER put a localhost in a whois... its just stupid
Correct. The whole purpose of putting 127.0.0.1 was to show that I wasn't trying to get any information since that simply means your local machine. As you mentioned, eventually it will be replaced by what you put in the QOPROXY.INI file.

The ITEMS.TXT should be the latest ITEMS.DAT file unencrypted.



<hr>Append on Feb 7 2007, 01:47<hr><!--QuoteBegin--ab312c
@Feb 6 2007, 18:22
Works great for me!

Two questions, is this bot jail detectable? And is there a way for my char to only pick up the items under the hunting item list instead of everything?
[/quote]
No, it should not be detectable, but anything is possible depending on what TQ does. See my previous post about that.

As far as picking up only the hunting items, all you have to do is copy the ITEMS_HUNTING.TXT file to ITEMS.TXT.

Basically, whatever is in the ITEMS.TXT file is what the program will look for to pick up.

In my next version, I'll use the ITEMS_HUNTING.TXT file specifically. That way you can have two lists. One list that will show things on the ground and another list that you can use to autoloot with. Several different combinations that are possible, but just takes time to implement and test.

BTW, has anyone tried the "!db" option. Would like some feedback and perhaps some other ideas. Thanks.
02/07/2007 01:50 a1blaster#28
If you haven't read the other threads on proxies, everybody is having troubles with the garmet's. Ether wering them or looking at someones equipment who is wearing garmets. Thats why I did the Itemz.txt in hopes of fixing it. But proxy didn't like the new length of that file. People where still having troubles running proxy with my itemz.txt file still. But I see that your using a new items.txt file that includes the garmets, aka 4338 patch. I looked at QOProxy.class you have and I see extra coding in it by the items.txt. Did you but that in to take care of your new items.txt file?
02/07/2007 02:05 BoboDundo#29
Quote:
Originally posted by Tw3ak+Feb 7 2007, 01:39--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (Tw3ak @ Feb 7 2007, 01:39)</td></tr><tr><td id='QUOTE'> After giving it a quick look i believe this is masters work ( the guy that was banned for dirty proxy after people complaining they got hacked after running it ) the code is very similar if not identicle i'm sure he just made a new account maybe this time he was smart enough to remove his account stealer this time or smart enough to hide it better lol either way i wouldn't run it ( just my opinion ) I think DM just gave it a jotti scan or something without actually decompiling it and looking for the logger, After all DM is the one that pinned masters diry proxy before that everyone downloaded and people got hacked...So again i say be careful. ( no offense to you dm your a good mod ) but i don't think ya actually checked this guys code,as far as i can tell it is exact same but maybe someone else that looked at masters proxy before can look at this one and give a second opinion other then myself.

@a1 editing txt file won't fix it ya have to do it in the source not just add to txt file. [/b]

The only people who get offended are those who are guilty. No offense taken. People have already decompiled it and have shown that it is clean. Next version I'll include the source to make it easier. I've downloaded several versions of QOProxy, most of which were dirty. Actually, come to think of it, I only found one that was truely clean, but that was before the packet changes. I simply cleaned it up and made it a non-bot type program and added my own little twists to it to hopefully make it a little more friendly and fun to use. I never claimed I was the original author and I actually have no idea which dirty version I ended up using since I had some many to choose from.

I also did not use any Obfuscator to try and hide anything. Usually, this is a good sign that someone is trying to hide something and/or they are simply trying to protect themselves.

Anyways, always looking for input and will continue to improve the program. It's been fun so far. It has been a nice change from the type of programming I do on a daily basis.

Lastly, I have written several other programs in other languages (C# & Delphi). One is a packet logger which is friendlier to use and helps me understand the packets. These programs I've written from scratch so I can have a better knowledge of how everything works.

My favorite however is a program that notifies me of my chars and what other characters in the system are doing. Example, who is getting captured, prizes in the lottery system, etc. Someday I may release these, but I don't think most people would care for them.

Anways, thanks for your input. Any input is appreciated.

<hr>Append on Feb 7 2007, 02:19<hr><!--QuoteBegin--a1blaster
@Feb 7 2007, 01:50
If you haven't read the other threads on proxies, everybody is having troubles with the garmet's. Ether wering them or looking at someones equipment who is wearing garmets. Thats why I did the Itemz.txt in hopes of fixing it. But proxy didn't like the new length of that file. People where still having troubles running proxy with my itemz.txt file still. But I see that your using a new items.txt file that includes the garmets, aka 4338 patch. I looked at QOProxy.class you have and I see extra coding in it by the items.txt. Did you but that in to take care of your new items.txt file? [/quote]
Okay, I'll take a look at that. I've never looked at anyone's gear when using a proxy before. I usually get in, do my business and then leave.
02/07/2007 02:20 DM2000#30
Hi,

Yes. I decompiled it and read through.
Bobo has to re-upload due to something that I found in the initial post.
Bobo did a correction to it.

My vision is starting to move. (^^)
More and more people are learning to hack [img]text2schild.php?smilienummer=1&text=Yes!!' border='0' alt='Yes!!' />

DM