\ xe7 \ xff \ xe7"
Put this tag in front of your shellcode: w00tw00t
After debugging this command sequence in OD, you can sort out the following code:
00406030 66: 81CA FF0F or dx, 0FFF; generate an initial value of edx
00406035 42 inc edx; move EDX --- code
00406036 52 push edx; save
Recently called instruder 0-day vulnerability: http://www.exploit-db.com/exploits/18140/
Write the debugging analysis here. The level is limited, making everyone laugh. You are welcome to correct your criticism.
The analysis result of the dump file is as follows:
Prediction_code: (NTSTATUS) 0xc0000005-"0x % 08lx"
FAULTING_IP:
Win32k! ReadLayoutFile + 88
Bf89ed23 0fb75006 movzx edx, word ptr [eax + 6]
TRAP_FRAME: b28068a0 -- (. trap 0xffffffffb28068
Source
Very simple C language code, the function is to exchange two number:1 #include 23void swap (intint * b) { 4 *a = *a + *b-(*b = *a); 5 return ; 6 }Assembly Code Parsing
executed in the GCC compilation environment, the Gcc-s-o test.s test.c command generates the relevant assembly code.1. file"test.c"2 . Text3 . Globl _swap4. def _swap;. SCL 2; . type 32; . Endef5 _swap:6 LFB6:7 . Cfi_startproc8 PUSHL%EBP9. cfi_def_cfa_offset8Ten. cfi_offset5, -8 One movl%esp,%EBP A.
This lesson mainly on the computer operating principle and assembly language is briefly introduced.Von Joyman Architecture is the storage program Computer , that is, the program written in memory, by the CPU through the bus from memory to read a program, according to the contents of the program to perform specific steps.When the CPU reads the instruction, it uses the register IP to refer to the next instruction (an EIP if it is a 32-bit system)The register of the CPU is divided into general regi
--------------------------------------------------------------------------------------------------------------- ------------------------- This article is the MOOC course http://mooc.study.163.com/course/USTC-1000029000 of Linux kernel analysis. Homework after the first lesson. Student Name: Liu Zheng The main content of this paper is to write a simple C language program, convert it into assembly code, analyze the changes in the stack. If there is an error, please give your valuable comments, t
ss: [ebp + 8] add eax, 1 mov edx, dword ptr ss: [ebp + 0Ch] add edx, 100 add eax, edx pop ebp retn 8_test endp_main proc push dword ptr ds: B; in the disassembly, we can see that B is not B, but a [******] Digital dword ptr, which means we put [*****] in the ds (data segment); in the beginning, a double-character-length value is obtained to push dword ptr ds: a;
00400000 | hinst= 004000000012fb8c 00000000/lparam = NULL
Windowname is "really? Really! ", This is the content to be changed.
Note that do not use Ctrl + F9 or Alt + F9 to return the result. Check the first record of the stack:Call to createmediawexa from reallyre.0057d7c4
In the Assembly window, press Ctrl + G and enter 0057d7c4. You can see:0057d797 |. 50 push eax;/lparam0057d798 |. 57 push EDI; | hinst0057d799 |. 8b53 5C mov edX, dword ptr [EBX
conventions are used by function callers and function bodies, program execution errors may occur and must be considered as part of the function declaration;
Ii. Common function call conventions;
Function call conventions in vc6;
Call Convention stack clearing parameter passing_ Cdecl the caller passes the stack from right to left_ Stdcall function is passed through Stack from right to left_ Fastcall: Use register (ECx, EDX) first, and then use StackT
Method 1
MoV eax, 0MoV EBX, 0MoV ECx, 0MoV edX, 0
Method 2
XOR eax, eaxXOR edX, EDXXOR ECx, ECxXOR edX, ECx
Method 3
Hmm... yep, here the stall is partially balanced by the non-change of the source argument (a work/branch avoided by the CPU), so in this specific case, the difference is minimized.
XOR eax, eaxXOR ECx, ECxMoV EBX, eaxMoV
access the corresponding memory at that time. What can eight binary bits Express? It can express all ASCII codes. That is to say, a memory unit can store an English character or number, while a Chinese character must be represented by a unicode code. That is to say, two memory units can hold a Chinese character. It is not hard to understand that the sixteen bits are two bytes. Of course, if there are sixteen bits, there must be thirty-two bits, sixty-fourteen bits, and so on. The thirty-two bit
. m_three =3;Testret. m_four =4;ReturnTestret;}
Disassembly code:
30 : Tagtest
Test
;
31 :
Test = Rerstruct ()
;
00401078
Lea Eax, [ebp-30h]; The ebp-30h address into the stack, the function of the struct value
00401_ B
Push Eax
00401_c
Call @ ILT +
0 (Rerstruct )(
00401005 ); Execute the function, at this time the copy of the struct return value is completed on the ebp-30h
00401081
Add ESP,
4. Balance the stack
00401084
MoV ECX, dword ptr [eax]
00401086
Mo
= 2;
int *P1 = a;
int *P2 = b;
Swap (P1, p2)
}
The function swap takes two pointer variables as arguments, and when main () calls swap, the pointer variable p1, the value of P2 (that is, the address of the variable A, b) is placed in the memory unit of the swap on the stack as the form parameter x and Y, in the same way that the value is passed. This can be seen from the following assembly code (note is added by the author):
: void Main ()
23: {
......
......
INT.: int a = 1
):), compiled as:
#APP
MOVL Foo,eax
#NO_APP
MOVL Eax,bar
The statement is a bit weird, but it's a good representation of how GCC works.
Take a piece of code in ARCH/I386/KERNEL/APM.C as an example, let's compare what happens before and after they compile:
Compiled Code of source program
__ASM__ (
"Pushl%%edi/n/t"
"Pushl%%ebp/n/t"
"Lcall%%cs:/n/t"
"SetC%%al/n/t"
"Addl%1,%2/n/t"
"Popl%%ebp/n/t"
"Popl%%edi/n/t"
: "=a" (EA), "=b" (EB),
"=c" (EC), "=d" (ed), "=s" (es)
: "A" (eax_in), "B" (e
Ethtool-display or change ethernet card settings (ethtool is a tool used to display and change Nic settings. 1. ethtool displays network port settings;
This function is easy to handle. That is, the ethtool is followed by the netmask interface. For example, the following example;
[Root @ localhost ~] # Ethtool eth0Settings for eth0:Supported ports: [tp mii]Supported link modes: 10 BaseT/half 10 BaseT/full100 Baset/half 100 Baset/fullSupports auto-negotiation
A physical line from a node to an adjacent node is called a link. It requires the physical layer to provide data sending and receiving services, and provide data packet encapsulation and network layer parameter negotiation for the network layer, the sender and receiver determine the necessary information in data transmission by sending an LCP package.
1. Use the display interface command to View interface Information. Check whether the physical layer
My work is not short, and I feel that I have a lot of performance, but the boss seems to have turned a blind eye to it, and the salary is just a little bit. As a result, there is always a bit of resentment, and it is inevitable that my heart will be up and down, I think the boss is too embarrassed, I feel that I have encountered too unfair. At this time, we should talk to the boss about salary increase. If you don't talk about it, you may have to consider whether you should change your job. In f
(standard compression of UNIX systems)· Deflate (zlib)· Identity (not coded)Multi-Part object collectionThe multi-part object collection is adopted in the HTTP protocol, allowing multiple types of entities to be contained within the sending message body. used when uploading files or images, you can set the Content-type property to specify them. Several common forms are as follows:Text: Used to standardize the presentation of textual information, text messages can be in multiple character sets a
or images, you can set the Content-type property to specify them. Several common forms are as follows:Text: Used to standardize the presentation of textual information, text messages can be in multiple character sets and or multiple formatsMultipart: Multiple parts used to connect the body of a message form a message that can be of different types of dataApplication: Used to transfer application data or binary dataRange requestImplementing this feature requires specifying the scope of the downl
multiple ranges, the response will return a response message after the header field Content-type indicates multipart/byterangesIf the server side is unable to respond to the range request, the status code is OK and the full entity content3.6 Content Negotiation Returns the most appropriate contentWhen the browser's default language is English, when accessing the same URI Web page, the corresponding English version of the Web page is displayed, a mech
WaitForDebugEvent from MAGCT.0060F8B90012 BCBC 0012CD90 | pDebugEvent = 0012CD900012BCC0 000003E8 Timeout = 1000. MSLocate CD90 in the data window and check the OEP value.Next, disconnect: BP WriteProcessMemory
Now go to the code window Ctrl + G: 0060F8BFCtrl + f search command at the current location: or eax, 0FFFFFFF8Locate the first place at 0060FE8F, on which cmp dword ptr ss: [ebp-A34], 0 sets the breakpoint.
0060FE43 83BD CCF5FFFF 0> cmp dword ptr ss: [ebp-A34], 0// Down, Shift + F9 inter
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.