successful.(1) Standard Single-thread modeMethod: add Magic Jump to the breakpoint method twice. 1. Find the Magic Jump method. Method 1: run the following command: Bp GetModuleHandleA/he GetModuleHandleA/bp GetModuleHandleA 5/he GetModuleHandleA 5, and press shift f9, when the call buffer is a little large, it is generally run again after the ASCII "kernel32.dll" and ASCII "VirtualFree" appear in the stack window, and "kernel32.dll" appears, that is, the return time, cancel the breakpoint and
additional "return into libc" Check, including checking whether a return address points to the next command of call or JMP. Code of the most basic stack rollback operation (usually used in bopt), just like the following:[-----------------------------------------------------------]
While (is_valid_frame_pointer (EBP )){Ret_addr = get_ret_addr (EBP );
If (check_code_page (ret_addr) = buffer_overflow)Return buffer_overflow;
If (does_not_follow_call
1.Write code to the specified addressA, JMP address translation formula derivationB, calculate the actual address function realjmp_addrC, testing"240" JMP Instruction-Machine code--0XE9"260" instruction "JMP 88881234"--translated into machine code--"E9 88881234""328" open OD See if the JMP instructions are translated a
Linux Practice--Program hackOne, Master NOP, JNE, JE, JMP, CMP assembly instructions machine code
The NOP:NOP instruction is the "null instruction". When executing to the NOP instruction, the CPU does nothing, just as an instruction to execute the past and continue executing a command behind NOP. (Machine code: 90)
JNE: Conditional transfer directives, if not equal, jumps. (Machine code: 75)
JE: Conditional transfer instruction, if eq
DescriptionPeter Parker wants to play a game with Dr Octopus.The game is about cycles. Cycle is a sequence of vertices, such that first one are connected with the second, second are connected with third and So on and the last one are connected with the first one again. Cycle may consist of a isolated vertex. Initially there Are K cycles, I -th of them consisting of Exactly v i vertices. Players Play
Linux Practice--a program hack, mastering the machine Code of NOP, JNE, JE, JMP, CMP assembly instructions
The NOP:NOP instruction is the "null instruction". When executing to the NOP instruction, the CPU does nothing, just as an instruction to execute the past and continue executing a command behind NOP. (Machine code: 90)
JNE: Conditional transfer directives, if not equal, jumps. (Machine code: 75)
JE: Conditional transfer instructi
There are two main types:
Do not change privileges, change privileges
1. Do not change the privilege level. You can use the inter-segment or intra-segment call or JMP. Do not judge between segments. What is the destination segment?Code.
If the code segment is inconsistent, CPL = DPL and RPL If the code segment is consistent and RPL is not judged, CPL> = DPL is required, that is, the outer ring can jump into the inner ring, but CPL remains unchan
Offest: Get the offset address of the labelform of use: Offest markingOffest marking the entire instruction can be used on dutyEg:start:mov ax,offest start equivalent to MOV ax,0jmp(1) JMP short label: Go to the label to execute instructions, transfer withinUse the IP at the label to change the current IP, the range of IP modification (that is, plus minus) is -128~127(2) jmp near PTR designator: Unlike
to 96170eh
009616f9 je wmain + 7eh (96170eh)
009616fb mov ECx, dword ptr [ebp-140h] // assign the applied memory address to ECx
00961701 call vtblreal1: vtblreal1 (961_ch) // call the vtblreal1 constructor ?? What do constructors do? See the following detailed descriptions of vtblreal1 constructor:
00961706 mov dword ptr [ebp-1E4h], eax // assign the return value to the ebp-1e4h ?? Ebp-140h to view the following object initialization Research
0096170c
are all intermediate in the. idata section.
Some interesting things are also found throughout the process,
0: 000> X testc! Loadli *00412d24 testc! Loadlibraryw = 0: 000> X testc! Term *00414d56 testc! Terminate = 00412d12Testc! Terminateprocess = 0: 000> U 412d12 L4Testc! Terminateprocess:00412d12 ff25e0a14100 jmp dword ptr [testc! _ Imp _ terminateprocess (0041a1e0)]Testc! Getprocaddress:00412d18 ff25e4a14100 j
: [EDI]
Add (3, 4 );
004117ce Push 4
004117d0 Push 3
004117d2 call add (4111c2h)
004117d7 add ESP, 8
Return 0;
004117da XOR eax, eax
}
Note that the address here is 0x004111c2, rather than the address 0x00411370 of the add function.
In the Disassembly window, view the address 0x004111c2:
00411001 INT 3
00411002 INT 3
00411003 INT 3
00411004 INT 3
00411005 JMP _ setdefaprecision precision (411ab0h)
00411014 JMP
1.8086 Transfer Instruction Classification:
Unconditional Jump instruction: JMP
Conditional Transfer directives:
Loop command: Loop
Procedure (function equivalent to C)
Interrupt ()
The operator offset is a compiler-processed symbol in assembly language, and his function is to get the offset address of the label
Start:mov ax,offset start; equivalent to mov ax,0
JMP unconditionally jumps, can only modify
the shell reaches the OEP.Here, the key to our application isPush EBPMOV Ebp, Esp ---- the key is this sentence Let me explain that when the program reaches OEP, the Push EBP statement is a ESP-4 for the ESP value, and then the ESP-4 is assigned to EBP, the value of the EBP register used to save the ESP value in this "Top program" will never change. Although it may change temporarily after entering the sub-call (used for the stack balance of the sub-call), after exiting, the original ebp value
Comments: In fact, the shell itself does not matter. The problem is that there is a verification in the vm. Sm students show their mercy. I barely got a job running normally and didn't have the energy to restore the vm. On the retn of virutalfree, f4 is returned until [esp] is the address f7 In the exe image: 0040FA91 B8 BE180000 mov eax, 18BE0040FA96 BA 00004000 mov actually the shell itself does not matter, the problem is that there is a verification in the vm. Sm students show their mercy. I
The annual "big project" for reinstallation of the system has been under construction.
Sort out the tools and materials of last year. Today, we start to give our customers a bit of gameplay assistance. (The customer will not mind if it has been more than a year)
Today is the first article.
Analysis notes of long Xiang mi Chuan
Blame
Breakthrough:
Ce searches for the change value and does not stop selecting the blame. Locate the following:Code:
00413b5e-89 be B0 00 00-mov [ESI +
also has good effects on thread security.
This article uses the loadlibrarya function as an example. Let's first look at the disassembly of loadlibrarya:
7602285fNOP76022860NOP76022861NOP76022862NOP76022863NOP76022864MoV EDI, EDI 76022866 push EBP76022867 mov EBP, ESP76022869 cmp dword ptr [EBP + 8], 07602286d push EBX7602286e push ESI7602286f push EDI76022870 je 7602288a76022872 push 760228a0h76022877 push dword ptr [EBP + 8]7602287a call dword ptr ds: [75fd12e4h]76022880 pop ECx76022881 pop
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.