United Hackprogrammers Front(UHF)-CO2 Memory Tables
Memory Table System For CO2
If you write programs for CO2 that require memory addresses heres your chance to become client version independent.
Sick of continuously having to rebuild your programs?
well nows your chance to make your program client version independent,
just rewrite your code to read the memory addresses from the ma-global.inf file attached in this thread instead of hard wiring them into your code.
With this system all the user has to do is get the new memory table and bang its all the working again.
There's even some simple VB examples of how to access the data.
The table is a plain ASCII file that anyone can edit with notepad.
My thought is to have it stored in a central location on the users drive (e.g. the root of C drive) that way all the tools that use the system can easily find it.
Developers Usage Suggestions
For VB the best way to read it in a program is using the GetPrivateProfileString api(see following code snippet) that way the order of the fields doesn't matter and all you need to know is the name of the memory location that you want(e.g. CharName)
Note:The values in the tables have been prefixed with &H for VB, other languages may require you to replace this with 0x depending on the development language your using.
Sample Of Simple Memory Address Read In VB6
Code:
------- Main Code ------
MemAddr(0) = MAread("CharName")
MemAddr(1) = MAread("SrvName")
MemAddr(2) = MAread("CharXP")
MemAddr(3) = MAread("CharLV")
MemAddr(4) = MAread("CharVP")
----- Module Code -----
Dim MemAddr(4)
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Function MAread&(KeyName$)
Dim S$, F$, L&
S = String$(20, Chr(0))
F = App.Path & "ma-global.inf"
If Dir(F) = "" Then F = "C:ma-global.inf"
L = GetPrivateProfileString("MemAdd", ByVal KeyName$, "0", S, Len(S), F)
MAread = CLng(Left$(S, L))
End Function
Memory Table Version Details
Latest Updates 5035 Rev 0 - Released 25 July 2008.
History 5028r1 - Released 21th June 2008 5022r1 - Released 30th April 2008 5020r0 - Released 6th April 2008 5018r0 - Released 18th March 2008 5017r0 - Released 15th March 2008 5016r1 - Released 14th March 2008 5016r0 - Released 7 March 2008 5007r0 - Released 30 December 2007 5006r0 - Released 21 December 2007 4354r0 - Released 16 August 2007 4353r2 - Released 05 August 2007 4351r5 - Released 24 July 2007 4347r0 - Released 06 June 2007
Credits
Big TY'z to everyone who has contributed to these tables(past and present) including:-
blinko, anantasia, giacometti, ntrceptr, DarkReaver, ZeRo-ToLeRaNcE, lazlo, Ulfius, *M*, nTL3fTy, warriorchamp, cyberside0, Jalan_Jalan, tanelipe, daveq, Alexios, IAmHawtness, Zeroxelli
Known Programs Using The UHF Tables(theres other so tell me what they are!!)
My co2m8 & co2hud
*M*'s Multi-Hack
ZoSo's Taskbar Button Renamer
ZT's Conquer Memory Reader DLL
TwistedIllusions's Exp Mod
Notes
Everyone feel free to contribute with addresses or corrections,etc. on this thread.
Let me know if your using the plug-in table system, that way your users will also know.
Support this system by using the file as directed and give credit.
If old tables are required please post request in this thread.
INI function declarations. Just put in a module and use in any project.
Quote:
'************************************************* ***
' INI Functions
'************************************************* ***
' INI DLL declarations
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Function GetFromINI(sSection As String, sKey As String, sDefault As String, sIniFile As String)
Dim sBuffer As String, lRet As Long
' Fill String with 255 spaces
sBuffer = String$(255, 0)
' Call DLL
lRet = GetPrivateProfileString(sSection, sKey, "", sBuffer, Len(sBuffer), sIniFile)
If lRet = 0 Then
' DLL failed, save default
If sDefault <> "" Then AddToINI sSection, sKey, sDefault, sIniFile
GetFromINI = sDefault
Else
' DLL successful
' return string
GetFromINI = Left(sBuffer, InStr(sBuffer, Chr(0)) - 1)
End If
End Function
' INI Returns True if successful. If section does not
' exist it creates it.
Function AddToINI(sSection As String, sKey As String, sValue As String, sIniFile As String) As Boolean
Dim lRet As Long
' Call DLL
lRet = WritePrivateProfileString(sSection, sKey, sValue, sIniFile)
AddToINI = (lRet)
End Function
'************************************************* ***
' End INI Functions
'************************************************* ***
MAdress.ini file content. Put in same folder with your program.
Dont think I wana steal your job mate. Just a sugestion. Anyway, I respect your idea. +k
This is how my tool worked at 1st (before public release) but since it was small size I didn't see any reason not to just rebuild the project since the users will have to download it anyway. I was not thinking ahead, like this idea about fixing all tools with 1 file
Service load:
0% 100%
File: ma_global.zip
Status:
OK
MD5 4eb61fb06f1305018616aba2c37c6830
Packers detected:
-
Scanner results
Scan taken on 01 May 2007 10:07:01 (GMT)
A-Squared
Found nothing
AntiVir
Found nothing
ArcaVir
Found nothing
Avast
Found nothing
AVG Antivirus
Found nothing
BitDefender
Found nothing
ClamAV
Found nothing
Dr.Web
Found nothing
F-Prot Antivirus
Found nothing
F-Secure Anti-Virus
Found nothing
Fortinet
Found nothing
Kaspersky Anti-Virus
Found nothing
NOD32
Found nothing
Norman Virus Control
Found nothing
Panda Antivirus
Found nothing
Rising Antivirus
Found nothing
VirusBuster
Found nothing
VBA32
Found nothing
Originally posted by DM2000+May 2 2007, 13:12--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (DM2000 @ May 2 2007, 13:12)</td></tr><tr><td id='QUOTE'> Great work.
Included into linklist (^^)
DM :star: [/b]
Cool TYVM
<hr>Append on May 2 2007, 06:29<hr><!--QuoteBegin--KageKhan@May 2 2007, 11:37 Seems like youre missing a few addresses. Char Max HP = 01829C20, Char Current HP = 00C546E8... Wish I could help more but thats all I got. [/quote]
Yeah there are some addresses still missing and I will add them as I find them or if others contribute them.
Unfortunately those HP ones you supplied are dynamic which means they change and will need DMA defeats to be made static, I'm still waiting to see if TQ are gonna do another patch before I tackle that.
But ty anyway the thought was there.
Originally posted by blinko@May 2 2007, 10:16 <hr>Append on May 2 2007, 11:48<hr> what clients are being used now cause i only use prog4mers multi client and he hasnt updated yet.
Heres a conquer multy for 4347 that I made for myselve. It has same memory adresses with progr4mers multy, so you can use it whyle programer don't update hes.
Originally posted by joek+May 2 2007, 06:22--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (joek @ May 2 2007, 06:22)</td></tr><tr><td id='QUOTE'> <hr>Append on May 2 2007, 06:29<hr><!--QuoteBegin--KageKhan@May 2 2007, 11:37 Seems like youre missing a few addresses. Char Max HP = 01829C20, Char Current HP = 00C546E8... Wish I could help more but thats all I got.
Yeah there are some addresses still missing and I will add them as I find them or if others contribute them.
Unfortunately those HP ones you supplied are dynamic which means they change and will need DMA defeats to be made static, I'm still waiting to see if TQ are gonna do another patch before I tackle that.
But ty anyway the thought was there. [/b][/quote]
****... I didn't think something like that would be dynamic and I used it on 2 different clients I had running at the same time... O well, I tried. lol better luck next time.
Quick Memory Editor - Alternative Memory Hacking Software 11/21/2009 - Cabal Hacks, Bots, Cheats, Exploits & Macros - 11 Replies This might be detected or not by GameGuard, I have not tested this on Official servers however it worked perfectly fine on other private servers.
http://imagenic.net/images/x0jxwzwpg2zxmkdtcf36.p ng
This is just an alternative memory editing tool.
Press thanks if this helps.
Remember, scan before using this.
Cause its 5.5MB.
POLL->Is it time to retire C02M8 and the CO2 Memory Tables? 11/07/2009 - Conquer Online 2 - 25 Replies Once again I'm back after having taken my leave from CO2 for a few months and this time on my return the poor game appears to be in a rather sorry state.
Yes I would like to update both the CO2M8 tool and the memory tables, however, time is money and so I need some feedback as to how useful updates will be.
Please everyone vote on this poll to help me with my decision.
AHK MEMORY TABLES AND SCANNERS 08/09/2009 - CO2 Programming - 0 Replies I'm new to memory addresses so please pitch in. My goal is to convert my pixel based scripts to read memory addresses. i've noticed most of the memory addresses i need are not static so i've had to build a scanner. if anyone knows where to find static locations for any of the memory addresses in these scanners please let us know.
x,y location scanner
+!t::
co2l:
WinGet,id1, ID,
this takes a little while to scan so if anyone knows better region(s) to scan please let us know
Old RF Online patch Memory tables (pointers) 06/28/2009 - RF Online - 0 Replies anyone have Old RF Online patch Memory tables (pointers) in Crimson Down?
hmmmmm...i need it ^_^ thanks for those who will share!!
and also!! if you have the latest memory pointers can you share it also??
hmmmm..
my YM: user_6teen
Fragen Zur Memory!!!(Auslesen von Spawn/Memory) 12/31/2008 - Guild Wars - 3 Replies hey leute,
ich wollte mal einen bot schreiben und nun bin ich ganz verwirrt.
könnte mir jmd bitte schritt für schritt erklären wie das mit Memory auslesen, benutzen und der Spawnpointer funktioniert.
Ich wär sehr dankbar wenn jmd kontakt mit mir aufnehmen würde...
und sobald der bot fertig ist bekommt der ihn natürlicherweise umsonst:D
ICQ: 481799773
oder hier im forum