# Forum > World of Warcraft > World of Warcraft Bots and Programs > WoW Memory Editing >  [IDA] Updating function names/offsets in b/t versions?

## Tanaris4

Forgive me if this has been posted already, I have actually searched + seen random comments on doing things like patch2diff and doing a bit of random changes.

But is there a systematic method to updating your IDB for the next update? I significantly commented/renamed in my mac 3.3.0a version and would hate to have to go back and do this manually.

How do you all keep your IDB files up to date w/patches?

Thanks in advance!

----------


## Tanaris4

I hadn't searched teh googleszzz - assuming you're all using:

PatchDiff 2

Is there an easy way to have it rename your functions? (that it finds as matched/identical?) Or would that require me to write my own IDA Plugin

----------


## barthen

I use binarydiffer , it allows you to copy the matches and you can paste them to a text file.

----------


## TOM_RUS

You can copy PatchDiff2 output just fine, than parse it and import to new IDB with IDC script.

----------


## Tanaris4

Is said script posted anywhere? Haven't done any IDA scripting so was just curious. I could imagine how it works easily enough. Replace all functions that don't start in sub_, or something similar.

----------


## TOM_RUS

> Is said script posted anywhere? Haven't done any IDA scripting so was just curious. I could imagine how it works easily enough. Replace all functions that don't start in sub_, or something similar.


http://www.mmowned.com/forums/wow-me...ml#post1754263

----------


## amadmonk

So what's the process, then? Sorry to re-zombifiy this thread, but I've been needing to improve my patch day process for a while. I'm running on an emulator at the moment, so I haven't had to deal with 3.3.2 yet, but I'd really like patch day to stop being such a monumental pain of hand-reversing code.

So... build your IDB, then run patchdiff2 on the new patch then... run Apoc's IDC against patchdiff2 output?

----------


## Tanaris4

@amad - the only issue I ran into w/patchdiff2 is it won't rename any dwords you renamed. I believe the linked thread above WILL handle this, but i have NOT tried it yet.

----------


## Nesox

> So what's the process, then? Sorry to re-zombifiy this thread, but I've been needing to improve my patch day process for a while. I'm running on an emulator at the moment, so I haven't had to deal with 3.3.2 yet, but I'd really like patch day to stop being such a monumental pain of hand-reversing code.
> 
> So... build your IDB, then run patchdiff2 on the new patch then... run Apoc's IDC against patchdiff2 output?


1# Run patchdiff, copy the output to a textfile
2# Use my tool to trim the output, http://dl.dropbox.com/u/4381027/PD2Trimmer.rar
3# use this IDC script written by barthen to rename functions, http://dl.dropbox.com/u/4381027/Function%20Naming.idc
4# Profit!?

----------


## barthen

> 3# use this IDC script written by barthen to rename functions, http://dl.dropbox.com/u/4381027/Function%20Naming.idc


ostapus wrote it, not me  :Stick Out Tongue:

----------


## Randomizer

> 1# Run patchdiff, copy the output to a textfile
> 2# Use my tool to trim the output, http://dl.dropbox.com/u/4381027/PD2Trimmer.rar
> 3# use this IDC script written by barthen to rename functions, http://dl.dropbox.com/u/4381027/Function%20Naming.idc
> 4# Profit!?


Thank you for this info +rep.

----------


## Tanaris4

> You can copy PatchDiff2 output just fine, than parse it and import to new IDB with IDC script.


I hate to ask this question, but how do you copy the output? It have 3 tabs that appear, but I don't know how to copy/export this data out of IDA

Thanks!

----------


## zzgw

Right click, Copy.

----------


## Apoc

Scroll way to the right; right click the white area -> copy.

Wait for IDA to be responsive again, and you're done. (Idk why, but IDA takes forever to put stuff in your clipboard.)

----------


## Tanaris4

@Apoc - thanks, I wasn't able to right click for all rows and was thinking it was b/c i'm on a VM

How do you keep all the variable names you renamed up to date in b/t versions? Are you using the 4-step method that Nexos referred to? I'm starting to rename dwords + variables a lot and I'm terrified for the next patch

----------


## Apoc

> @Apoc - thanks, I wasn't able to right click for all rows and was thinking it was b/c i'm on a VM
> 
> How do you keep all the variable names you renamed up to date in b/t versions? Are you using the 4-step method that Nexos referred to? I'm starting to rename dwords + variables a lot and I'm terrified for the next patch


Without a lot of pattern-based stuff, you really can't.

I do it manually for the most part. I tend to rename as I go. (I don't make it a point to update *everything*. Function names however, are updated every patch.)

----------

