Lucifer.; #########################################################################. 386. Model flat, stdcall; -bit memory model option Casemap:none; Case sensitive include \masm32\include\kernel32.inc; ------------------------------------ ; Please read the final usage of the text; ------------------------------------ARGCL PROTO:D Word,:D Word. Code; ######################################################################## #ArgCl proc Argnum:dword, ItemBuffer:D Word local cmdline:D word local c
"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"in high-level languages, we often manipulate strings, such as string copies, comparisons, lookups, and so on. There are also commands for implementing these operations in assembly language. This section describes the string transfer related Operations command in assembly language. The Movs instruction can transfer a s
This article describes the C language embedded API memory search engine method, shared for everyone to reference. The implementation methods are as follows:
Copy Code code as follows:
ApisearchEngine.cpp:Defines the entry point for the console application.
//
#include "stdafx.h"
#include
DWORD __stdcall Getstrlengtha (char* szName)
{
_asm
{
Push EDI
Push EBX
mov eax, szName
mov edi
accounted for 10 bytes, to 4-byte alignment, so you need to complement two bytes, so two 0xcc, resulting in a 10 byte between the BF and array. The one next to the above array should be two 0xcc to complement the alignment. It was deliberately marked to the back. The purpose of this identification here is to illustrate the principle of checkstackvars this inspection.
OK, clear the memory distribution, then checkstackvars at what time to perform the check, in C + + code can not be displayed to
· The frontend bus frequency supported by 845, 845d, and 845gl is 400 MHz. The frontend bus frequency supported by 845e, 845g, 845ge, 845pe, 845gv, and 865p is 533 MHz, the frontend bus frequency supported by 865pe, 865 GB, and 865gv is 800 MHz.· 865 and 845 are all 478 plug-ins (478 is the CPU plug-in, that is, the number of plug-in pins); 915, 945, 965, and 975 are all 775 plug-ins; there are also 865 plu
createfilemapping or eax, eax je error_filemap mov hmap, eax push 0 push 0 push 0 push 6 push eax call mapviewoffile; file ing to memory or eax, eax je Error_map mov pfile, eax mov EDI, eax mov ESI, offset gdtflag mov ECx, dwfilesize:; search for the descriptor Inc EDI push ESI push EDI push ECx mov ECx in ntldr, 10 h repz cmpsb pop ECx pop
locations are typically on the stack, but may also be in registers; this is specified by calling conventions.
Program Execution jumps to the address of the called function.
Inside the function, registers ESI, EDI, EBX, and EBP are saved on the stack. The part of code that performs these operations is calledFunction PROLOGAnd usually is generated by the compiler.
The function-specific code is executed, and the return value is placed into the eax re
or server of the recipient, and stores it in the corresponding mailbox; the recipient can open his or her own mailbox through the network workstation at any time, Review the messages that you receive.
Advanced e-mail systems can provide "text box", "voice mail," Graphic image box "and other types of electronic postage functions, supporting data, text, voice, graphics, images and other multimedia messages, and can be a variety of programs, data files as attachments to e-mail messages sent. Ther
A repeated instruction is a set of instructions for operating the data buffer. The data buffer is usually a byte array, which can be a single word or double word. (Intel 'calls these commands string commands) The most common data buffer operation commands are movsx, CMPs, stosx, and scasx. X can be B or W, and D represents byte, word, and dual-word, respectively. These commands are valid for any form of data. In these operations, the ESI and EDI reg
Since the initial value of the dynamic array in Delphi is not always 0, setlength is used before each use of a one-dimensional array, and then fillchar is generally used for clearing, however, if the array is more than dozens of MB, the efficiency of fillchar is very low. For this reason, I specifically wrote some optimization code for clearing the array or memory.
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1. Use the MMX command to optimiz
Cracking Device Monitor
Author: rockhwndTime: 2004.8.10Web: http://blog.csdn.net/rockhwnd
When device Monitor starts, it reads a file named license. DM in its directory and determines whether the file has been registered based on the content. The code for reading the file and analyzing the file content isC:/program files/common files/HHD software/device Monitor/silk. dll fileSo the createfile breakpoint
: 67f917af ff15d041f967 call dword ptr [67f941d0] // createfile open the file: 67f917b5 8bf8
are eax,ebx,ecx,edx,edi,esi. These registers can be used arbitrarily in most directives. However, some instructions restrict the use of some of these registers for some purpose, such as the Division directive IDIVL the dividend in the EAX register, the edx register must be 0, and the divisor can be any register. The quotient of the calculated result is stored in the EAX register (covering the divisor), and the remainder is stored in the edx register.
First hang up the code,The original function author for the unknown Foreigner, the source for the MASM32 development package, here to express thanks. Chinese comments Modified added by Lao Liu: 486 model flat, stdcall option Casemap:none. codeopt ION prologue:none OPTION epilogue:none align 4StrLen proc item:dword mov eax, [esp+4]; Gets the parameter item, which is the string pointer Lea edx, [eax+3]; edx= pointer +3 push EBP; back up EBP EDI push
to load the program. There will be many loops in the shell program. When dealing with loops, you can only let the program run forward, basically not let it jump back, you need to think out of the loop. Do not use Peid to query entries. You can track entries in one step to improve the capability of manual entry searching.Load the program with OD.Confirm an entry warning, and the Od prompts the program to shell. If you choose not to continue the analysis.Stop here0040D001 60 pushad first remember
ancestor classes do not have a processing method that corresponds to this message number, call DefaultHandlerend;procedureGetdynamethod;{function Getdynamethod (vmt:tclass; selector:smallint): Pointer; }Asm{-EAX VMT of Class}{SI dynamic Method index}{{ZF = 0 if found}{trashes:eax, ECX}PUSH EDIXCHG Eax,esi//Exchange eax and ESI values, after which the VMT entry address in ESI, EAX is the message number, i.e. the code of the corresponding dynamic methodJMP @ @haveVMT@ @outerLoop:MOV Esi,[esi]@ @h
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.