Deploying a UDX written in C++

Upload, compile, link, and promote the UDX files, and register the UDX or UDXs that use those files.

To deploy a UDX that is written in C++, issue the IDA DEPLOYUDX command to carry out the following steps:
  1. Upload, from your client system to the Dynamite environment, the files needed to create the UDX. The files are uploaded to the specified project. If the project does not already exist, it is created. For example, you might upload the following files to a new project with the name proj1:
    File Description
    x1.cpp
    x2.cpp
    C++ source files.
    x1.h A header file required by x1.cpp.
    d7.a A static library file required by the UDX.
    common.so A shared library file required by the UDX.
    ab.xml
    r52.dat
    Other files required by the UDX.
    The files are placed into the following directory structure:
    <home>
      projects
        proj1: x1.cpp  x2.cpp  x1.h  d7.a  common.so  ab.xml  r52.dat
  2. Compile the source files (for C++ , these are .cpp and .h files) to generate object files (for C++ , these are .o files).

    The generated object files are put into a target directory (the default is bin), for example:
    <home>
      projects
        proj1
          bin: x1.o  x2.o
  3. Link the object files and any required static library files (for C++ , these are .a files) to produce a single library file (for C++ , this is a .so file). The generated shared object file is put into the project's bin subdirectory. For example, link the files x1.o, x2.o, and d7.a to create a single shared object file:
    <home>
      projects
        proj1
          bin: proj1.so
  4. Promote the library file and any other required files to the project's release subdirectory, for example:
    <home>
      projects
        proj1
          bin
          release: proj1.so  common.so  ab.xml  r52.dat
  5. Register the UDX. The registration step:
    • Assigns a name to the UDX. (This is where the UDX begins to exist for the first time)
    • Specifies the name of the project to which the UDX belongs. This determines where in the file system the corresponding library file can be found.
    • Specifies the entry point of the UDX in its library file. (Several UDXs can share the same library file.)
If necessary, issue additional IDA REGISTERUDX commands to register each additional UDX that uses the same library. After the UDXs have been registered they can be tested and debugged.