key ReadFile is found, after reading the HID device data, what should I do? According to common sense, it is time to analyze and verify it. Indeed, my analysis is correct. Here is the key assembly code obtained at that time, because this article was written in a few months later, therefore, some content can only be recalled.
After reading the code, you can fully understand the protocol.
004417B2. 8B0D D8CD9500 mov ecx, dword ptr ds: [95CDD8] // retrieves the high byte of the CH1-CH4004417B8. A3
Network security experts use practice to tell you How situation awareness should be implemented and how network security situation should be handled.
In a large-scale network environment, cybersecurity Situation Awareness obtains, understands, displays, and predicts the future development trend of all security elements that can cause changes in the network situation, does not stick to a single security element. The situation awareness system consists
virtual function, the main function reserves 8byte of space on the stack for object x to hold the vptr pointer and member variable i.
The following is an assembly code for the constructor of x:
?? 0x@ @QAE @h@z PROC ; X::x, comdat
_this$ = ecx
; 5 : X (int ii) {
push ebp
mov EBP, esp
push ECX The purpose of the pressure stack ecx is to reserve 4byte of space mov DWORD PTR _THIS$[EBP] for this pointer (the first address of X object) , ecx; Store the this pointer
the software is the subscription related CD of the Computer newspaper in 2001. The protection at the time of 7.0 is very good. The latest version should be much better now...Okay, let's get started. The first step is to install it (attracting the nheader of the Wolf), and then enter a string for registration. An error dialog box is displayed, the error message "the registration code is incorrect and cannot be registered" is displayed ". Then let's use Fi to see what shell it uses. ASPack 2.001,
ptr [ebx] movl (% ebx), % eaxIn the ATT assembly instruction, the operand extension instruction has two suffixes: One specifying the length of the source operand and the other specifying the length of the target operand. ATT's symbolic extension command is "movs", and the zero extension command is "movz""(Intel commands are" movsx "and" movzx "). Therefore, "movsbl % al, % edx" indicates the register alThe byte data is extended from byte to long, and
compiler will automatically expand a simple function like STD: reverse () in inline mode, the generated Optimization assembly code is as fast as version 1.
// Version 3: Use STD: reverse to reverse a range, with high-quality code
Void reverse_by_std (char * STR, int N)
{
STD: reverse (STR, STR + n );
}
======== What code will the compiler generate?
Note: Viewing the compiled code generated by the compiler is certainly an important means of understanding program behavior, but never think tha
Virus program source code instance analysis-example code of CIH virus [2] can be referred to push eax; block table size
Push edx; edx is the offset of the virus code block table
Push esi; buffer address
The total size of the merged virus code block and virus code block tables must be smaller than or equal to the unused space size.
Inc ecx
Push ecx; Save NumberOfSections + 1
Shl ecx, 03 h; multiply by
push EAX; block table size
push edx; edx is the offset of the Virus code block table
push esi; buffer address
Combined virus code block and Virus code block table must be less than or equal to the amount of space not used
Inc ECX
push ecx; Save numberofsections+1
SHL ecx, 03h; multiply 8
push ecx; reserved virus block table space
Add ecx, eax
add ecx, edx
address for all 6F statements ). This CALL is called not only when the money and wood population changes, but even when the Organization is created or destroyed. All we need here is to HOOK the call to the change of money and wood. After all, other abnormal functions have already been written by our predecessors and there is no need to repeat the wheel. (If you are interested, you can analyze it yourself)
You only need to determine the value of edx
the contents of RAM inside pull. You can go to "see the snow" to learn a simple assembler command.
004f3b9c/$ PUSH EBX
004f3b9d |. 83C4 F8 ADD esp,-8
004f3ba0 |. 8BDA MOV Ebx,edx; Data Destination address after decryption
004f3ba2 |. 8bd4 MOV Edx,esp; Data Delivery Destination Address
004f3ba4 |. B9 04000000 MOV ecx,4; The number of passes is 4
004f3ba9 |. E8 12eef8ff call client.004829c0; Pass the 4 valu
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 +
follows:Figure 1 shell check for pandatvIt can be seen that this program is not shelled, so it does not involve shelling, and it is written by Borland Delphi 6.0-7.0. The Code Compiled by Delphi is different from the code written by VC ++. The two most obvious differences are as follows:1. When a function is called, parameters are not transferred completely using stacks, but mainly using registers. That is, the Delphi compiler transfers function parameters using register by default. This is tot
, the MOV instruction has a data format and two operands, so the general form is [Movx s D]. where x is the data format, S is the source operand and D is the purpose operand.Here's a simple example, such as we have an instruction for MOVL%edx%eax. The execution process is as shown.As you can see, the contents of the%edx register are copied to the%EAX register after the instruction is executed. It is necessa
that some characters have been entered in the "Serial Number" column. Leave it empty, enter 123456789 in the "Registration Code" column, and then press the "register" button.ProgramInterrupt at 0x004f0b60, trace and find that the input length is required, re-enter 1234567890 abcdef in the "Registration Code" column, and then press the "register" button. After the interruption, the following code will be tracked:
Code: 004f0bbb mov eax, [EBP + var_10]; [eax] = "1234567890 abcdef"Code: 004f0bbe
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.