• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Forum moderator applications are now open! Click here for details.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.
BLAx501!
Reaction score
27

Profile posts Latest activity Postings About

  • Thanks!

    Also feel free to comment, it is a forum after all, it's made so people can post comments and discuss stuff. :D
    Empieza de 0. Aethestode cambió muchas cosas en temas de flags con el cuarto parche y sugirió seriamente empezar una nueva partida.
    Ah I see. Well, I can't exactly blame them either, as people take a look at these more experienced hackers doling out praise, then see what they've been able to do with A-Map, and realize that perhaps if these guys are liking how this program is turning out, it probably has some merit to it.
    Yeah that sounds nice - it just doesn't seem to really happen often around here. I think they don't fix them often because it requires verification. In this case, the problem was obvious, but people around here report "errors" sooooo often on things that are perfectly fine. So it is usually easier for the OP to edit the post.

    And yeah I've heard WaH. Sadly I don't speak Spanish, haha.
    ASMAGIX: https://github.com/Touched/asmagix
    Or if you peek into the hooks file in Touched's C projects, you'll see that it uses that format for hooks. FBI probably mentioned it in his C Tutorial. The first line, for example, inserts

    ldr r1, dex_seeable_mon_hook
    bx r1
    at the address 0x043F90

    You can manually write them out, but its slower and would require updating if you ever want to move the new routine :)
    También espero esa base XD... Ya no quiero hackear, solo espero que otro lo haga por mi XD
    Ohh ya tienes el poder D: la fuerza de un admin te acompaña >_<
    Sorry for the late reply, PC is refusing to give me notifications for VMs for some reason. Can you join the IRC channel link in my signature? I'd be happy to explain things more there.

    There are a number of problems with C in existing binaries:

    1) We don't have a main method, so we need to circumvent this restriction.
    2) We need some way of getting using existing symbols in the ROM in our C program, as well as make our program start from later on in the ROM, rather than offset 0.
    3) We need some way of extracting addresses to our compiled functions so we can hook to them or callasm them.
    4) We need some way of declaring static variables so that they don't clash with existing ones.
    5) We need a way to insert quickly.
    6) We need a way to debug.
    7) We need a way of calling internal functions, since the range of BL is too small.

    My solutions (a WIP) are:

    1) Compile each C file to a separate object file and link them up using a manual call to LD, ignoring the lack of a __start symbol (which usually points to the main method)
    2) Use a series of linker scripts to add symbols and declare them in headers as if they were an external, statically linked binary. Also, use a linker script to specify the offset we're starting from.
    3) I link into an object file and use nm to dump the symbol table. A script will then calculate the address of each function and create a map of function names -> address.
    4) Don't use globals at all. If you need them, manually find free RAM and declare it as an existing symbol as you would in 2)
    5) Use a script to extract the raw binary code and insert it into the ROM at the same offset supplied in the linker scripts in 2). We then use the map generated in 3) to insert hooks.
    6) Use a GDB stub and connect to it via GDB. When compiling we export a separate file containing debugging information so we can debugging at source level here.
    7) Compile using the flag "-mlong-calls" so that we can call internal functions at the cost of some space.

    As you can see, this process is heavily reliant on scripts, which I usually write for each project in Python. Often these scripts seem to only work on Linux and probably aren't very helpful if you don't know Python. I might do a tool that automates this whole procedure, but I'm reluctant to do that until I've worked out all the kinks.
    El GS esta detenido por falta de guionista, Tyren dijo que se unía, pero al final ni me contestó, asi que mejor seguiré el que ya tenía una idea planteada
  • Loading…
  • Loading…
  • Loading…
Back
Top