DO client reverse engineering

05/14/2013 15:54 Fenrisus#1
Hello there. I still work on DO client files (reverse engineering). Totally rewrite it for make to possible - recompile it, add new features to client (like a new ships, or for example - armor to ships how in eve, or old interfaces and another things)and it will be public project.
Well, what i have actually - list of libs what DO using, for example - greensock graphics library + some mods.(I have a all libs used in DO, with normal looks code, exept few bp-maded unique modules, but that no matter, easy to re-write it) Some parts of already de-obfuscated readable code without param1, paramover900000, __loc1__, __loc90000_ and etc. I make a some documentation about params in ConnectManager.as rewrited ShipManager and bit a more finished work.

I dont know, how many time me need for finish all code, but i do that when have a time for that.

Well, if that work needed for community, you can help me with that. That work require ActionScript 3 knowlege, Tortoise SVN programm, Notepad++ or IDE for AS, and you time :) If you want and can help - post here this:
  1. My name(nickname)
  2. Contact info : skype, icq, etc.
  3. ActionScript 3 Skills (primary!)
  4. Reverse Engineering Skills
  5. How many free time you can spend for that?

PS: When i find some helpers, i will open my repository for public work on client and etc. When not - i will contain re-write client side, but only for self-private/commercial usage.

Kind Regards.
05/14/2013 16:34 hghkg1#2
Quote:
Originally Posted by Fenrisus View Post
Hello there. I still work on DO client files (reverse engineering). Totally rewrite it for make to possible - recompile it, add new features to client (like a new ships, or for example - armor to ships how in eve, or old interfaces and another things)and it will be public project.
Well, what i have actually - list of libs what DO using, for example - greensock graphics library + some mods.(I have a all libs used in DO, with normal looks code, exept few bp-maded unique modules, but that no matter, easy to re-write it) Some parts of already de-obfuscated readable code without param1, paramover900000, __loc1__, __loc90000_ and etc. I make a some documentation about params in ConnectManager.as rewrited ShipManager and bit a more finished work.

I dont know, how many time me need for finish all code, but i do that when have a time for that.

Well, if that work needed for community, you can help me with that. That work require ActionScript 3 knowlege, Tortoise SVN programm, Notepad++ or IDE for AS, and you time :) If you want and can help - post here this:
  1. My name(nickname)
  2. Contact info : skype, icq, etc.
  3. ActionScript 3 Skills (primary!)
  4. Reverse Engineering Skills
  5. How many free time you can spend for that?

PS: When i find some helpers, i will open my repository for public work on client and etc. When not - i will contain re-write client side, but only for self-private/commercial usage.

Kind Regards.
just make 2010 client and over 2000 users :)
05/14/2013 16:41 Mayur™#3
Quote:
Originally Posted by Fenrisus View Post
Hello there. I still work on DO client files (reverse engineering). Totally rewrite it for make to possible - recompile it, add new features to client (like a new ships, or for example - armor to ships how in eve, or old interfaces and another things)and it will be public project.
Well, what i have actually - list of libs what DO using, for example - greensock graphics library + some mods.(I have a all libs used in DO, with normal looks code, exept few bp-maded unique modules, but that no matter, easy to re-write it) Some parts of already de-obfuscated readable code without param1, paramover900000, __loc1__, __loc90000_ and etc. I make a some documentation about params in ConnectManager.as rewrited ShipManager and bit a more finished work.

I dont know, how many time me need for finish all code, but i do that when have a time for that.

Well, if that work needed for community, you can help me with that. That work require ActionScript 3 knowlege, Tortoise SVN programm, Notepad++ or IDE for AS, and you time :) If you want and can help - post here this:
  1. My name(nickname)
  2. Contact info : skype, icq, etc.
  3. ActionScript 3 Skills (primary!)
  4. Reverse Engineering Skills
  5. How many free time you can spend for that?

PS: When i find some helpers, i will open my repository for public work on client and etc. When not - i will contain re-write client side, but only for self-private/commercial usage.

