machine), the symbol path is set (point to its kernel file pdb, such as the virtual machine is XP, 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 bl
return value is saved in eax, if negative is directly out of sys_fork, otherwise push a bunch of instructions, as copy_process parameters, also in FORK.C:/** OK, here is the main fork sub-program. It 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 same double word. To calculate the double word value between two fcffffff, you can first guess that the vtable contains 10 methods. However, the corresponding code in the SSCLI has one or two more 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, [
last resort. Do not close TestLoad.exe, and then try to delete TestLoad.exe and TestLoad.exe.bak, is not found a miracle? Unexpectedly put TestLoad.exe deleted, and TestLoad.exe.bak unexpectedly don't let delete, is not and I just said the words contradictions? Not too! Not too! Just to prove the words: Hackers first renamed TestLoad.exe to TestLoad.exe.bak, and then generate an infected TestLoad.exe, so that the next run TestLoad.exe is actually replaced the program, the original program is pl
]. Virtualaddress. Rdata in memory VRASub Eax,ebxAdd eax,pmapaddr; plus the starting position of the file in memoryMOV ecx,eaxAssume Edi:ptr image_nt_headersAdd Eax,[edi]. OptionalHeader.DataDirectory.VirtualAddress \+sizeof image_data_directorymov esi,eax, ESI point. rdata sectionAssume Esi:ptr Image_import_descriptorHAVE1:MOV Eax,[esi]. Name1or Eax,eaxJZ end2; end, turn!Add eax,ecx to address in file memory blockPush ECXInvoke lstrcmp,eax,addr Szdll; see if referencing USER32.dll librariesPop
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
.0047EB58: Stop at EP.0047EB58 60 pushad0047EB59 E8 4F000000 call Allok_Vi.0047EBAD0047EB5E FD std0047EB5F BE 208F9F0F mov esi, 0F9F8F200047EB64 ED in eax, dx0047EB65 ^ 7F 91 jg short Allok_Vi.0047EAF8Bytes -----------------------------------------------------------------------------------------------Let's verify my guess.BP GetFileTime. After the breakpoint is canceled, the returned value is00484C92 C745 AC 0000000> mov dword ptr ss: [ebp-54], 000484C99 EB 09 jmp short Allok_Vi.00484CA400484C9B
Get CPU brand
Recent Intel and AMD processors have an extend CPUID function call, that returns the name of the processor. In earlier cpu models you had to use the version and feature information function of CPUID to look up names in a string list of your own.
The function GetBrandString shows how to access the brand string, provided the CPUID instuction is available.
Some AMD (K5 Model 1/2/3,K6 Model 6/7, K6 -2 Model 8, K6-III Model 9, all Athlon and Duron) and Intel Pentium IV support a Process
call sub_410e22. Text: 0020.ed3 call dword ptr [eax + 14 H]Call ssnetlib to obtain information about the arrival of asynchronous socket42cf42f2: connect and receive information. Text: 0020.ed6 add ESP, 18 h
Process Data:Call at 42cf719e. The next return address should be 42cf71a3. Overflow means to overwrite this return address.Overflow occurs on strcpy at 42cf72cf.However, the problem is that the strcpy copy address is 572 bytes away from the 42cf71a3 address, and many other variables have poi
loc_434ac7
[2] process and check the time zone
. Text: 0041fbb6 loc_41fbb6:; Code xref: sub_41fae8 + 9bj. Text: 0041fbb6 push 20 h. Text: 0041fbb8 Lea edX, [EBP + var_9fc] // store all commands in the ebp-9fc. Text: 0041 fbbe push edX. Text: 0041 fbbf call sub_59beb1 // find the space in the command and locate the space.// Address in the ebp-78, that is, find the file name. Text: 0041fbc4 add ESP, 8. Text:
filehandle,
In access_mask desiredaccess,
In pobject_attributes objectattributes,
// Out pio_status_block iostatusblock,
Out pvoid iostatusblock,
In plarge_integer allocationsize optional,
In ulong fileattributes,
In ulong internal access,
In ulong createdisposition,
In ulong createoptions,
In pvoid eabuffer optional,
In ulong ealength
);
Myntcreatefile myntcreatefilefun; Step 2: Obtain the native API address in natdll
Myntcreatefilefun = (myntcreatefile) getprocaddress (getmodulehandle ("NTDLL
. But we found that the print function does not use the this pointer internally, because we did not access this-> value at all, just a return statement. This shows that the pointer as a class NULL pointer is not terrible, but it is terrible to use null to access data in the memory.
(4) int M = 1; int n = m ++ + m; what is n?
[CPP] View plaincopy
10:VoidProcess ()
11 :{
0040d4d0 push EBP
0040d4d1 mov EBP, ESP
0040d4d3 sub ESP, 48 h
0040d4d6 push EBX
0040d4d7 push ESI
004
clear the stack. Therefore, the size of the executable file generated is larger than that of the call to the _ stdcall function. The function uses the stack pressure mode from right to left. After compiling a function, VC adds an underline prefix to the function name. Is the default MFC call convention.
3. The _ fastcall call convention is "person" as its name. Its main feature is fast because it transmits parameters through registers (in fact, it uses ECx and
memory address,; the memory saved is the memory address of a; 7: int * PTR = A; leaecx, dword ptr _ A $ [EBP]; obtain the memory address of a movdword PTR _ PTR $ [EBP], ECx; [ebp-4] is the memory address of ref; Save the memory address of a; 8: printf ("% d \ n", A, ref, * PTR); movedx, dword ptr _ PTR $ [EBP] moveax, dword ptr [edX]; the pointer PTR indirectly obtains the value pusheaxmovecx, dword ptr _ ref $ [EBP] movedx, dword ptr [ECx], and re
address of a startupinfo Structure
Call DS: getstartupinfoa
Get the program startup information and save it in a startupinfo structure.
Call DS: getcommandlinea
The program command line string pointer is obtained and the result is saved to eax.
Push offset dword_4030b8
Push offset dword_4030b8
XOR edX, EDX
Push edX
Push edX
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.