MMOwned - World of Warcraft Exploits, Hacks, Bots and Guides

Homepage Register FAQ Members Mark Forums Read Advertise Marketplace FPSowned


Go Back   MMOwned - World of Warcraft Exploits, Hacks, Bots and Guides > World of Warcraft > Bots and Programs > WoW Memory Editing
Reload this Page Help: GetFactionReaction
WoW Memory Editing WoW Memory Editing for learning purposes only.

Reply
 
LinkBack Thread Tools
Help: GetFactionReaction
(#1)
Old
Shynd's Avatar
Shynd is Offline
Master Sergeant
Rep Power: 1
Reputation: 18
Shynd is on a distinguished road
 
Posts: 83
Join Date: May 2008
Help: GetFactionReaction - 06-15-2008

I need someone who's better at deciphering ASM than I am. I've come as far as I can go, tonight, and am starting to get a headache with all of this reverse-engineering. Kynox, anyone, help me out!

Okay, so I've been working on how to determine how an enemy reacts to me (aggressive, neutral, friendly, etc.) and have started, but not finished, reverse-engineering the class method CUnit->GetUnitReaction(CUnit unit) (thanks to Kynox for the address, supplied in his InProcess Object Dumper). Here is what I've found:
CUnit->GetUnitReaction grabs the faction for unit1--faction is held at [[unit1+0x120]+0x74]--(the class object from which the method has been called) and the base address for unit2 (the unit against which unit1 is being compared) and passes them as arguments to a subroutine I've affectionately named GetFactionReaction(DWORD unit1faction, DWORD unit2).

GetFactionReaction then gleans unit2's faction using the same method as above and gets two addresses representing the two factions in a list (linked-list?) held in memory. It then passes these two addresses to another subroutine (hereafter known as CompareFactionHash, for lack of a better name) and THIS is the part that I have trouble following. CompareFactionHash is 0x005C8900.

Here's the relevant ASM for GetFactionReaction:
[Only registered and activated users can see links. ]

And CompareFactionHash (WARNING: this is a long text-bomb, which is why I'm having such trouble with it).
[Only registered and activated users can see links. ]

Thanks to whomever attempts to help. I'm really in the dark as to how it compares the two factions and gets how one reacts to the other.




Note: If you are debugging and you want to see what faction is what, convert your faction to decimal and go to http://www.thottbot.com/f#### where #### is the number of your faction. For instance, http://www.thottbot.com/f6 is the Tauren faction.
Reply With Quote

Donate to remove ads.
(#2)
Old
Shynd's Avatar
Shynd is Offline
Master Sergeant
Rep Power: 1
Reputation: 18
Shynd is on a distinguished road
 
Posts: 83
Join Date: May 2008
06-15-2008

Nevermind, I dealt with the headache of deciphering what was going on:
[Only registered and activated users can see links. ]

And my C# equivalent:
[Only registered and activated users can see links. ]

Full GetUnitReaction code (C#):
[Only registered and activated users can see links. ]

Have fun. Have updated my modification journal, as well. See the thread [Only registered and activated users can see links. ].
Reply With Quote
(#3)
Old
ShoniShilent is Offline
Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep)
Rep Power: 1
Reputation: 3
ShoniShilent is an unknown quantity at this point
 
Posts: 43
Join Date: May 2008
06-17-2008

i note in your code:

int factionIndex = Memory.ReadInt(hProcess, 0x93E80C);
int factionPointer = Memory.ReadInt(hProcess, 0x93E818);
int totalFactions = Memory.ReadInt(hProcess, 0x93E808);


(unit1 + 0x120)) + 0x74));

where do i get the address for unit1 and unit2 ? what is this value in terms of the objects in WOW? is this the base address of a WOW object?

does unit1/unit2 fit into this listing anywhere?

TWoWObject = record
DontCare1: Integer;//0x00
DontCare2: Integer;//0x04
DontCare3: Integer;//0x08 pointer to compl. struct i.e. eObjectFields
DontCare4: Integer;//0x0C end of compl. struct
DontCare5: Integer;//0x10
ObjectType: Integer; //0x14 == OBJECT TYPE LIST!
DontCare7: Integer;//0x18
DontCare8: Integer;//0x1C
DontCare9: Integer;//0x20
DontCare10: Integer;//0x24 ptr to item-struct?
PtrCheck: Integer;//0x28 PtrCheck == NextPtr while NextPtr --> WoWObject
DontCare12: Integer;//0x2C
GUID: Int64; //0x30 GUID
DontCare13: Integer;//0x38 end of each item-struct element (ptr to the next)?
NextPtr: Integer; //0x3C
end;

thanks for your sharing and for your thorough method of posting-
Reply With Quote
(#4)
Old
Shynd's Avatar
Shynd is Offline
Master Sergeant
Rep Power: 1
Reputation: 18
Shynd is on a distinguished road
 
Posts: 83
Join Date: May 2008
06-17-2008

Yeah, unit1 and unit2 is just the base address of the two units.
Reply With Quote
(#5)
Old
ShoniShilent is Offline
Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep)
Rep Power: 1
Reputation: 3
ShoniShilent is an unknown quantity at this point
 
Posts: 43
Join Date: May 2008
06-17-2008

thanks for the reply. i'll take a look at this in a bit.

my bot is fully working now. it kills/ skins/ loots/ mines, has custom combat scripts.

i need to work out how to ressurect, etc. next.

the reason i was asking about this is because my way of doing this is 98% perfect, but not always. so if i could work out the correct way to get the neutral/friendly/hostile thing my bot would not make some unintended errors in some places.

if you need any help about anything, pm me or ask for it in the forums. i have alot going on but i check here fairly regularly.

thanks for the code posting-
Reply With Quote
Reply

Donate to remove ads.

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are On




Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
vBulletin Skin developed by: vBStyles.com


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327