{2002.8.5 kingron}
{Source: Source string}
{Sub: Sub string}
{Return: Count}
{Ex: strsubcount ('abccdcd', 'bc') = 2}
Function strsubcount (const source, Sub: string): integer;
VaR
Buf: string;
I: integer;
Len: integer;
Begin
Result: = 0;
Buf: = source;
I: = pos (sub, Buf );
Len: = length (sub );
While I Begin
INC (result );
Delete (BUF, 1, I + len-1 );
I: = pos (sub, Buf );
End;
End; {strsubcount}
{The following function returns the position after the specified position of substr in S}{Example:
KiInterruptTemplate .. That's it... The KiInterruptTemplate code is in ntoskrnl/ke/i386/Traps. s ....
. Func KiInterruptTemplate_ KiInterruptTemplate:
/* Enter interrupt trap */INT_PROLOG kit_a, kit_t, DoPushFakeErrorCode
_ KiInterruptTemplate2ndDispatch:/* Dummy code, will be replaced by the address of the KINTERRUPT */Mov edi, 0
_ KiInterruptTemplateObject:/* The jump instruction address will be replaced with the actual address of the function to b
corresponding to the main function is as follows
123456789101112131415161718192021222324252627282930313233343536
7: int main()8: {00401020 push ebp // ebp初始为0018FF84h压栈,压栈后esp = 0018FF48h - 4 = 0018FF44h00401021 mov ebp,esp // ebp保存栈顶0,ebp=esp=0018FF44h00401023 sub esp,48h // esp -= 48h开辟了一段栈空间,留待后面保存局部变量,此时esp=0018FF44h-48h=0018FEFCh00401026 push ebx 00401027 push esi00401028 push edi // ebx、esi和
program, and no other auxiliary components. To control the register of passed parameters, you can extract the generic gadgets in the program initialization function.Enter Objdump–d./vul to observe the _libc_csu_init () function.There are two accessories available:Accessories 14005f0: 4c 89 ea mov %R13,%RDX 4005f3: 4c 89 f6 mov %R14,%RSI 4005f6: 44 89 ff mov %R15d,%EDI 4005f9: 41 ff 14 dc
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; esp-=0c0h (192); Leave temporary storage for the function ; put the values in other pointers or registers into the stack to use them in the function. 00411369 push ebx; Press into EBX 0041136A push esi, press into ESI 0041136B pu
From [wenjuliu25]: HelloWorld disassembly Analysis
Lab environment:Visual c ++ 6.0
Objective: To analyze the memory allocation of a simple c program during program execution using assembly language
/******* Mymain. cpp *********/
1: # include
2: int main ()
3 :{
4: int x = 1;
5: printf ("Hello Canney \ n ");
6: return0;
7 :}
/******* Mymain. asm *********/
1: # include
2: int main ()
3 :{
00410950 push ebp
00410951 mov ebp, esp
00410953 sub ESP, 44 h // ESP = esp-0x40, allocate stack space t
CPU switches from user mode to privileged mode, then jump to the kernel code to execute the exception handling program.In the "B INT" command, the value 0x80 is a parameter. In exception handling, the parameter determines how to handle the problem. In the Linux kernel, an int 0x80 exception is called a system call.The values of C eax and EBX registers are two parameters passed to the system call. The value of eax is the system call number, 1 indicates _ exit call, and EBX indicates the paramete
;//////////////////////////////; First get the relocation difference
Call rebaseRebase:Pop EBP;Sub EBP, offset rebase;; Get the kernel32.dll's base address; By peb direct access; Place in here not routine; Because we need it afterAssume FS: nothing;
MoV eax, FS: [30 h]; PTR _ TebMoV eax, [eax + 0ch]; PTR _ peb_ldr_dataMoV eax, [eax + 1ch]; list_entry ininitializationordermodulelist. flinkMoV eax, [eax]; flink's flinkMoV eax, [eax + 08 h]; The Kernel32's base addressMoV [EBP + dwbase], eax;MoV EC
about some personal opinions. Next, we will conduct some small tests and explain them in assembly language. You can do it together.
(1) Char name [] and char * Name
1:2: void process()3: {00401020 push ebp00401021 mov ebp,esp00401023 sub esp,4Ch00401026 push ebx00401027 push esi00401028 push edi00401029 lea edi,[ebp-4Ch]0040102C mov ecx,13h00401031 mov eax,0C
the arguments of the constructor, and is initialized with 1, which omits a step, speeds up the operation, and achieves the same effect. Note: In the above assembly, Visual Studio compiler optimizations have been turned off, indicating that this approach has been used as a general method of Visual Studio, rather than as a vs-perceived optimization tool.Initialize 3:classtest ct3 = Ct1Classtest ct3 = ct1;//Copy Initialization00b09538 Lea Eax,[ct1]00b0953e push EAX00b0953f Lea ECX,[CT3]00b09545 ca
Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->Public Static Vector3 Foo (vector3 V, Float Radius){Matrix;Matrix. createtranslation ( Ref V, Out A ); Matrix B=Matrix. createtranslation (v ); Matrix. Multiply (RefA,RefB,OutA ); Vector3 F1=B. forward; Vector3 F2;F2.x=B. m31;F2.y=B. M32;F2.z=B. M33; Vector3 F3;Vector3.add (RefF1,RefF2,OutF3 );Vector3.transform (RefF3,RefA,OutF1 );ReturnF1;} Test 2 is the focus of this Article. To facilitate the discussion, we div
";VaR objtmp = Document. getelementbyid ("TOP ");VaR bodyhtml = objtmp. innerhtml;VaR strfns = "/R/N ";
// Analyze respond text !;VaR strrestext = XMLHTTP. responsetext;For (VAR I = 0; I
Tooltip
Callwindowproc is set as a macro, divided into callwindowproca and callwindowprocw.In both functions a and W, callwindowprocaorw (...) is called. The prototype is lresult winapi callwindowprocaorw (wndproc PFN, hwnd, uint message, wparam, lparam, bool Bansi). function a sets Bansi to 1, the W function s
parameter is the pointer to the string for the BMP file to open,Where my string is at address 0x00197fe8, and staying at 0x00197fe8 each timeAt the moment which is why I cocould debug this.
Below is the disassembly with some of my own comments noting the importantParts:
_ Loadbmp @ 20:77d55e95 mov EDI, EDI77d55e97 push EBP77d55e98 mov EBP, ESP77d55e9a sub ESP, 24 h77D55E9D mov ecx, dword ptr [ebp + 0Ch]; Copies address of filenameInto ecx77D55EA0 pus
Game: tianlong BabuVersion: 0.13.0402System: Windows XPTool: ce5.2 + od1.10Objective: To search for the character base address
Step 1: search for the person Hp with Ce, get a bunch of addresses, continue searching after blood loss, get the unique address 0abdc360 (HP address)
Step 2: Switch the map and find that the value in the address is no longer HP, it is a dynamic address. Repeat the first step to search for a new HP address (the address is omitted)
Step 3: Do not switch the map at this tim
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.