Kind Regards.
did u decompile main.swf? how?
05/14/2013 16:47 V.I.R.U.S.#4
Quote:
Originally Posted by Mayur™ View Post
did u decompile main.swf? how?
easy
05/14/2013 16:50 stasiks123#5
My name Stas
Contact info : skype stas123908
ActionScript 3 3 yeard
Programmer
6 hours
05/14/2013 20:49 Fenrisus#6
stasiks123 added to skype =)

Here no only 2010 client possible when we re-write it :D
05/15/2013 02:32 aha232#7
like ps3 ;p
05/15/2013 02:44 丂のひレ尺乇ムア乇尺#8
Quote:
Originally Posted by Fenrisus View Post
stasiks123 added to skype =)

Here no only 2010 client possible when we re-write it :D
Hahahah in your nick use Pseint and u programer hahaha, use c++, Java, c# and i beleive u programer
05/15/2013 06:59 Requi#9
Quote:
Originally Posted by 丂のひレ尺乇ムア乇尺 View Post
Hahahah in your nick use Pseint and u programer hahaha, use c++, Java, c# and i beleive u programer
Thats not paint, its a code of a script language. I actually don't know which one.

Do you see in my Avatar code? No. And I understand the basics and more of the basics from VB.NET, a bit C# and I am starting Java at the moment.

But because you can't see a code example, I am no coder :facepalm:
05/15/2013 07:14 Fenrisus#10
Quote:
Originally Posted by 丂のひレ尺乇ムア乇尺 View Post
Hahahah in your nick use Pseint and u programer hahaha, use c++, Java, c# and i beleive u programer
Yea that lua:
Code:
function tableToString(tb)
    if type(tb) ~= "table" then
            return nil, error("bad argument #1 to 'saveTable' (table expected, got "..type(tb)..")", 2)
    end
    local str = "{"
    for k,d in pairs(tb) do
       if type(k) == 'string' then
          if type(d) == 'string' then
          str = str..""..k.."='"..d.."',"
          elseif type(d) == 'number' or type(d) == 'boolean' then
          str = str..""..k.."="..tostring(d)..","
          elseif type(d) == 'table' then
            str = str..'{'
              for e,f in pairs(d) do
                 if type(e) == 'string' then
                    if type(f) == 'string' then
                       str = str..""..e.."='"..f.."',"
                    elseif type(f) == 'number' or type(e) == 'boolean' then
                       str = str..""..e.."="..tostring(f)..","
                    elseif type(f) == 'table' then
                        str = str..""..e.."="..tableToString(f)..","
                    end
                 elseif type(e) == 'number' then
                    if type(f) == 'string' then
                           str = str.."["..e.."]='"..f.."',"    
                    elseif type(f) == 'number' or type(f) == 'boolean' then
                           str = str.."["..e.."]="..tostring(f)..","
                    elseif type(f) == 'table' then
                           str = str.."["..e.."]="..tableToString(f)..","
                    end
                 end
              end
              str = str..'},'
          end
       elseif type(k) == 'number' then
          if type(d) == 'string' then
          str = str.."["..k.."]='"..d.."',"
          elseif type(d) == 'number' or type(d) == 'boolean' then
          str = str.."["..k.."]="..tostring(d)..","
          elseif type(d) == 'table' then
          str = str..'{'
          for e,f in pairs(d) do
                 if type(e) == 'string' then
                    if type(f) == 'string' then
                       str = str..""..e.."='"..f.."',"
                    elseif type(f) == 'number' or type(e) == 'boolean' then
                       str = str..""..e.."="..tostring(f)..","
                    elseif type(f) == 'table' then
                        str = str..""..e.."="..tableToString(f)..","
                    end
                 elseif type(e) == 'number' then
                    if type(f) == 'string' then
                           str = str.."["..e.."]='"..f.."',"    
                    elseif type(f) == 'number' or type(f) == 'boolean' then
                           str = str.."["..e.."]="..tostring(f)..","
                    elseif type(f) == 'table' then
                           str = str.."["..e.."]="..tableToString(f)..","
                    end
                 end
              end
              str = str..'},'
          end
         
       end
       end
       str = str.."}"
       if string.sub(str,string.len(str)-2,string.len(str)-2) == "," then
          str = string.sub(str,0,string.len(str)-3)
          str = str.."}"
       end
       return str
    end
