I'm a little behind but here are the descriptors in enum form!
pulled the addresses i used from InitializeBaseDataDescriptors.
don't mind the messy code, something I just threw together to test.
Code:[StructLayout(LayoutKind.Sequential, Pack=2)] public struct test { public IntPtr pDescriptorName; public Int32 Size; public Int32 unknown; } public void DumpDescriptors(String EnumName, Int32 Offset) { Int32 i = 0; test testObj = WoW.Memory.ReadValue<test>(WoW.Constants.pBaseAddress + Offset + i * 12); Console.WriteLine("public enum " + EnumName); Console.WriteLine("{"); while (WoW.Memory.ReadString(testObj.pDescriptorName, 64).Contains(EnumName)) { String DescriptorName = WoW.Memory.ReadString(testObj.pDescriptorName, 64); DescriptorName = DescriptorName.Replace("::", "|"); DescriptorName = DescriptorName.Replace(".", "|"); DescriptorName = DescriptorName.Split('|').Last(); Console.WriteLine("\t{0} = 0x{1},", DescriptorName, i.ToString("X")); i += testObj.Size; testObj = WoW.Memory.ReadValue<test>(WoW.Constants.pBaseAddress + Offset + i * 12); } Console.WriteLine("\t{0}_Size = 0x{1}", EnumName, ((i - 1) * 4).ToString("X")); Console.WriteLine("}"); }Code:public enum CGObjectData { m_guid = 0x0, m_data = 0x2, m_type = 0x4, m_entryID = 0x5, m_scale = 0x6, CGObjectData_Size = 0x18 } public enum CGItemData { m_owner = 0x0, m_containedIn = 0x2, m_creator = 0x4, m_giftCreator = 0x6, m_stackCount = 0x8, m_expiration = 0x9, m_spellCharges = 0xA, m_dynamicFlags = 0xF, m_enchantment = 0x10, m_propertySeed = 0x37, m_randomPropertiesID = 0x38, m_durability = 0x39, m_maxDurability = 0x3A, m_createPlayedTime = 0x3B, m_modifiersMask = 0x3C, CGItemData_Size = 0xF0 } public enum CGContainerData { m_slots = 0x0, m_numSlots = 0x48, CGContainerData_Size = 0x120 } public enum CGUnitData { charm = 0x0, summon = 0x2, critter = 0x4, charmedBy = 0x6, summonedBy = 0x8, createdBy = 0xA, target = 0xC, channelObject = 0xE, channelSpell = 0x10, summonedByHomeRealm = 0x11, displayPower = 0x12, overrideDisplayPowerID = 0x13, health = 0x14, power = 0x15, maxHealth = 0x1A, maxPower = 0x1B, powerRegenFlatModifier = 0x20, powerRegenInterruptedFlatModifier = 0x25, level = 0x2A, factionTemplate = 0x2B, virtualItemID = 0x2C, flags = 0x2F, flags2 = 0x30, auraState = 0x31, attackRoundBaseTime = 0x32, rangedAttackRoundBaseTime = 0x34, boundingRadius = 0x35, combatReach = 0x36, displayID = 0x37, nativeDisplayID = 0x38, mountDisplayID = 0x39, minDamage = 0x3A, maxDamage = 0x3B, minOffHandDamage = 0x3C, maxOffHandDamage = 0x3D, animTier = 0x3E, petNumber = 0x3F, petNameTimestamp = 0x40, petExperience = 0x41, petNextLevelExperience = 0x42, dynamicFlags = 0x43, modCastingSpeed = 0x44, modSpellHaste = 0x45, modHaste = 0x46, modHasteRegen = 0x47, createdBySpell = 0x48, npcFlags_UMNW0 = 0x49, npcFlags = 0x4A, stats = 0x4C, statPosBuff = 0x51, statNegBuff = 0x56, resistances = 0x5B, resistanceBuffModsPositive = 0x62, resistanceBuffModsNegative = 0x69, baseMana = 0x70, baseHealth = 0x71, shapeshiftForm = 0x72, attackPower = 0x73, attackPowerModPos = 0x74, attackPowerModNeg = 0x75, attackPowerMultiplier = 0x76, rangedAttackPower = 0x77, rangedAttackPowerModPos = 0x78, rangedAttackPowerModNeg = 0x79, rangedAttackPowerMultiplier = 0x7A, minRangedDamage = 0x7B, maxRangedDamage = 0x7C, powerCostModifier = 0x7D, powerCostMultiplier = 0x84, maxHealthModifier = 0x8B, hoverHeight = 0x8C, minItemLevel = 0x8D, maxItemLevel = 0x8E, wildBattlePetLevel = 0x8F, battlePetCompanionID = 0x90, battlePetCompanionNameTimestamp = 0x91, CGUnitData_Size = 0x244 } public enum CGPlayerData { duelArbiter = 0x0, playerFlags = 0x2, guildRankID = 0x3, guildDeleteDate = 0x4, guildLevel = 0x5, hairColorID = 0x6, restState = 0x7, arenaFaction = 0x8, duelTeam = 0x9, guildTimeStamp = 0xA, questLog = 0xB, visibleItems = 0x2F9, playerTitle = 0x31F, fakeInebriation = 0x320, homePlayerRealm = 0x321, currentSpecID = 0x322, taxiMountAnimKitID = 0x323, partyType = 0x324, invSlots = 0x325, farsightObject = 0x3D1, knownTitles = 0x3D3, XP = 0x3DB, nextLevelXP = 0x3DC, skill = 0x3DD, characterPoints = 0x59D, maxTalentTiers = 0x59E, trackCreatureMask = 0x59F, trackResourceMask = 0x5A0, expertise = 0x5A1, offhandExpertise = 0x5A2, rangedExpertise = 0x5A3, blockPercentage = 0x5A4, dodgePercentage = 0x5A5, parryPercentage = 0x5A6, critPercentage = 0x5A7, rangedCritPercentage = 0x5A8, offhandCritPercentage = 0x5A9, spellCritPercentage = 0x5AA, shieldBlock = 0x5B1, shieldBlockCritPercentage = 0x5B2, mastery = 0x5B3, pvpPower = 0x5B4, exploredZones = 0x5B5, restStateBonusPool = 0x67D, coinage = 0x67E, modDamageDonePos = 0x680, modDamageDoneNeg = 0x687, modDamageDonePercent = 0x68E, modHealingDonePos = 0x695, modHealingPercent = 0x696, modHealingDonePercent = 0x697, modPeriodicHealingDonePercent = 0x698, weaponDmgMultipliers = 0x699, modSpellPowerPercent = 0x69C, modResiliencePercent = 0x69D, overrideSpellPowerByAPPercent = 0x69E, overrideAPBySpellPowerPercent = 0x69F, modTargetResistance = 0x6A0, modTargetPhysicalResistance = 0x6A1, lifetimeMaxRank = 0x6A2, selfResSpell = 0x6A3, pvpMedals = 0x6A4, buybackPrice = 0x6A5, buybackTimestamp = 0x6B1, yesterdayHonorableKills = 0x6BD, lifetimeHonorableKills = 0x6BE, watchedFactionIndex = 0x6BF, combatRatings = 0x6C0, arenaTeams = 0x6DB, battlegroundRating = 0x6F0, maxLevel = 0x6F1, runeRegen = 0x6F2, noReagentCostMask = 0x6F6, glyphSlots = 0x6FA, glyphs = 0x700, glyphSlotsEnabled = 0x706, petSpellPower = 0x707, researching = 0x708, professionSkillLine = 0x710, uiHitModifier = 0x712, uiSpellHitModifier = 0x713, homeRealmTimeOffset = 0x714, modRangedHaste = 0x715, modPetHaste = 0x716, summonedBattlePetID = 0x717, auraVision = 0x718, overrideSpellsID = 0x719, CGPlayerData_Size = 0x1C64 } public enum CGGameObjectData { m_createdBy = 0x0, m_displayID = 0x2, m_flags = 0x3, m_parentRotation = 0x4, m_animProgress = 0x8, m_factionTemplate = 0x9, m_level = 0xA, m_percentHealth = 0xB, CGGameObjectData_Size = 0x2C } public enum CGDynamicObjectData { m_caster = 0x0, m_typeAndVisualID = 0x2, m_spellID = 0x3, m_radius = 0x4, m_castTime = 0x5, CGDynamicObjectData_Size = 0x14 } public enum CGCorpseData { m_owner = 0x0, m_partyGUID = 0x2, m_displayID = 0x4, m_items = 0x5, m_skinID = 0x18, m_facialHairStyleID = 0x19, m_flags = 0x1A, m_dynamicFlags = 0x1B, CGCorpseData_Size = 0x6C } public enum CGSceneObjectData { m_scriptPackageID = 0x0, m_rndSeedVal = 0x1, m_createdBy = 0x2, CGSceneObjectData_Size = 0xC } public enum CGAreaTriggerData { m_caster = 0x0, m_duration = 0x2, m_spellID = 0x3, m_spellVisualID = 0x4, CGAreaTriggerData_Size = 0x10 }
Last edited by bigtimt; 10-24-2012 at 07:02 PM.
How can you get the objectname? I am using Vtable but its returning 0 as the pointer.
Code:public enum WowObjectVMT : uint { GetObjectLocation = 34, // CGUnit_C__GetPosition InteractObject = 65, // CGUnit_C::OnRightClick GetObjectName = 73, // CGGameObject_C__GetName //431C60 } [UnmanagedFunctionPointer(CallingConvention.ThisCall)] private delegate IntPtr GetObjectNameDelegate(IntPtr thisPointer); private readonly GetObjectNameDelegate _getObjectName; _getObjectName = RegisterVirtualFunction<GetObjectNameDelegate>((uint)Objects.WowObjectVMT.GetObjectName); protected T RegisterVirtualFunction<T>(uint offset) where T : class { var pointer = Class1.MemoryIn.GetVFTableEntry(Pointer, (int)offset / 4); if (pointer == IntPtr.Zero) return null; return RegisterDelegate<T>(pointer); } public T RegisterDelegate<T>(IntPtr address) where T : class { return Marshal.GetDelegateForFunctionPointer(address, typeof(T)) as T; } public string Name { get { var pointer = _getObjectName(Pointer); if (pointer == IntPtr.Zero) return "UNKNOWN"; return Class1.MemoryIn.ReadString(pointer, Encoding.UTF8); } }
Last edited by jarjar1; 10-26-2012 at 05:24 AM.
Ah. Did not notice that, thanks. I think its just the wrong offsets. Because it crashes on return RegisterDelegate<T>(pointer); Or something else im doing wrong.
Can anyone help me with this? Following the current players stuct based on TOM_RUS (s) wowobject struct. We get:
pVtable leads to:Code:debug544:23A32FD0 dd 1C5F888h ; pVtable ; pVtable debug544:23A32FD0 dd 0BAADF00Dh ; int_unk0 debug544:23A32FD0 dd 23A36A50h ; pDescriptors debug544:23A32FD0 dd 23A3891Ch ; p_unk1 debug544:23A32FD0 dd 4 ; ObjectType debug544:23A32FD0 dd 0BAADF00Dh ; int_unk3 debug544:23A32FD0 dd 57E9F58h ; pUnk4 debug544:23A32FD0 dd 23CAF994h ; pUnk5 debug544:23A32FD0 dd 23A9FCB0h ; pUnk6 debug544:23A32FD0 dd 0C50157Ch ; pUnk7 debug544:23A32FD0 dq 0BAADF00D23A45BC0h ; pUnk8 debug544:23A32FD0 dq 5000000057E9F58h ; ulong_GUID
I am guessing either I need to follow offset sub_172F3E0 and someone pass 34 int somewhere there? as 34 is the offset for GetObjectLocation = 34, // CGUnit_C__GetPositionCode:.rdata:01C5F888 off_1C5F888 dd offset sub_172F3E0 ; DATA XREF: sub_1751F20+1Fo .rdata:01C5F888 ; sub_1752780+11o .rdata:01C5F88C dd offset sub_172F3F0 .rdata:01C5F890 dd offset sub_172F410 .rdata:01C5F894 dd offset sub_17E06B0 .rdata:01C5F898 dd offset sub_172F430 .rdata:01C5F89C dd offset sub_172F450 .rdata:01C5F8A0 dd offset sub_172F460 .rdata:01C5F8A4 dd offset sub_172F470 .rdata:01C5F8A8 dd offset sub_172F4F0 .rdata:01C5F8AC dd offset sub_172F480 .rdata:01C5F8B0 dd offset sub_1752340
Last edited by jarjar1; 10-26-2012 at 07:50 PM.
Thanks for this.
Last edited by EvsonRARA; 11-05-2012 at 11:35 AM.
19 Warden new scans(66 in total): WoW 5.0.5:16135 (x86)
Code:-------------------------------- Offset: 0x8B576F Length: 9 Bytes: 247 65 56 0 0 16 1 116 101 -------------------------------- Offset: 0x6EB0E8 Length: 5 Bytes: 116 42 246 64 52 -------------------------------- Offset: 0x421F20 Length: 9 Bytes: 85 139 236 139 69 12 131 236 8 -------------------------------- Offset: 0x59B3E6 Length: 5 Bytes: 116 82 131 255 7 -------------------------------- Offset: 0x762C4E Length: 8 Bytes: 247 195 0 1 0 0 116 19 -------------------------------- Offset: 0x597CB4 Length: 5 Bytes: 116 19 131 248 16 -------------------------------- Offset: 0x8B5730 Length: B Bytes: 85 139 236 131 236 32 243 15 16 65 76 -------------------------------- Offset: 0x796750 Length: 9 Bytes: 85 139 236 139 69 12 139 77 8 -------------------------------- Offset: 0x52AE36 Length: 4 Bytes: 127 29 139 134 -------------------------------- Offset: 0x7038A Length: 7 Bytes: 131 196 8 133 192 116 239 -------------------------------- Offset: 0x762C1E Length: 8 Bytes: 247 195 240 0 3 0 116 29 -------------------------------- Offset: 0x4ED2E5 Length: 7 Bytes: 169 0 0 0 4 116 36 -------------------------------- Offset: 0x597CC7 Length: 9 Bytes: 117 10 139 77 16 199 65 4 0 -------------------------------- Offset: 0x3F9AE0 Length: 9 Bytes: 85 139 236 131 236 16 83 86 139 -------------------------------- Offset: 0x762BF4 Length: 5 Bytes: 116 40 139 77 24 -------------------------------- Offset: 0x4A714D Length: 4 Bytes: 116 31 139 6 -------------------------------- Offset: 0x4466C0 Length: A Bytes: 85 139 236 129 236 184 0 0 0 139 -------------------------------- Offset: 0x762B30 Length: A Bytes: 85 139 236 131 236 28 83 139 93 28 -------------------------------- Offset: 0x762BEE Length: 8 Bytes: 247 195 0 0 240 0 116 40 -------------------------------- Offset: 0x7148D9 Length: D Bytes: 15 133 78 2 0 0 141 85 220 82 141 69 204 -------------------------------- Offset: 0x933E90 Length: 8 Bytes: 47 84 154 65 67 77 105 115 -------------------------------- Offset: 0x49F9E7 Length: 4 Bytes: 116 24 139 200 -------------------------------- Offset: 0x445590 Length: A Bytes: 85 139 236 131 236 52 83 86 139 241 -------------------------------- Offset: 0x572B71 Length: 6 Bytes: 139 236 131 61 232 255 -------------------------------- Offset: 0x413FBD Length: 4 Bytes: 117 39 139 206 -------------------------------- Offset: 0x8B9963 Length: C Bytes: 129 102 56 255 255 159 255 139 78 60 139 70 -------------------------------- Offset: 0x4A053F Length: 7 Bytes: 117 24 104 83 1 0 0 -------------------------------- Offset: 0x493760 Length: A Bytes: 85 139 236 131 236 24 83 86 139 241 -------------------------------- Offset: 0x125000 Length: 9 Bytes: 85 139 236 131 236 72 139 69 8 -------------------------------- Offset: 0x486230 Length: A Bytes: 139 129 8 8 0 0 37 0 0 128 -------------------------------- Offset: 0x165930 Length: 8 Bytes: 85 139 236 161 148 44 235 1 -------------------------------- Offset: 0x56B574 Length: 4 Bytes: 120 71 5 192 -------------------------------- Offset: 0x447A22 Length: 7 Bytes: 232 9 29 210 255 139 240 -------------------------------- Offset: 0x4A714B Length: 4 Bytes: 133 219 116 31 -------------------------------- Offset: 0x8C0E40 Length: 9 Bytes: 85 139 236 81 83 86 139 117 8 -------------------------------- Offset: 0x5866C0 Length: 9 Bytes: 85 139 236 131 236 64 15 87 192 -------------------------------- Offset: 0x52AE53 Length: 4 Bytes: 126 11 139 206 -------------------------------- Offset: 0x8B91D0 Length: 7 Bytes: 169 0 0 0 16 116 7 -------------------------------- Offset: 0x4937E8 Length: 4 Bytes: 116 121 243 15 -------------------------------- Offset: 0x7148B1 Length: 4 Bytes: 117 11 95 94 -------------------------------- Offset: 0x4EA311 Length: 7 Bytes: 15 47 68 8 8 114 6 -------------------------------- Offset: 0x4EDA89 Length: 9 Bytes: 247 65 56 0 2 0 32 117 52 -------------------------------- Offset: 0x597810 Length: C Bytes: 85 139 236 184 160 66 0 0 232 35 19 32 -------------------------------- Offset: 0x762C6C Length: 5 Bytes: 116 33 139 77 24 -------------------------------- Offset: 0x762C24 Length: 5 Bytes: 116 29 139 77 24 -------------------------------- Offset: 0x762C69 Length: 5 Bytes: 246 195 15 116 33 -------------------------------- Offset: 0x937BDC Length: 4 Bytes: 187 141 36 63 -------------------------------- Offset: 0xA725BC Length: 6 Bytes: 4 0 0 0 132 252 -------------------------------- Offset: 0x59AEF0 Length: C Bytes: 85 139 236 129 236 32 14 0 0 106 10 232 -------------------------------- Offset: 0x572B82 Length: 7 Bytes: 116 101 131 249 28 119 96 -------------------------------- Offset: 0x125200 Length: A Bytes: 85 139 236 131 236 100 86 139 117 8 -------------------------------- Offset: 0x4A5E54 Length: 4 Bytes: 116 30 243 15 -------------------------------- Offset: 0x57F445 Length: 5 Bytes: 119 52 255 36 133 -------------------------------- Offset: 0x8B5776 Length: 5 Bytes: 116 101 217 65 80 -------------------------------- Offset: 0x125A10 Length: A Bytes: 85 139 236 139 69 12 131 120 8 6 -------------------------------- Offset: 0x57F913 Length: 7 Bytes: 86 87 232 70 188 254 255 -------------------------------- Offset: 0x3F7F10 Length: 9 Bytes: 85 139 236 131 236 24 86 139 241 -------------------------------- Offset: 0x4A7030 Length: 9 Bytes: 85 139 236 131 236 32 86 139 241 -------------------------------- Offset: 0xA0B458 Length: 8 Bytes: 216 147 254 192 72 140 17 193 -------------------------------- Offset: 0x762C54 Length: 5 Bytes: 116 19 139 77 24 -------------------------------- Offset: 0x6FA74 Length: 7 Bytes: 232 135 72 31 0 139 13 -------------------------------- Offset: 0x4ED2EA Length: 7 Bytes: 116 36 169 0 0 16 0 -------------------------------- Offset: 0x8B9210 Length: 5 Bytes: 117 62 246 70 60 -------------------------------- Offset: 0x7536D Length: 5 Bytes: 139 77 16 137 13 -------------------------------- Offset: 0x56B5F0 Length: A Bytes: 106 1 104 192 25 147 1 104 224 138 -------------------------------- Offset: 0x4F13D3 Length: B Bytes: 1 126 116 139 206 232 51 166 255 255 139
|Leacher:11/2009|Donor:02/2010|Established Member:09/2010|Contributor:09/2010|Elite:08/2013|
I have checked and double checked and warden is not scanning for me, I can see that it has been updated but its not active.
Has anyone else noticed this too?
Update: Warden is scanning again today, I've been monitoring for a couple of hours now and I only see 47 offsets being scanned, I also set a bp on one of the new offsets that Ryuk posted just in case something else changed, it was never hit though.
Last edited by eracer; 11-10-2012 at 04:39 PM.
Warden's been scanning for me, but I haven't gotten any of the new scans. Almost all of the new scans were targeting OHack, so if you use any code from it you should check to make sure that it hasn't been detected.
The OHack scannes appear late and are not scanned frequently. I kept it running for 35 minutes.
Here are the Functionnames according to my database.
Code:0006FA74 <noname> 0007038A <noname> 0007536D FrameScript_ExecuteBuffer 00125000 luaD_rawrunprotected 00125200 <noname> 00125A10 <noname> 00165930 FrameScript::InvalidPtrCheck 003F7F10 NetClient::HandleData 003F9AE0 NetClient::Send2 00413FBD <noname> 00421F20 <noname> 00445590 CMovement_C::UpdatePlayerMovement 004466C0 CMovement_C::ExecuteMovement 00447A22 MovementIdleMoveUnits 00486230 <noname> 00493760 CGUnit_C::InitializeTrackingState 004937E8 CGUnit_C::InitializeTrackingState 0049F9E7 <noname> 004A053F CGUnit_C::SetTrackingTarget 004A5E54 CGUnit_C::HandleTracking 004A7030 CGUnit_C::UpdateSwimmingStatus 004A714B CGUnit_C::UpdateSwimmingStatus 004A714D CGUnit_C::UpdateSwimmingStatus 004EA311 <noname> 004ED2E5 CMovement_C__GetCollisionFlags 004ED2EA CMovement_C__GetCollisionFlags 004EDA89 CMovement_C__IsFlyingOrSwimming 004F13D3 CMovement_C::Fall 0052AE36 Script_UnitLevel 0052AE53 Script_UnitLevel 0056B574 CGGameUI::UpdatePlayerAFK 0056B5F0 CGWorldFrame::CreateFrames 00572B71 CGGameUI::CanPerformAction 00572B82 CGGameUI::CanPerformAction 0057F445 CGGameUI::Initialize 0057F913 CGGameUI::Idle 005866C0 CGWorldFrame::Render 00597810 CGChat::AddChatMessage 00597CB4 CGChat::AddChatMessage 00597CC7 CGChat::AddChatMessage 0059AEF0 Script_SendChatMessage 0059B3E6 Script_SendChatMessage 006EB0E8 World::QueryObjectLiquid 007148B1 <noname> 007148D9 <noname> 00762B30 <noname> 00762BEE <noname> 00762BF4 <noname> 00762C1E <noname> 00762C24 <noname> 00762C4E <noname> 00762C54 <noname> 00762C69 <noname> 00762C6C <noname> 00796750 Checksum 008B5730 <noname> 008B576F <noname> 008B5776 <noname> 008B91D0 CMovementShared::Jump 008B9210 CMovementShared::Jump 008B9963 CMovementShared::StopSwim 008C0E40 Grunt::ClientLink::PackLogon 00933E90 .data 00937BDC .data 00A0B458 .data 00A725BC .data
My Youtube Vidoes: https://www.youtube.com/user/daCoderVids
OpenHack: https://www.ownedcore.com/forums/world-of-warcraft/world-of-warcraft-bots-programs/384086-open-souce-project-wow-1-12-1-a.html
Am I getting it right, that Warden only scans writing from these adresses instead of calling those functions?
If so, why would somebody want to Hook for example ExecuteBuffer or luaD_rawrunprotected. I get it for those Movement things, but not for AddChatMessage.
Also Is there a way to hook the ConsoleCommands? Is it Secure?