Zu 1.: Du suchst in CE nach "Unknown initial Value". Du steigerst deinen Speed/ATK/Whatever durch z.B. ein Item und suchst nach "Increased Value" (Next Scan). Du legst das steigernde Item wieder ab und suchst nach "Decreased Value" (Next Scan). Das wiederholst du solange, bis nur noch ein oder zwei Adressen übrigbleiben. Zwischendurch kannste auch ein paar Mal nach "Unchanged Value" suchen um die ganzen Adressen wegzukriegen, die sich andauernd verändern.
Zu 2.: Bin kein Profi und habe mich damit noch nie befasst, aber ich denke, dass du auf jeden Fall ein paar Kentnisse in

brauchst. Dann nimmste einen Debugger (z.B. OllyDBG) und öffnest die Client.exe (Name variiert) mit Diesem. Jetzt wendest du deine Assembler-Kentnisse an und suchst in dem Assembler-Quellcode danach, wie der Client auf welche Daten zugreift (Quelle: Mr Sm!th

). Nachbauen kannste das dann auch in Assembler oder, wenn du weißt, wie du den gesehenen Code in eine andere Sprache übersetzen könntest, dann eben auch in einer anderen Sprache deiner Wahl.