Powerful script lang. used for scripts in most popular projects, both - server& client side. (like WoW for example).
So, i have a 10 years of programming expirience and my own games. Are you? Can you tell some about you projects and you expirience?

PS. i like that Avatar. Simple, usable.
05/15/2013 07:36 Requi#11
I knew it is lua
05/15/2013 12:04 Sanimon97#12
You try Reverse Engineering?
Hm, why? Than its 1:1, like DO.

But many of us dont want 1:1 DO Privat Server.

I think if you make your "own ideas" its better.
Just my opinion.
05/15/2013 12:45 Fenrisus#13
Quote:
Originally Posted by Sanimon97 View Post
You try Reverse Engineering?
Hm, why? Than its 1:1, like DO.

But many of us dont want 1:1 DO Privat Server.

I think if you make your "own ideas" its better.
Just my opinion.
Yes, maybe. But look this -

standart code:

Code:
 public function BufferedShip(typeID:int, userID:int, xPos:int, yPos:int, speed:int, username:String, clanTag:String, fractionID:int, clanID:int, clanDiplomacy:int, dailyRank:int, expansionstage:int, warnIconOnMap:Boolean, galaxyGatesFinished:int, isNPC:Boolean, cloaked:Boolean) {
         super();
         this.typeID=typeID;
         this.userID=userID;
         this.xPos=xPos;
         this.yPos=yPos;
         this.speed=speed;
         this.username=username;
         this.clanTag=clanTag;
         this.fractionID=fractionID;
         this.clanID=clanID;
         this.clanDiplomacy=clanDiplomacy;
         this.dailyRank=dailyRank;
         this.expansionstage=expansionstage;
         this.warnIconOnMap=warnIconOnMap;
         this.galaxyGatesFinished=galaxyGatesFinished;
         this.isNPC=isNPC;
         this.cloaked=cloaked;
      }
But you can easy modify it, for example to:

Code:
 public function BufferedShip(typeID:int, userID:int, xPos:int, yPos:int, speed:int, username:String, clanTag:String, fractionID:int, clanID:int, clanDiplomacy:int, dailyRank:int, expansionstage:int, warnIconOnMap:Boolean, galaxyGatesFinished:int, isNPC:Boolean,  tierGrade:int, cloaked:Boolean) {
         super();
         this.typeID=typeID;
         this.userID=userID;
         this.xPos=xPos;
         this.yPos=yPos;
         this.speed=speed;
         this.username=username;
         this.clanTag=clanTag;
         this.fractionID=fractionID;
         this.clanID=clanID;
         this.clanDiplomacy=clanDiplomacy;
         this.dailyRank=dailyRank;
         this.expansionstage=expansionstage;
         this.warnIconOnMap=warnIconOnMap;
         this.galaxyGatesFinished=galaxyGatesFinished;
         this.isNPC=isNPC;
         this.shipTier=tierGrade;//Tier 3 ships better than Tier 1
         this.cloaked=cloaked;
      }
I dont want a change DO original client realization based on Web - Flash. Yep i can change it to client game, but DO - browser game. Yep that possible to re-write DO client from dev//null on Unity3D for example. But few issues. 1st. For make a principial new client - need team. I dont have a team. 2nd. That require more time than re-write exist code and use it how "engine".
So, whats planned? Re-writed client-side with source code, where any developer can add new feautures for their server. I want a re-write code 1:1 to real Dark Orbit, and publish that source code (not obfuscated scripts). And any developer free to change it how him want it.