and follow up with F7 in one step. The program goes to the upper-layer function:
When the execution reaches 00401051, observe the function stack as follows:
We can see that the return address will be overwritten at the 13 offset of the TXT text.
Step 3:
(1) Compile the program code for the general pop-up calculator and extract the shellcode
# Include "stdio. h "int main () {unsigned int KerdllAddress; // defines the address unsigned int GetProcessAddr of kernel32; // defines the function a
by 0x80. The following is an explanation.
First, run the command "gdb-q/usr/src/kernels/2.6.19/vmlinux" to decompile the kernel, run the "disass system_call" and "disass syscall_call" gdb commands to view the assembly code of the kernel. The result is as follows:
(Gdb) disass system_call
Dump of worker er code for function system_call:
0xc0103e04
: Push % eax
0xc0103e05
: Cld
0xc0103e06
: Push % es
0xc0103e07
: Push % ds
0x
[Article Title]: cracking of a CrackMe that requires a run trace[Author]: bxm[Author mailbox]: bxm78@163.com[Protection method]: name, serial[Language]: Borland C ++[Tools]: peid, od[Operating platform]: winxp[Author's statement]: I am only interested and have no other purpose. For errors, please enlighten us!--------------------------------------------------------------------------------[Detailed process]Use peid for Shell check, no shell, run, input name and serial, No prompts, load with OD, s
(my current Internet cafe is the Pubwin charging system. This system has something that will monitor all processes, so when OD runs, there will be a pop-up prompt, if it is also PUBWIN, it does not have any impact on the debugging program) after running, we press ALT + E or the E icon on the menu bar (this is to display the current module) after opening the program, we can select the process EXE of the program. Double-click 6
After double-clicking the program, I came to the Disassembly window a
up the bomb. Initially the direct conjecture called the last callThis CALL3 a parameter, 1 registers, 2 stacks. Analysis Parameters:Move Ecx,14call 0069f7e0...mov Ebx,eax...mov eax,[ebx+98]mov ecx,008324e0push eaxpush 1FI thought that just using one of the above functions is enough, the front is initialized, and the result is--just add a nuke option, not ready, or countdown ...So the above a call 0069ccf0 is also necessary (altogether there are 4, one is the output debugging information, one is
input can be based on my hobbies, habits to be determined, do not have to rigidly adhere to a fixed pattern.8. Questions about how to track the program : Beginners often do not know how to follow the program when they start to learn how to track the code, how to find a place to compare the registry, when faced with a long heap of code when it seems overwhelmed. Usually the software inside the program using a subroutine (that is, call ********) to verify that we entered the correct registration
Software cracking-questions about how to track programs:
When beginners start to learn decryption, they often don't know how to track the program, how to find a place where the registration code is compared, and how to feel overwhelmed when facing a long pile of program code. Generally, software programs use a sub-program called CALL ********* to verify whether the entered registration code is correct or not. For programs with an explicit registration code, generally, the entered registration co
equivalent to the pseudocode below:Btsl NR and ADDR, the two operands of this instruction cannot be all memory variables. Therefore, the qualified string of NR is specified as "LR" (which will be explained below) and associated with the immediate number or register, in this way, only ADDR is the memory variable in the two operands.
Character limitThere are many types of restricted characters, some of which are related to the specific architecture. Here, only the commonly used qualified characte
determined based on my hobbies and habits, without sticking to a fixed pattern.
8. Questions about how to track programs
When beginners start to learn decryption, they often don't know how to track the program, how to find a place where the registration code is compared, and how to feel overwhelmed when facing a long pile of program code. Generally, software programs use a sub-Program (call *********) to verify whether the entered registration code is correct. For programs whose registr
now wval stores word-type data, and [EBX] uses 32-bit data by default; this can be done through the pseudo-command PTR to specify the data size; at the same time, the received data must be replaced with 16 (such as Ax), because mov requires that the sizes of the two operands must be consistent XOR eax, eax; clear eax mov ax, word PTR [EBX] printdec eax; 123; you can also directly use movzx, which can be small to large (movzx R16/R32, r/8/R16/M8/M16) movzx eax, word PTR [EBX] printdec eax; 123 r
PTR [ebp-4], Cl11: A = P [1];0040106d 8B 55 EC mov edX, dword ptr [ebp-14h]00401070 8A 42 01 mov Al, byte PTR [edX + 1]00401073 88 45 FC mov byte PTR [ebp-4], AlThe first type reads the elements in the string directly into the CL register, while the second type reads the pointer value into EDX. Reading the characters based on
track programs: beginners often do not know how to track programs when learning to decrypt, how to find a place where the registration code is compared, and are overwhelmed when faced with a long pile of program code. Generally, software programs use a sub-Program (CALL *********) to verify whether the entered registration code is correct. For programs whose registration code explicitly exists, generally, the entered registration code and the correct registration code are put into the Register,
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.