Talk:IDA pro disassembler and debugger: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 44: Line 44:


(no more asking in irc, yay!:D)
(no more asking in irc, yay!:D)
== power pc assembly understanding ==
the wii's cpu is a powerpc too, so the instruction set doesnt differ at all..
this will give a good explanation of what each instruction does and how to understand it!
http://wiibrew.org/wiki/Assembler_Tutorial

Revision as of 12:00, 18 January 2012

SPUD

https://github.com/naehrwert/spud

spu decompiler. sort of.
This decompiles spu binaries (ELFs).
Right now it finds subroutines and all references between them.
It also tries to determine if a subroutine is reachable, but the problem of 
plain statical analysis is, that it doesn't find indirect calls to subroutines.
Next it builds the control flow graph for all subroutines and determines the edge types.
So please help me a little with this project :)




Anergistic

If anyone knows how to use anergistic, please document it. Specially how to DMA

An example would be excelent

-> Look into channel.c if you want to control DMA directly from C code (you will have to write your own handler) or use the provided spu.py script. MFC (memory flow controller) class controls the communication done by wrch and rdch from the SPU (e.g. DMA, mailbox, etc.) and the SPU class has methods to load and run spu binaries. You should look up on how to communicate with an SPU/how to communicate from the SPU (to emulate the instructions) in the official Cell/B.E. docs at IBM. -> Also: http://pastie.org/2000330 (runs aim_spu_module) (plus if you dump your console specific EID key, you can decrypt it with that ;))


wanna compile in win7 64bit with mingw32 and python27+ ?
small steps:

  • incase python27+ didnt set system variable,
    • var name: PATH
    • what to add: c:\Python27 or where u installed it
  • makefile http://pastie.org/2758605
    • change paths to correct ones
    • if you're getting error that python lib wasnt found copy Python27\libs\libpython27.a + python27.lib into MinGW\lib
  • have fun


changing branches,instructions etc.

consider lookin at the opcode reference: ppc-opcode-table

(no more asking in irc, yay!:D)

power pc assembly understanding

the wii's cpu is a powerpc too, so the instruction set doesnt differ at all.. this will give a good explanation of what each instruction does and how to understand it!

http://wiibrew.org/wiki/Assembler_Tutorial