1. Data Transmission commands ── ─ they transmit data between the storage and registers, registers and input and output ports. 1. general data transmission commands. moV transfers words or bytes. movsx first extends the symbol and then transmits it. movzx is not extended before transmission. push pushes words into the stack. pop pops up the word stack. pusha pushes ax, CX, dx, BX, SP, BP, Si, di into the stack in sequence. popa pops up the stack of DI
convenience, use is still the conditional judgment of the branch structure.
C + + source
Debug version
Release version
#include using namespace Std;int main (){int A, B;Cin >> a >> b;①cout Iicout cout cout System ("pause");return 0;}
#include using namespace Std;int main (){............. Slightlyint A, B;Cin >> a >> b;............... Slightly①cout 003d5eb6 cmp DWORD ptr [a],5003d5eba jne main+68h (03d5ec8h)003D5EBC m
execute the * operation, in this case, we cannot change the CALL to JMP during compilation (refer to the assembly code below ).
The transformed recursion follows the standard of tail recursion:
class Program {static void Main(string[] args) {var result = FactorialTailRecursively(5, 1); }public static int FactorialTailRecursively(int n, int result) { result = result * n;if (n == 1) {return result; }return FactorialTailRecursively(n - 1
does not contain 006af00a. It is because the code is analyzed by the command OD error and followed up by F7.At 006af00a, such close-range call is actually a deformed JMP. Follow up with F7. If F8 is skipped, it will hit the trap inside.
006af00a 5d pop EBP; drvstudy.006af007, jump here006af00b 45 Inc EBP; EBP + 1006af00c 55 push EBP; jump to the EBP address006af00d C3 retn
Coming006af008/EB 04 JMP short drvstudy.006af00e; here006af00a | 5d pop EBP006af00b | 45 Inc EBP; EBP + 1006af00c | 55 push
The player can support 10 kinds of video formats ~ If you have a master or art can be self-beautification and modification to enhance the use.Save the following PHP code into player.phpThen upload it to FTP and use it on the web.Http://www.abc.com/player.php?url=htttp://www.8le.net/test.wmaYou can add prevent files from downloading after WMAplayer.php::::::::::::./*if ($_get[' url ']!= ') {$mov _url=$_get[' url '];$
Just contact the assembly, a lot of details are not very clear, wrote a decimal and hexadecimal conversion between the program (a bit of a setback.) ) as a practiced hand.Post code, hope that the passing of Daniel can give some guidance.Idea: (10->16) decimal number input when single character processing, meet enter end input, finally get a decimal number. Then loop left (processing only 4 times), take the next four bits, which is equivalent to/16The last output character. (16->10) Similar proce
Lea edx,[ebp-14h]0040142b Push edx0040142c push 15h0040142e push 14h00401430 push 13h00401432 call @ILT +15 (Fnnakedcall) (00401014) 00401437 add esp,10h0040143a mov dword ptr [ebp-18h],eax133:You can see that the calling convention conforms to the __CDECL convention, so keep a look:68:69: __declspec (naked) int __cdecl fnnakedcall (int arg1, short arg2, char arg3, void *arg4)
Virus program source code instance analysis-example code of CIH virus [2] can be referred to push eax; block table size
Push edx; edx is the offset of the virus code block table
Push esi; buffer address
The total size of the merged virus code block and virus code block tables must be smaller than or equal to the unused space size.
Inc ecx
Push ecx; Save NumberOfSections + 1
Shl ecx, 03 h; multiply by 8
Push ecx; reserved virus block tablespace
Add ecx, eax
Add ecx, edx; offset of the ec
Exploration on the Assembly layer of references
Basic knowledge: in fact, there is no essential difference between a pointer and a common variable. It depends on how the compiler interprets it. If it is a value, it is used directly. If it is a pointer, read out the value in the memory and read the value in the address as the address. The Compiler creates a table with the corresponding name and address.
Note: In this example, the C ++ code compilation and interpretation is viewed in vs2008. Th
. Recently, because of a "small problem", the kernel level of Linux kernel and FreeBSD has beenTracking and debugging, and then discovering a very interesting problem, I feel that this problem may be different from the Linux shellcode andThe shellcode differences under FreeBSD are also slightly related to the system architecture. The following content isThe following is a compilation of syscall code.In Linux, the application uses the following code to call syscall:420d4330 55 push EBP |420d4331
Application
Note that the function of the Irect command is:
Pop IP
Pop CS
Popf
(1) function: Calculate the square of a word data
Parameter: (ax) = data to be calculated
Returned value: dx and ax stores the results in 16-bit high and 16-bit low.
1. the interrupt handling procedure is as follows:
Assume cs: code
Code segment
Start: mov ax, cs
Mov ds, ax
Mov si, of
The Calculates the number of a+b within two bits.
;---------------------------assume CS:CC, ds:qw;---------------------------QW SEGMENT; data segment;D B One byte, dw two bytes, dd four bytes M1 DB ' Please input n1: $ ' M2 db in a, ' please input N2: $ ' M3 db, ' SUM = $ ' M4 db, ' Pres
s any key to continue ... $ ' N1 DB?
N2 DB?
S DB?
QW ENDS;---------------------------CC SEGMENT; code snippet START:; introduce QW segment mov ax, QW
Windows 8.1 (64bit.
When the page is loaded, the Pressure () function executes three tasks:
First, the spray () function is used to inject memory. Then, the for loop consumes more memory resources. Finally, Pressure () functions consume more resources by calling them recursively. Because the Pressure () function is a recursive function, the spray () function is called multiple times. The result of each stack injection operation executed by this function is saved to the tab array. In a few sec
A microsecond of time; If a 6MH oscillator is used, executing an instruction typically takes up to three microseconds.
Now there are many types of MCU, but in each model of the microcontroller device manual will be detailed instructions for the implementation of the various instructions required by the machine
The above concepts can be completed according to the instruction execution cycle in the microcontroller device manual and the crystal Oscillator frequency of the microcontroller.
A delay
During the course of studying ASM in, I used BT to publish a large film and sent it to me via QQ. Looking at the file transfer progress, I suddenly wrote the following small program to copy the file.; Program: copy the file program, automatically rename
Note: Because dos does not support file names with more than 8 characters, the program cannot be copied because the program has eight file names and one cannot be copied.
_ Data Segment
Mess dB 'please, input file name. ', 0dh, 0ah, 24 h
FNF dB 0
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.