", and the above is just the key value of the registry, the bottom line "you can still use this program % d ". In fact, this is the number of times you can use it. There should be a calculator here, but you don't have to worry about it. first go to the code and find a suitable place for breakpoint.004017DA 68 00014300 multi-open push program. 00430100; SOFTWAREAutoSoftMultRun2004017DF 68 02000080 push 80000002004017E4 FF15 0C604200 call dword ptr ds: [......004017FE FF15 08604200 call dword ptr
Stdcall: If you see EBP + a few, you have to ret 4 * n unless the proc uses parameter defined by the pseudo command, the parameter
C add ESP, 8 after caller call addtewo
1. Why sometimes an error occurs when RET is returned: stdcall Convention subprogram addtwo needs to clear parameters
Description of RET 8 (mov ESP, add ESP after EBP ret, 8 clear parameters)
) object User-Defined Function 2 → │ ┃ 24 (?) ...... The object variable of the │ interface was too large and too small to exceed the upper limit.] ━━ ━┓ │ ① 0 (4) the pointer of the interface was → ② 0 (4) * pvtable was → ③? (?) ...... │ ┗ ━ ┛ ┃ ┗ ━━ [[[[[│ ┣ ━━ ━ [Interface 2] ━━ ━ ┫ ┏ [[ [interface 2] ━━ ┓ │ ┃ ...... Too many? (?) ...... ┃ ╰ ── ╯ ① = Varptr (object variable) Address ② = objptr (object variable) '// This pointer address ③: it can only be obtained indirectly through copymemory:
of the function in the function, pointing to the stack bottom (frame bottom) of a function ).
% ESP --- is the stack register, which is equivalent to the base register of the entire program, always pointing to the top of the stack.
Push --- import stack operation.
MoV --- move
Sub --- Subtraction
In the first sentence, push % EBP means % EBP is put into the stack. At this time, % EBP stores the starting address of the frame of the previous function,
is not currently in the running state.;
Sub ESP, 4*4MoV [esp + 12], EBX; save registersMoV [esp + 8], ESI;MoV [esp + 4], EDI;MoV [esp + 0], EBP;MoV EBX, PCR [pcselfpcr]; Set address of PCRMoV EDI, ECx; set old thread addressMoV ESI, EDX; set next thread addressMovzx ECx, by
Np.random.choice (len (utterances), 10, Replace=false)
# Evaluate Random Predictor
y_random = [Predict_random (TEST_DF. CONTEXT[X], test_df.iloc[x,1:].values) for x in range (len (TEST_DF))] for
n in [1, 2, 5,]:
print ("Recall @ ({}, : {: G} ". Format (n, Evaluate_recall (Y_random, Y_test, N))
Recall @ (1): 0.0937632
Recall @ (2): 0.194503
Recall @ (5): 0.49297 Recall
@ (10, 10): 1
Very good. The result is the same as we expected. Of course, we are not satisfied with a stochastic pre
Reverse basic OS-specpacific (1)
Chapter 64 methods for passing Parameters
64.1 cdcel
This method of passing parameters is popular in C/C ++.
As shown in the following code snippet, the caller places parameters in the stack in reverse order: the last parameter, the second to the last parameter, and the first parameter. The caller must also restore the stack pointer (ESP) to the initial state after the function returns.
Listing64.1: cdecl
push arg3pus
course, the disadvantage of simple instruction is inefficiency.The virtual machine protection technique we're talking about here is to change the register-based CPU code to the pseudo-code of the stack-based CPU. The pseudo-code is then interpreted by the stack-based virtual machine (CPU).Instruction SystemThe key is to design a virtual stack-based virtual machine (CPU) instruction system. The more concise the command system, the better the reusability.Or take the add command as an example. The
First of all, the children who have assembled the computer should know that the computer is composed of CPU, memory, hard disk, motherboard, power supply, of course, playing games of children's shoes will also be obsessed with video cards (such as GTX980 Tactical nuclear graphics)As long as these things are available, the computer can run.But how do these things work together and let the program run?First, we need to know something called the operating system, essentially, it is also a program,
Debug versionESP stack top pointerEBP holds stack pointer Empty program: Int main () { 00411360 push ebp, press into EBP 00411361 mov ebp,esp; EBP = ESP, keep esp, wait for function call to resume, ESP is definitely used in a function call. 00411363 Sub esp,0c0h;
Reference :http://blog.csdn.net/hudashi/article/details/7820338http://shitou7630.blog.163.com/blog/static/32699536201342110155436/Http://www.cnblogs.com/52yixin/archive/2011/06/29/2093634.htmlhttp://blog.csdn.net/mniwc/article/details/7993361Http://www.cnblogs.com/coderzh/archive/2008/12/01/1345053.htmlHttp://blog.sina.com.cn/s/blog_6f6769b50100uhzz.htmlHttps://msdn.microsoft.com/zh-cn/library/ms235286.aspx(Owed by: Spring Night rain Http://blog.csdn.net/chunyexiyu reprint please indicate the so
vtbldiamond ();
If (pvtblreal1! = NULL)
{
Pvtblreal1-> F1 ();
Vtblrealb * ptempvtbb = dynamic_cast
Ptempvtbb-> F1 ();
Delete pvtblreal1;
}
Vtblrealb * pvtbrealb = new vtbldiamond ();
If (pvtbrealb! = NULL)
{
Ivtbl * pvtbl = dynamic_cast
Pvtbl-> F1 ();
Delete pvtbrealb;
}
Return 0;
}
The execution result is as follows:
Let's perform disassembly and debugging to see how the compiler helps us implement it?
Let's look at the initialization of an
---restore content starts---Content one: Experimental report related instructions.Real name Chering HelpOriginal works reproduced please indicate the sourceLessons learned: Linux kernel Analysis MOOC courseLinks:http://mooc.study.163.com/course/USTC-1000029000Virtual Lab ExperimentContent two: Analysis of stack changes during the working process of assembler codeThe analysis is divided into two parts: (The label of the stack address is not aligned, please understand)The first part is the stack t
Explains stack changes for MAIN.C assembler codeThe experiment looks like this:The following analysis begins with the main function (three variable values from top to bottom are 4,7,4):Suppose you start with an empty stack, the initial position is 0,EBP=ESP, and the following is marked with a line number18:esp point to position (1), the value of position (1) is the address of the ESP19: Make EBP point to th
Transfer from http://blog.csdn.net/dongtingzhizi/article/details/6680050In-depth analysis of C + + function call processBrotherWeibo:-bing son of the dongting0. Introduction The process of a function call is actually a process of interruption, so how does a function call be implemented in C + +? How to implement parameters in the stack, function jump, protection site, reply to the scene? In this paper, the procedure of function call is analyzed and explained in detail, and it is demonstrated in
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 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.