Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9013135
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T03:11:03+00:00 2026-06-16T03:11:03+00:00

How can I write this in inline asm? I want to write the value

  • 0

How can I write this in inline asm? I want to write the value of packet into the memory location of cave in inline asm, how? I can do it with the WriteProcessMemory but I want to get rid of that and replace with asm

int SendToClient(BYTE *packet, int Length)
{
    int cave = (int)VirtualAllocEx(hProcess, NULL, Length, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); 

    if (WriteProcessMemory(hProcess, (void*)cave, packet, Length, NULL))
    {

    }

    __asm
    {
        //how?
    }
}

for example, say I wanted to read from the address senderOffset I would do:

int GetSenderID()
{
    int value;

    __asm
    {
        mov eax, senderOffset
        mov value, eax
    }


    return *(int*)value;
}

this is doing what “ReadProcessMemory(GetCurrentProcess(), (VOID*)senderOffset, &value, 0) would do, I’m just looking for the same kinda method to “WriteProcessMemory” with inline asm.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T03:11:05+00:00Added an answer on June 16, 2026 at 3:11 am

    If what you want to do is essentially rewrite WriteProcessMemory() in inline assembly, forget it, it ain’t gonna happen. WriteProcessMemory() is an OS interface that allows you to change the content of another process’s virtual memory space, which you can’t do directly from a user-space process no matter what instructions you use. No amount of assembly, whether inline or in a separate assembly source file, will be able to cast the magic spells required to allow your process, operating within its virtual memory sandbox, from writing into another process’s virtual memory sandbox without going through the OS to do so. While operating within your user-mode program, the MMU is set up to give your process access to its own memory & nothing else. Even trying to access memory that’s not allocated to your process will give you some sort of access violation error (which is called SIGSEGV in Linux-land; I know you’re on Windows though).

    To access memory in another process’s address space, you have to call on the operating system to do so. Each system has a controlled way of making OS calls that switches the processor from user-mode to kernel-mode. In x86, these are termed “rings”, with the OS operating in the highest-privileged “ring 0” and user-mode code running in the least-privileged “ring 3”. Drivers operate in the other two rings. You cannot simply switch the CPU from ring 3 to ring 0; attempting to do so would trigger a privilege violation. And within ring 3, you cannot change the MMU to allow your process to access (read or write or execute) another process’s memory space.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

How can i write this correctly ? I want to check how many days
How can I write this in such a way that $counter value is 1
How can I write this so it targets both elements without writing it twice
How can I write this code more cleanly/concisely? /// <summary> /// Creates a set
how can i write this code from aspx page in code behind? <a href=skype:MySkype?call><img
Using Microsoft Visual Studio 2010: Can I write this type of macro in C?
Can someone help me understand how to write this case statement properly its not
So I know I can write my own HTML-encoding function like this: function getHTMLEncode(t)
If I write this: document.createElement(img) The generated html is: <img> , and I can
This is a textarea. The user can write anything. <textarea id=text>First sentence. Second sentence?

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.