Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development

oBFusCATed - gdbmi plugin query

(1/6) > >>

AndrewCot:
Has anyone done any work or played with oBFusCATed  gdbmi plugin in the last say 2 years? If you have does it compile against the latest C::B sources?

The existing source does not build due to C::B SDK a number of years ago (I think it may be 6 years, but I could be totally wrong). I have it building and loading, but not working. I have been looking at it on and off for the last 4 months.

ollydbg:
I haven't build his gdb-mi plugin recent years. But I did build and use it before.

Basic debugging feature should work OK.

AndrewCot:
I have forked the code and got it building and running with the C::B SVN code. There were a few changes due to SDK updates and a mod to the GDB breakpoint address decoding to support 64 bit address space.
The code is currently available from https://github.com/acotty/cb_gdbmi , but be aware that the plugin functionality has not changed so it is not complete.

AndrewCot:
Updated the logging and add extra logging, so the logging in the version from this afternoon (Oz time) is  a heck of allot better.
How did the devs who cloned it go with playing with it? Please raise issues or PR's or add as an issue extra testes that I have not included in the readme.md file so I can make sure all of the tests pass before finishing working on the code.

BTW: Instead of cloning the repo you are better forking the repo and then cloning it.
This post is up for the last commit on 24MAR2022.

AndrewCot:
I have started fixing bugs I come across by using the small test source code below.

I can do the following:1. set breakpoints
2. run to the first breakpoint3. Continue to the next breakpoint4. step to the next line
5. watch cTest
6. Expand the cTest in the watch window. Fixed a bug that limited the size to 100 in the original code
7. cTest updates between breakpoints or stepping to the next line is working. Fixed a bug that would stop updates after the 9th item.


--- Code: ---#include <stdio.h>#include <cstring>

using namespace std;


int main()
{
    char cTest[300];
    memset(cTest, 0x00, 300);
    //              00000000001111111111
    //              01234567890123456789
    strcat(cTest, "This is a char array");
    strcat(cTest, "This is a char array");
    strcat(cTest, "This is a char array");
    strcat(cTest, "This is a char array");
    strcat(cTest, "This is a char array");
    strcat(cTest, "This is a char array");
    strcat(cTest, "This is a char array");
    strcat(cTest, "This is a char array");
    strcat(cTest, "This is a char array");
    strcat(cTest, "END END END END END ");
    printf("Hello world!\n");
    printf("Array: \n%s", cTest);

    getchar();

    return 0;
}

--- End code ---
I am slowly making progress. If you cloned the repo or download the source zip over the last few days then I would advise updating your code as the code works allot better now and will continue to improve, so check the git repo for changes every few days.

Navigation

[0] Message Index

[#] Next page

Go to full version