Reference: http://blog.csdn.net/eagler_hzh/article/details/6550841
In fact, the function to be extracted is the void Xid _cpu_detect (void) in x264 \ common \ CPU. C. The source file
int x264_cpu_cpuid_test( void );void x264_cpu_cpuid( uint32_t op, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx );void x264_cpu_xgetbv( uint32_t op, uint32_t *eax, uint32_t *edx );uint32_t x264_cpu_detect( void ){
to calculate the squareMovss dword ptr [ECx], xmm0; the value of the first unit points to the memory space of ECx
MoV dword ptr [eax + 12], 3f800000h; // 3f800000h = 1.0f}}Else{F = (float) SQRT (x * x + y * Y + z * z );}Return F;}
// Unit vectorVoid vector: normalize (){If (g_busesse2){_ ASM{MoV eax, this;MoV dword ptr [eax + 12], 0;
Movups xmm0, [eax];Movaps xmm2, xmm0;Mulps xmm0, xmm0;Movaps xmm1, xmm0;Shufps xmm1, xmm1, 4eh;Addps xmm0, xmm1;Movaps xmm1, xmm0;Shufps xmm1, xmm1, 11 h;Addps xmm
semester accidentally hung 4 #_#), so dragged for so long. In fact, the code was written very early, is not bothered to write this document. This morning finally made up my mind to spend the morning to finish this document, it is inevitable that there are some mistakes, I hope you point out.
Shellcode is composed of kernel shellcode and user shellcode, kernel Shellcode is responsible for returning and executing user shellcode, user shellcode is ordinary function, attention must add code that w
(){}
~ Manager (){}
Void print () const {printf ("manager! \ N ");}
};
We can see that the member functions are slightly different from the previous ones. The print function appears virtual before. However, this virtual has played a huge role. It is no exaggeration to say that, without virtual functions, there is basically no design pattern, which cannot reflect the great superiority of the C ++ language in object-oriented design. Let's take a look at how this virtual works?
76: employee p;
0
calls the SSCANF function, whose parameters are high to low address to%ebp-4,%ebp-5,%ebp-12 (%ebp relative to the Phase_3 function), 0x80497de,%edx (storing strings read from input) Similar to the usage of sscanf in phase_2, this time the format is read, and the corresponding string is validated on the basis of reading numbers and characters. It is important to note that the parameters of the function are stacked from left to right, so for the inpu
)
Vinta/awesome-python GitHub
Pycrumbs/pycrumbs.md at Master Kirang89/pycrumbs GitHub
Svaksha/pythonidae GitHub
Checkcheckzz/python-github-projects GitHub
Rasbt/python_reference GitHub
Easy-python
And the list of awesome-* series
Bayandin/awesome-awesomeness GitHub
sqlmap!
goagent!
Yes, there's shadowsocks!.
Open EdX
Open EdX is committed to creating a powerful and flexible, open and large-scale o
on the string we found, then click "Follow in Disassembly Window" on the menu that came out, we came here:See, in order to see if there are other references, you can select the right-click menu to find the immediate number, will come out a dialog box:Double-click on the two addresses listed above, we will come to the corresponding location:Let's scroll up in the Disassembly window and look at:00440f2c |. 8b45 FC MOV eax,dword PTR ss:[ebp-4]00440f2f |.BA 14104400 MOV
SIZE void sortbubble (int arr[],int sizen) {int *p; p=arr-1; a[0]-1 __asm { mov esi,p; mov Ecx,sizen; _outter: mov edx,ecx;_inner: cmp edx,ecx ; remove equality jz _exchange_nomov eax,[esi+ecx*4 ]; ; In the function can not be directly through the array subscript get the passed array can only be addressed by the pointer mov ebx,[esi+edx
) stability algorithm
#define SIZE ten
void sortbubble (int arr[],int sizen)
{
int *p;
p=arr-1; a[0]-1
__asm
{
mov esi,p;
mov Ecx,sizen;
_outter:
mov edx,ecx;
_inner:
cmp edx,ecx ; remove equality
JZ _exchange_no
mov eax,[esi+ecx*4]; ; The passed array can not be obtained directly through an array subscript within the function, and can only be addre
Design:After BPE32 is called, the following three functional codes are generated in the memory:/------- + -------------------- +| Call decryptor | ---------> @ 1| + -------------------- +|| Encryptvirus body | ---------> @ 2|------> | -------------------- +|| Decryptor || ---------> @ 3+ -------------------- +@ 1 is a call constructed by computation, because the call location must be determined by @ 2.@ 2 is an encrypted virus.@ 3 is an encryptor used to decrypt @ 2, which is transformed by cod
, dword ptr [ebp-8]15 00426416 mov byte PTR [eax + 4], 216 0042641a pop EDI17 00400001b pop ESI18 0042641c pop EBX19 004da-1d mov ESP, EBP20 0020.41f pop EBP21 00426420 RETIt is worth noting that lines 14th and 15 are supported. Row 3 moves the value of this pointer to the eax register, and row 3 assigns values to the first member variable of the class, in this case, we can see that [eax + 4] is used to get the variable address, that is, the 4-byte virtual table pointer at the beginning of the o
, ECxMoV CX, Cs; we directly map to the corresponding physical addressMoV edX, ECx; therefore, the location of the second-level page table is determined by the Cs value ..SHL edX, 4; edX = the physical address of the code segment in the memory.Or edX, 163 h; set the page property to: Existing and readable/written by us
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.