should have one. text section. The following is our first assembler, In the att assembly language format:
Example 1. att format
# Hello. s. Data # Data Segment DeclarationMSG:. String "Hello, world! // N "# string to be outputLen =.-MSG # String Length
. Text # code snippet Declaration. Global _ start # specify the entry function_ Start: # display a string on the screenMovl $ Len, % edX # parameter 3: String LengthMovl $ MSG, % ECx # parameter 2: s
function uses two pointer variables as parameters. When Main () calls swap, it transfers the values of the pointer variables P1 and P2 (that is, the addresses of the variables A and B) by passing the values) in the memory unit opened by SWAp in the stack as the form parameter X and Y. This can be seen from the following Assembly Code (the author adds the annotation ):
22: void main ()
23 :{
......
......
13: int A = 1, B = 2;
00401088 mov dword ptr [ebp-4], 1
00401_f mov dword ptr [ebp-8], 2
14
:
100000 + 400*4 + 20000 = 100000 + 1000 + 20000 = 121000. The linear address is 400000 + 121000 = 521000. (Note: all are hexadecimal numbers ).
The base address can be placed in any 32-bit general-purpose register, or in any general-purpose register except ESP. The proportional factor can be 1, 2, 4, or 8. Offset is the number of immediately. For example, [EBP + EDX * 8 + 200] is a valid address expression. Of course, in most cases, it is not necessa
));Store VaR in the register % eax first, add 1 to the register, and then send it to the VaR
Common Embedded Assembly usageInt main (void){Int x = 10, Y;ASM ("movl % 1, % eax;Movl % eax, % 0 ;": "= R" (y) output variable: "R" (x) input variable: "% Eax ");}Here, the value of X is copied to Y, X, and Y, which are first put into the register. The Assembly Code will look like this:Main:Pushl % EBPMovl % ESP, % EBPSubl $8, % ESPMovl $10,-4 (% EBP)Movl-4 (% EBP), %
Storage program computer (the stored programs computer)
Memory store directives and data
CPU Interpretation Instructions
X86 implementation (X86 implementation)Registers (Register)
Universal register (general-purpose registers)
Segment Register (Segment registers)
Flag Register (EFlags register)
x86_64 Register (x86_64 registers)
Memory
MOVL%eax,%edx
(because the string is too long and it is too long to be directly pasted in the article, it is given as a link ):
Https://raw.githubusercontent.com/CodingLi/test/master/exp_buffer
Enable ie in Windbg
Then g runs the program and an exception occurs. The exception is as follows:
0:000>g(830.fb8):Accessviolation-codec0000005(firstchance)Firstchanceexceptionsarereportedbeforeanyexceptionhandling.Thisexceptionmaybeexpectedandhandled.eax=0000004aebx=022cde82ecx=0013e140edx=00140000esi=0013df00edi=0
zone.But the size is not struck size, but 4B, that is, the size of an address variable.Uninitialized into 0x00000000.Straighten:MOV Edx,dword [_mystruck_c]MOV DWORD [8+edx],3Must take the address straight to get the real address plus the digital locator memberLocal variables,The program is loaded and does not exist anywhere.Only run-time, put in the stack. Such as:struct Mystruck mystruck_d;Compile to SUB
.
--------------------------------------------------------------------------------------------------------------- -----------------------------------------
Below say the lobbyist to end of the crack (small try a sledgehammer!) Interested friends can make a DLL
To achieve the increase in blood lock blood volume!
. text:004e8ef0 SUB_4E8EF0 Proc Near
. text:004e8ef0
. TEXT:004E8EF0 Arg_0 = dword ptr 4
. TEXT:004E8EF0 Arg_4 = dword ptr 8
. TEXT:004E8EF0 Arg_8 = dword ptr 0Ch
. text:004e8ef0
. TE
every time). Press Ctrl + D TO OPEN SoftICE, run the following command: BPM 798695C W (interrupted when writing this address). Return to the game and open the character attribute panel. The game is interrupted. In SofitICE, you will see this command:Run the following command in 0047EB17 mov eax [EDX + 000003F4]: d edx + 3F4. The internal force value is displayed.0047EB1D PUSH EAX...........................
-removing corrected file and F9 runs.
In addition to the user data that can be seen in the user list, this software cannot obtain the required sensitive characters in strings and memory.
It is difficult to break down. Fortunately, you can find the ASCII "all" through the plug-in and take it off.
//////////////////////////////////////// //////////////////////////////////////// //////////////= Check the number of users =00434CA4 |. 50 push eax;/Arg1 = 0012F78000434CA5 |. E8 AAE2FFFF call un_SDE3S.
Author: wangweilll
These times have been playing CrackMe learning algorithm analysis ~, Today, I am looking for a foreign software to analyze analysis algorithms.I am not looking for any software in our country ~~~~!!!!!!!!!!!!!Because software writing is a great deal of effort ~~, It is not good to publish their algorithms ~~~Let's talk about the analysis.My username is: wangweiThe false code I entered is: 12345678900546FC3 51 push ecx00546FC4 53 push ebx00546FC5 56 push esi00546FC6 57 push ed
\ x05 \ x5a \ x74"
"\ Xef \ xb8 \ x77 \ x30 \ x30 \ x74 \ x8b \ xfa \ xaf \ x75 \ xea \ xaf \ x75 \ 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
004060
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
00000278 | Height = 278 (632 .)0012fb80 00000000 | hparent = NULL0012fb84 00000000 | hmenu = NULL0012fb88 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
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.