Different compilers may produce different codes, resulting in different results.
The Code is as follows:
#include
Environment: win7
Compiler: GCC
IDE: vc ++ 6.0/DEV-C ++
Result: q = 22
: Q = (++ j) + (++ mov eax, dword ptr [ebp-] Move J = add eax, add 1 to the Register eax value, eax = 0040103C mov dword ptr [ebp-], eax moves the register value to the variable j, j = 0040103F mov ecx, dword ptr [ebp-] Move J = add ecx, in the register, ecx +, j = mov dword ptr [ebp-], ecx moves the value on
the stack:
0012DC8C 0181C386/CALL to WaitForDebugEvent from cam213181c3800012DC90 0012ED7C | pDebugEvent = 0012ED7C0012DC94 000003E8 Timeout = 1000. MS0012DC98 7C930738 ntdll.7C930738
Locate CD90 in the data window and check the OEP value.
Now go to the code window Ctrl + G: 0181c386Ctrl + f search command at the current location: or eax, 0FFFFFFF8Locate the first place in 0181c956, on which cmp dword ptr ss: [ebp-A34], where 0 sets the breakpoint.
0181C90A> 83BD CCF5FFFF> cmp dword ptr ss: [EB
After the system patch is completed, the online blind irrigation is still connected to www.net.cn. now .... put down his network horse, 8 error, really good. kill 98. nt.2000.xp. xpsp2.2003. I kept it myself and analyzed his Trojan. A traffic Trojan. Server. Now all the ponies are here.Slightly shelled, written in VB.00403DAD. FF15 54104000 call dword ptr ds: [00403DB3. 8985 E0FCFFFF mov dword ptr ss: [EBP-320], EAX00403DB9. EB 0A jmp short Rundll32.00403DC500403DBB> C785 E0FCFFFF> mov dword ptr
+ 0xc];
// We now have the module_item for NTDLL. dllMoV eax, [eax + 0x1c]
// We now have the module_item for kernel32.dllMoV eax, [eax]
// Image base of kernel32.dllMoV eax, [eax + 0x8]
Movzx EBX, word PTR [eax + 3ch]
// PE. oheader. directorydata [Export = 0]MoV ESI, [eax + EBX + 78 H]Lea ESI, [eax + ESI + 18 h]
// EBX now has the base module addressMoV EBX, eaxLodsd
// ECx now has the number of function namesMoV ECx, eaxLodsdAdd eax, EBX
//
Mul: Unsigned Multiplication
; Influence of, CF flag bit; Command Format:; Mul R/m; parameter is the multiplier; if the parameter is R8/M8, the Al will be used as the multiplier and the result will be placed in ax; if the parameter is R16/M16, ax will be used as the multiplier and the result will be placed in eax; if the parameter is R32/M32, eax will be used as the multiplier and the result will be placed in edX: eax
; Test27_1.asm.38
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;0040128D lea ecx,[ebp-10h]00401290 call @ILT+45(employee::employee) (00401032)00401295 mov dword ptr [ebp-4],077: manager m;0040129C lea ecx,[ebp-14h]0040129F call @ILT+65(manager::manager) (00401046)004012A4 m
only by modifying the shell header.
I randomly set up a foreign downloader deception4.0 (DT) on the Internet ). Kabbah will kill it, otherwise the test will fail. Although only the 9 value added to DT is modified, Kabbah does not report any virus when it is added to other executable files in this way. The modified program ensures the re-running of the program, otherwise, this modification is meaningless. Start the operation. The following eight most common shells are prepared.
I. First test nsp
{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:
that the size of the TVARREC is 8 Bytes (before the study found the first 4 Bytes storedData, 5th Byte is the type).2. General case of parameter passing when calling function (without using stdcall). For a general functionor process, the first three parameters are placed in EAX, EDX, ECX, and later if there are more parameters, on the stackFor the class method, the EAX is fixed for the address of the class instance, and
pointed to by faulty_instruction_address. It usually returns an error code to the user program.
For example, in the kernel code that accesses the process address space:
__get_user_1: GET_THREAD_INFO(%edx) cmpl TI_addr_limit(%edx),%eax jae bad_get_user1: movzbl (%eax),%edx xorl %eax,%eax ret__get_user_2: addl $1,%eax jc bad_get_user GET
associated, here first regardless of System_call, first look at Set_system_gate, in system.h:////set the system call gate function. Parameter: N-interrupt number; addr-Interrupt program offset address. idt[n] corresponds to the offset of the interrupt number in the Interrupt Descriptor table, the type of the interrupt descriptor is 15, and the privilege level is 3. #define SET_SYSTEM_GATE (N,ADDR) _set_gate (IDT[N],15,3,ADDR)////set the gate description macros function. Parameters: GATE_ADDR-de
After openedx is installed, access is very slow. The reason is that fonts.googleapis.com is blocked in China. Therefore, the image is changed to a 360 image, which is expected to be used for a long time. Major changes: 1.cd/edx/app/edxapp/edx-platform/lms/static/sass/basesudo vi _ font_face.scss 2.cd/edx/app/edxapp/edx
:-------------------------------------------------------------------------------* Reference to control Trrr. username: TFlatEdit|00488F47 8B80E0020000 mov eax, [eax + $02E0] // obtain the user name
|00488F4D E8DE5CFAFF call 0042EC3000488F52 8B45F0 mov eax, [ebp-$10]
|00488F55 E836ADF7FF call 00403C9000488F5A 83F806 cmp eax, + $06 // if the user name length is less than 6, Over00488F5D 7D20 jnl 00488F7F
* Possible String Reference to: 'The username length cannot be less than 6 characters! '|00488
clearly defined. Let's get started! Open the string search function in OD and find an exciting prompt in the ocean of strings: "You have purchased and registered the shared data protection expert advanced Edition Software, thank you for your support! ". This prompt is no longer clear. Double-click it and you will be directed to the corresponding code. We still perform analysis in the order of first flow and then algorithm, just like the previous analysis process.
An amazing burst"First, find th
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.