September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
|
|
@ -1,4 +1,8 @@
|
|||
The task requires poking machine code directly into memory and executing it. This is strictly for x86 (32 bit) architectures. The machine code is the opcodes of the following simple program:
|
||||
The task requires poking machine code directly into memory and executing it.
|
||||
|
||||
This is strictly for x86 (32 bit) architectures.
|
||||
|
||||
The machine code is the opcodes of the following simple program:
|
||||
|
||||
<lang asm>mov EAX, [ESP+4]
|
||||
add EAX, [ESP+8]
|
||||
|
|
@ -9,9 +13,12 @@ which translates into the following opcodes:
|
|||
and in Hex this would correspond to the following:
|
||||
("8B" "44" "24" "4" "3" "44" "24" "8" "C3")
|
||||
|
||||
|
||||
;Task:
|
||||
Implement the following in your favorite programming language (take the common lisp code as an example if you wish):
|
||||
<ol>
|
||||
<li> Poke the above opcodes into a memory pointer</li>
|
||||
<li>Excute it with the following arguments: [ESP+4] => unsigned-byte argument of value 7; [ESP+8] => unsigned-byte argument of value 12; The result would be 19.</li>
|
||||
<li>Execute it with the following arguments: [ESP+4] => unsigned-byte argument of value 7; [ESP+8] => unsigned-byte argument of value 12; The result would be 19.</li>
|
||||
<li>Free the Pointer</li>
|
||||
</ol>
|
||||
<br><br>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue