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 code, for the registration code explicit existence of the program, generally will enter the registra
; End Aplib, data is solved in memory of 404120 applications004041c7 B9 FC070000 MOV ECX,7FC004041CC 8b1c08 MOV ebx,dword PTR DS:[EAX+ECX]004041CF 8999 00104000 MOV DWORD PTR ds:[ecx+401000],ebx004041d5 ^ E2 F5 loopd Short ahpack.004041cc; 404120 of the requested memory contains the extracted data, copy it to the Oep place004041d7-NOP; The following start to repair the IAT, hehe, 9090 will not be deliberately to a split it004041d8-NOP004041d9 BA 00004000 MOV
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
example, whether to place the variables in registers or in memory, the following table lists frequently used qualified letters.
"B" puts the input variable into EBX"C" puts input variables into ECx"D" puts the input variable in edX"S" puts the input variable into ESI"D" puts the input variable into EDI"Q" puts the input variables into one of eax, EBX, ECx, and EDX."R" puts the input variables into a genera
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 registration code explicitly exists, generally, the entered registration code and the correct registration c
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 retmain endpend main
[] Is generally used for Arrays:
; Test14_3.asm.386.model flat, std
[] = "aaaaaaaaaaaaa ";Char * S2 = "bbbbbbbbbbbbbbbbb ";Aaaaaaaaaaa is assigned a value at the runtime;Bbbbbbbbbbbbb is determined during compilation;However, in future access, the array on the stack is faster than the string pointed to by the pointer (such as the heap.For example:# Include Void main (){Char A = 1;Char C [] = "1234567890 ";Char * P = "1234567890 ";A = C [1];A = P [1];Return;}Corresponding assembly code10: A = C [1];00401067 8A 4D F1 mov Cl, byte PTR [ebp-0Fh]0040106a 88 4D FC mo
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, and then the verification subroutine is called to judge and return the result. The application det
, with XP, plus its local PDB path)
Bugcheck 7E, {c0000005, f889b0d3, f8935b88, f8935884}: The same effect as above, indicating the blue screen type and four sub-parameters
0xc0000005:status_access_violation Indicates a memory access violation OCCURRED:MSDN indicates that this is an error
Probably caused By:BSODCheck.sys (bsodcheck! ISEXITPROCESS+A3): Indicates the drive FAULTING_IP caused by the blue screen
:
bsodcheck! ISEXITPROCESS+A3 [e:\bsodcheck\bsodcheck.c @ +]
f889b0d3 8b08 mov ecx,dword
replicates the system process information (Task[n]) and sets the necessary registers. * It also replicates data segments entirely. *///the replication process. Where the parameter nr is called Find_empty_process () assigns the task array item number. None is the return address that is pressed into the stack when called//sys_call_table in SYSTEM_CALL.S. intcopy_process (int nr, long ebp, long edi, long esi, long GS, long none, long ebx, long ecx, long edx
methods, here for the moment, the following is mainly to see how to locate these vtable.
.text:10002A52 mov edx, [ecx+4] .text:10002A55 mov eax, [ebp+ICorJitInfo] .text:10002A58 mov ecx, [eax+4] .text:10002A5B mov eax, [ecx+4] .text:10002A5E mov ecx, [ebp+ICorJitInfo] .text:10002A61 lea eax, [ecx+eax+4] .text:10002A65 mov ecx, [ebp+ICorJitInfo] .text:10002A68 mov edx, [ecx+
Image_import_descriptor structureIf there is a MessageBoxA function, the EAX contains the cell address (which holds the function entry); otherwise eax=0checkfunction procAssume Esi:ptr Image_import_descriptorMOV Edx,[esi]. Firstthunk to () the address of a cell (that holds a function entry)MOV Ebx,[esi]. OriginalfirstthunkAdd ebx,ecx ebx point to Image_thunk_data structure in memory blockCheck1:MOV EAX,[EBX]or Eax,eaxJZ Check3Add eax,ecx; eax point t
CPU provides a lot of registers, but in the process and function of Delphi, only EAX ECX EDX three registers are free to use;
If you change the other registers, restore them before the procedure and function are finished.
Remember the previous learning Delphi process and function The default calling convention is register, the first three parameters are passed through registers, and other parameters are stored and stack.
The three registers it refe
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.