Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. how to write a function in a file at binary level (after compilation)

how to write a function in a file at binary level (after compilation)

Scheduled Pinned Locked Moved C / C++ / MFC
tutorial
5 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    Joseph Marzbani
    wrote on last edited by
    #1

    I know this may look a little more than a little strange! But for a reason I want to write a whole function in a file at run-time. OK, let's do some clarification: see you have a function like:

    void foo ()
    {
    your code ...
    }

    after compilation we have some thing like:

    // foo()

    push 210
    mov eax, ebx
    ...

    and in binary level:

    // foo()

    E8 00 DA 65 00 00 DF

    What I need is to write these binary codes in a file. Note 1- There's no such an instruction like mov eax, eip or pop eip in Intel instruction set. Actually there's no instruction to get or set eip directlt.

    Thank you masters!

    CPalliniC B 2 Replies Last reply
    0
    • J Joseph Marzbani

      I know this may look a little more than a little strange! But for a reason I want to write a whole function in a file at run-time. OK, let's do some clarification: see you have a function like:

      void foo ()
      {
      your code ...
      }

      after compilation we have some thing like:

      // foo()

      push 210
      mov eax, ebx
      ...

      and in binary level:

      // foo()

      E8 00 DA 65 00 00 DF

      What I need is to write these binary codes in a file. Note 1- There's no such an instruction like mov eax, eip or pop eip in Intel instruction set. Actually there's no instruction to get or set eip directlt.

      Thank you masters!

      CPalliniC Offline
      CPalliniC Offline
      CPallini
      wrote on last edited by
      #2

      Why don't you get the compiler output?

      If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
      This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
      [My articles]

      In testa che avete, signor di Ceprano?

      J 1 Reply Last reply
      0
      • CPalliniC CPallini

        Why don't you get the compiler output?

        If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
        This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
        [My articles]

        J Offline
        J Offline
        Joseph Marzbani
        wrote on last edited by
        #3

        because I need to write it anywhere I want. I don't want to use the simple copy-paste method.

        CPalliniC 1 Reply Last reply
        0
        • J Joseph Marzbani

          because I need to write it anywhere I want. I don't want to use the simple copy-paste method.

          CPalliniC Offline
          CPalliniC Offline
          CPallini
          wrote on last edited by
          #4

          The you have to write a compiler... :)

          If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
          This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
          [My articles]

          In testa che avete, signor di Ceprano?

          1 Reply Last reply
          0
          • J Joseph Marzbani

            I know this may look a little more than a little strange! But for a reason I want to write a whole function in a file at run-time. OK, let's do some clarification: see you have a function like:

            void foo ()
            {
            your code ...
            }

            after compilation we have some thing like:

            // foo()

            push 210
            mov eax, ebx
            ...

            and in binary level:

            // foo()

            E8 00 DA 65 00 00 DF

            What I need is to write these binary codes in a file. Note 1- There's no such an instruction like mov eax, eip or pop eip in Intel instruction set. Actually there's no instruction to get or set eip directlt.

            Thank you masters!

            B Offline
            B Offline
            Bram van Kampen
            wrote on last edited by
            #5

            As I understand it, you want to include in your executable, a number of Datablocks which you want to use as prototype executable files, to be called by your process. This can be done, and I've done it. If that's what you want, it also requires No ASM Code to implement! :)

            Bram van Kampen

            1 Reply Last reply
            0
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • World
            • Users
            • Groups