:00440f2c |. 8b45 FC MOV eax,dword PTR ss:[ebp-4]00440f2f |.BA 14104400 MOV edx,crackme3.00441014; ASCII "Registered User"00440f34 |.E8 F32BFCFF call crackme3.00403b2c; The key is to go with F7.00440f39 |.JNZ short crackme3.00440f8c; This is the end of the jump.00440f3b |. 8d55 FC LEA edx,dword PTR ss:[ebp-4]00440f3e |. 8b83 C8020000 MOV eax,dword PTR Ds:[ebx+2c8]00440f44 |. E8 D7FEFDFF Call Crackme3.00420e
program writer's quality decision.The inline assembly is passed in C + +The results of the actual discovery of 500W data are as follows:Algorithm name inline assembly algorithm time C + + algorithm timeBubble sort 5W Data slow dying 5W data slow to deathQuick sort 600ms about 500ms around------------------Why there is a fast sorting algorithm, the results of the assembly is not a C + + efficiency is high, because I write the inline assembly is not automatically generated by the compiler high ef
the quality of the high and low decision.
Inline assembly is passed in C + +
actually found the 500W data sorting results are as follows:
Algorithm name inline assembler algorithm time C + + algorithm time
Bubble sort 5W data slow to die 5W data slowly dying.
Quick sort 600ms about 500ms around
------------------Why there is a fast sorting algorithm, the compiled results are not as high as C/s + + efficiency, because I write inline assembly without compiler automatic generation of high efficien
With the front: + + (-) There are too many confusing places, (i++) + (i++) and (++i) + (++i) What is the difference? If you understand it from the machine's point of view, it will be enlightened.
Let's take a look at the procedure:
int main() { int i=3; int j=(i++)+(i++); // int j=(++i)+(++i); printf("%d,%d\n",i,j); }
(1) Under VC 6.0:
for (i++) + (i++):
Result: i=5,j=6
The corresponding assembly code is (with detailed comments):
8B 45 FC mov eax,dw
body | ---------> @ 2|------> | -------------------- +|| Decryptor || ---------> @ 3+ -------------------- +@ 1 is a call constructed by computation, because the call location must be determined by @ 2.@ 2 is an encrypted virus.@ 3 is an encryptor used to decrypt @ 2, which is transformed by code obfuscation.In this way, every time other files are infected, the re-generated code will no longer have a fixed feature, which will invalidate the feature scanning mechanism.
2.1 random number design:T
layout is skipped.
Next let's take a look at the virtual function calling Pt-> Foo (); Through the pointer. The resulting assembly code is as follows:01 004230f6 mov eax, dword ptr [EBP + fffff900h]02 004230fc mov edX, dword ptr [eax]03 004230fe mov ESI, ESP04 00423100 mov ECx, dword ptr [EBP + fffff900h]05 00423106 call dword ptr [edX]In row 1st, the address directed by PT is moved into the eax register,
the siteCall makefs4gbsegment; the returned FS segment can be 4 GB memory. EBX =.############# Map the code to a linear address of 80000000 H + CS * 4, avoid NTS not mapped to memory reserved by our code ############MoV eax, FS: [EBX + 800 H]; eax = Linear address up to 10 bits 400 h * 4 = 800 H, determine the location of the page Directory table pointed to in S3.And eax, 0fffff000h; remove the obtained Level 2 page table attribute bit. eax = 80000000h linear address Level 2 page table physical
(anti-replay): IPSec receivers can detect and refuse to receive outdated or duplicated messages.IPSec has the following advantages:L Support IKE (Internet Key exchange, Internet Keys Exchange), can realize the auto-negotiation function of key, reduce the cost of key negotiation. The services of SA can be established and maintained through IKE, simplifying the use and management of IPSec.All applications an
MII-tool usage:
[Root @ localhost ~] # MiI-tool-helpUsage: MII-tool [-vvrrwl] [-a media,... |-F media] [interface...]-V,-version display version information-V,-verbose more verbose output Note: displays network interface information;-R,-Reset reset MII to poweron state Note: reset MII to Enabled state;-R,-Restart restart autonegotiation Note: restart the automatic negotiation mode;-W,-watch monitor for link status changes Note: view the status change
check whether your input is correct". I think those characters may be nearby, so double-click "registration failed, check whether your input is correct.
00415829 |> 66: C745 A4 D4> mov word ptr ss: [EBP-5C], 0D40036682f |. BA ADEC4900 mov edx, TextDraw.0049ECAD; Registration failed. Please check whether your input is correct00415834 |. 8D45 B8 lea eax, dword ptr ss: [EBP-48]
In section 00415829, the "jump from 0000004ed" is displayed in the informat
efficiency, should be converted to assembly, the intermediate results into a separate register40.//Thanks to Menzi11 's article, let me realize that the relevant data in the program will make the CPU can not disorderly execution.41.//Here is replaced by pseudo assemblerTYPE S4 = 0;43.Register TYPE r1 = 0;Register TYPE r2 = 0;for (int i = 0; i R1 + + + a[i++];R2 + = a[i++];49.}50.Wuyi Cout52.}
Several of the above versions are reasonable, but these optimizations are based on the assumption that
Iv. shortcomings to be overcome by designersA successful transaction is actually the result of a series of negotiation techniques, experience, and policy support. Is a system project. Any problem in this project will affect other aspects, resulting in failure or incomplete success. Therefore, the designer must avoid any leaks.1. Focus on reasoningSome designers are used to regionalization and rationalization. This will make
The test software is Splish.exe.Bytes ------------------------------------------------------------------------------------------I am sure everyone knows the beginning of searching for an algorithm. I will not talk about it here. Next I will directly discuss the assembly code and comments of the algorithm.Bytes ------------------------------------------------------------------------------------------------004015E4 55 push ebp; algorithm started004015E5 8BEC mov ebp, ESP004015E7 6A 20 PUSH 2000401
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.