0 or 1
Time Limit: 4000/2000 MS (Java/others) memory limit: 32768/32768 K (Java/Others)Total submission (s): 692 accepted submission (s): 185 Problem descriptiongiven a n * n matrix CIJ (1
Besides, Xij meets the following conditions:
1. X12 + x13 +... x1n = 12. x1n + x2n +... Xn-1n = 13. For each I (1
For example, if n = 4, we can get the following running ity:
X12 + x13 + x14 = 1X14 + x24 + x34
0 or 1Time limit:4000/2000 MS (java/others) Memory limit:32768/32768 K (java/others)Total submission (s): 1421 Accepted Submission (s): 388Problem Descriptiongiven a n*n matrix Cij (1Besides,xij meets the following conditions:1.x12+x13+ ... X1n=12.x1n+x2n+ ... Xn-1n=13.for each I (1For example, if N=4,we can get the following equality:X12+x13+x14=1X14+x24+x34=1x12+x22+x32+x42=x21+x22+x23+x24X13+x23+x33+x43=x31+x32+x33+x34Now, we want to know the minim
first to adjust to 512 (of course, can be higher)Most laptops don't have this option, so they don't have to be adjusted.Start the adjustment, first open the terminal (do not know where the terminal, please search by yourself)Enter the following line, to the FB drive insidecd/s*/l*/ext*/appleintelsnbgraphicsfb.kext/c*/m*Back up the drive.sudo cp APPLEINTELSNBGRAPHICSFB Appleintelsnbgraphicsfb.backupThis driver has the machine code that determines the memory, but the difference between 32-bit and
asCall before eip=0x00401363 (next eip=0x00401368)After call EIP=0X0040100A,ESP=0X0012FEF4Then the call ends, and the last RET instruction of the __CDECL convention function pops the top of the stack to the EIP pointereip=0x00401368 Esp=0x0012fef8Then add esp,0xc, here 0xc=12 that is 3 DWORD is the number of front push (pop to pop to a register, add directly modify the top position of the stack, reduce the stack size)To this, the stack and EIP revert to the state before the call.Then we go insi
:
8063A8B2 7573 jne nt! Dbgkpsetprocessdebugobject+0xd1 (8063a927)
The first function: Dbgkpsetprocessdebugobject (note that EDI+0BCH is the location of the debugport, which says the position is 0XBC), and is set when the debugger attaches the process DebugPort[CPP]View Plaincopy
Kd> # BCH Nt! Dbgkpsetprocessdebugobject
Nt! DBGKPSETPROCESSDEBUGOBJECT+0X56:
8063A8AC 399fbc000000 cmp DWORD ptr [
! "
|
: 004065DC 6820174400 push 00441720
: 004065E1 EB07 jmp 004065EA
This code is used to display "invalid serial number. Please enter your user name and serial number correctly. Find the place to call it
As follows:
: 004064F1 8BCB mov ecx, ebx
: 004064F3 8BF8 mov edi, eax
: 004064F5 E8EC200200 call 004285E6
: 004064FA 8BD8 mov ebx, eax
: 004064FC 53 push ebx
: 004064FD 57 push edi
: 00406
! ");
}
}
To enable unmanaged code debugging, You Need To Set Visual Studio. Open the properties of the project and enter the debug tab. Select the "enable unmanaged code debugging" check box on this page.
(Note: This option is only valid for the current configuration, so we should set this option for all the configurations we use.) insert a breakpoint at the beginning of the loop and runProgram, You will hit a breakpoint as usual. At this time, your screen should look 2 (TRANSLATOR:
, EDX, 0, 0Invoke closehandle, eax. EndifInvoke sleep, 1000JMP @ BRETShelld endp
Start:
; Read the base address and size of your memory imageInvoke getmodulehandle, 0MoV hmodule, eax; Save the base address hereMoV EDI, eaxAssume EDI: PTR image_dos_headerAdd EDI, [EDI]. e_lfanewAdd
-4]
00401273 call @ ILT + 0 (Manager ::~ Manager) (00401005)
00401278 pop EDI
00401279 pop ESI
004020.a pop EBX
004010000b add ESP, 44 h
0040da-e cmp ebp, ESP
00401280 call _ chkesp (00408760)
00401285 mov ESP, EBP
00401287 pop EBP
We found that the manager structure and analysis structure are also simple. A constructor is constructed when a variable appears. When will the structure be analyzed? The function is analyzed at
.
In this example, replace _ cdecl with _ stdcall:
Int _ stdcall add (int A, int B)
{
Return (A + B );
}
Disassembly code of function call:
; Add (1, 2 );
Push 2; the parameter is pushed from right to left to 2 first
Push 1; press 1
Call @ ILT + 10 (ADD) (0040100f); call function implementation
Disassembly code for function implementation:
; Int _ stdcall add (int A, int B)
Push EBP
MoV EBP, ESP
Sub ESP, 40 h
Push EBX
Push ESI
Push
Reading Tips:
《Delphi Image ProcessingThe series focuses on efficiency. The general code is Pascal, and the core code is BaSm.
The C ++ image processing series focuses on code clarity and readability, all using C ++ code.
Make sure that the two items are consistent and can be compared with each other.
The code in this article must include the imagedata. Pas unit in "Delphi Image Processing-data type and public process.
Set the Key Color of the image to make the color of an image or within a ce
Label: Ar SP Div BS as Har relation ca nbspThree registers are involved: ECx, Al, EDI, and ZF bit and DF bit of the Mark register.Repne first checks whether ECx is 0, and if it is not 0, the loop is performed.Scasb is equivalent to SCAs byte ptr ds: [EDI] That is, sub Al, byte ptr ds: [EDI]. in addition, if the flag register df = 0, after scasb is executed,
I hope you can come up with some ideas ~
Check whether there is any shell... Microsoft Visual C ++ 6.0, indicating no shell ~
Let's enter an account and password for trial run ~ The error message "incorrect registration name or registration code!" is displayed !"
Okay. Let's load it with OD ~~ Search for asii, find the error message, and double-click it to go to the code ~
00401d00/0f85 df1_00 jnz ultradic.00401de500401d06. | 68 01100000 push 100100401d0b. | 68 f4704300 push ultradic.004370f4; A
, because the parameter needs to be seen before createfont is called, to determine which call corresponds to the song name, use "BC" to clear the breakpoint and set the breakpoint in the last return statement of the kernel, then press "F5" until Winamp starts running and closes it."Load" again, press "F5", this time it stops on the Return Statement in the kernel, and then press "F10" to return to the code area where Winamp is located, and look up, you can see the following code:
"Copyright Notice: respect for the original, reproduced please retain the source: blog.csdn.net/shallnet, the article only for learning Exchange, do not use for commercial purposes"the CMPS directive is used to compare string values, and the CMPS directive has three formats: CMPSB, CMPSW, CMPSL. The implied source operand and target operand locations are stored in the ESI and EDI registers, and each time the cmps instruction is executed, the ESI and
).
So the different compilers of different platforms have to be treated differently. The above is the last insufficient supplement.
Here's a look at the array:
test.c Example:
Copy Code code as follows:
void Hello1 ()
{
int a[3]={1,2,3};
int b=a[1];
}
void Hello2 ()
{
int a[3]={1,2,3};
int b=* (a+1);
}
void Hello3 ()
{
int a[3]={1,2,3};
int B=1[a]; Is that right?
}
If you look carefully, the difference between the three functions is that of the
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.