[ Disassembly exercises ] 160 individual CrackMe And 002.

The purpose of this series of articles is from the perspective of a novice without any experience ( It's just me ), Step by step, try to 160 individual CrackMe Crack it all , If possible , Write something like a registry in any way .

among , The article is arranged according to the following logic ( Solve the following problems ):

1、 What environment and tools to use

2、 Program analysis

3、 Thinking analysis and cracking process

4、 The exploration of registration machine


1、 Tools and environments :

WinXP SP3 + 52Pojie The sixth anniversary edition OD + PEID + Compilation of golden finger .

160 individual CrackMe The package file for .

Download address : http://pan.baidu.com/s/1xUWOY  password : jbnq

notes :

1、Win7 The system turns on the function of random initial address for modules and programs , It's going to be a huge burden on the analysis , So it's not recommended Win7 Analyze .

2、 All of the above tools are in 52PoJie Forum under the original program ,NOD32 No poison , Personal commitment will never carry out any trojan virus related content .

 

2、 Program analysis :

Want to crack a program , You have to understand the program first . therefore , In the process of cracking , The analysis of the initial program is important , He can help us understand the author's purpose and intention , Especially for the details of the registration code , So as to facilitate our backward tracking and derivation .

Same as in the last video , open CHM, Choose the second Afkayas, preserved . Run the program , collapse , The lack of msvbvm50.dll, The program won't run . Can't , Search the Internet for a , Put it in the same directory as the program , Run again ,OK. The program interface is as follows :

It's a standard Name/Serial Registration code method , Without saying , Let's do a pseudo code test :

Name: 111222    Serial: 3334444

Click on OK, An error dialog box pops up ,You Get Wrong,Try again!

3、 Thinking analysis and cracking process :

First , According to experience , The program with dialog box prompt can find the location of the call through the stack . The method is as follows : Input pseudo code , Click on OK, Error dialog box will pop up , Don't close this dialog at this time , Switch to OD, Click pause program , then Ctrl+K To stack view , as follows :

It's almost encircled here , It's not ordinary C/C++ Code , Look at the back Called from Most of it comes from msvbvm50,user32, According to the name of Baidu , Discovery is using VB It's written in the module of . And look at the red part , It turns out that the only thing that seems to be related to the dialog box is msvbvm50.rtcmsgbox and user32.MessageBoxIndirectA, The main thing is msvbvm50.rtcMsgBox Call from AfKayas_.0040261C, So we can basically conclude that rtcMsgBox yes Vb Pop up dialog box related things , Don't hesitate. , Select it , Right click ->show call.

004025E3 . /EB 56 jmp short 0040263B
004025E5 > |68 C81B4000 push 00401BC8 ; UNICODE "You Get Wrong"
004025EA . |68 9C1B4000 push 00401B9C ; ASCII "\r"
004025EF . |FFD7 call edi
004025F1 . |8BD0 mov edx,eax
004025F3 . |8D4D E8 lea ecx,dword ptr ss:[ebp-0x18]
004025F6 . |FFD3 call ebx
004025F8 . |50 push eax
004025F9 . |68 E81B4000 push 00401BE8 ; UNICODE "Try Again"
004025FE . |FFD7 call edi
00402600 . |8945 CC mov dword ptr ss:[ebp-0x34],eax
00402603 . |8D45 94 lea eax,dword ptr ss:[ebp-0x6C]
00402606 . |8D4D A4 lea ecx,dword ptr ss:[ebp-0x5C]
00402609 . |50 push eax
0040260A . |8D55 B4 lea edx,dword ptr ss:[ebp-0x4C]
0040260D . |51 push ecx
0040260E . |52 push edx
0040260F . |8D45 C4 lea eax,dword ptr ss:[ebp-0x3C]
00402612 . |6A 00 push 0x0
00402614 . |50 push eax
00402615 . |C745 C4 08000>mov dword ptr ss:[ebp-0x3C],0x8
0040261C . |FF15 10414000 call dword ptr ds:[<&MSVBVM50.#595>] ; msvbvm50.rtcMsgBox

Look up the code a little bit , Find the nearest place to have “Try again” and “You get wrong” A hint of , We can basically conclude that this is it . Keep going up , Look where the logical part of judgment is :

00402569 . 83C4 0C add esp,0xC
0040256C . B9 04000280 mov ecx,0x80020004
00402571 . B8 0A000000 mov eax,0xA
00402576 . 894D 9C mov dword ptr ss:[ebp-0x64],ecx
00402579 . 66:85F6 test si,si
0040257C . 8945 94 mov dword ptr ss:[ebp-0x6C],eax
0040257F . 894D AC mov dword ptr ss:[ebp-0x54],ecx
00402582 . 8945 A4 mov dword ptr ss:[ebp-0x5C],eax
00402585 . 894D BC mov dword ptr ss:[ebp-0x44],ecx
00402588 . 8945 B4 mov dword ptr ss:[ebp-0x4C],eax
0040258B . 74 58 je short 004025E5 ; The judgment should be here ?
0040258D . 68 801B4000 push 00401B80 ; UNICODE "You Get It"
00402592 . 68 9C1B4000 push 00401B9C ; ASCII "\r"
00402597 . FFD7 call edi
00402599 . 8BD0 mov edx,eax
0040259B . 8D4D E8 lea ecx,dword ptr ss:[ebp-0x18]
0040259E . FFD3 call ebx
004025A0 . 50 push eax
004025A1 . 68 A81B4000 push 00401BA8 ; UNICODE "KeyGen It Now"
004025A6 . FFD7 call edi
004025A8 . 8D4D 94 lea ecx,dword ptr ss:[ebp-0x6C]
004025AB . 8945 CC mov dword ptr ss:[ebp-0x34],eax
004025AE . 8D55 A4 lea edx,dword ptr ss:[ebp-0x5C]
004025B1 . 51 push ecx
004025B2 . 8D45 B4 lea eax,dword ptr ss:[ebp-0x4C]
004025B5 . 52 push edx
004025B6 . 50 push eax
004025B7 . 8D4D C4 lea ecx,dword ptr ss:[ebp-0x3C]
004025BA . 6A 00 push 0x0
004025BC . 51 push ecx
004025BD . C745 C4 08000>mov dword ptr ss:[ebp-0x3C],0x8
004025C4 . FF15 10414000 call dword ptr ds:[<&MSVBVM50.#595>] ; msvbvm50.rtcMsgBox
004025CA . 8D4D E8 lea ecx,dword ptr ss:[ebp-0x18]
004025CD . FF15 80414000 call dword ptr ds:[<&MSVBVM50.__vbaFreeS>; msvbvm50.__vbaFreeStr
004025D3 . 8D55 94 lea edx,dword ptr ss:[ebp-0x6C]
004025D6 . 8D45 A4 lea eax,dword ptr ss:[ebp-0x5C]
004025D9 . 52 push edx
004025DA . 8D4D B4 lea ecx,dword ptr ss:[ebp-0x4C]
004025DD . 50 push eax
004025DE . 8D55 C4 lea edx,dword ptr ss:[ebp-0x3C]
004025E1 . 51 push ecx
004025E2 . 52 push edx
004025E3 . EB 56 jmp short 0040263B
004025E5 > 68 C81B4000 push 00401BC8 ; UNICODE "You Get Wrong"
004025EA . 68 9C1B4000 push 00401B9C ; ASCII "\r"
004025EF . FFD7 call edi
004025F1 . 8BD0 mov edx,eax
004025F3 . 8D4D E8 lea ecx,dword ptr ss:[ebp-0x18]
004025F6 . FFD3 call ebx
004025F8 . 50 push eax
004025F9 . 68 E81B4000 push 00401BE8 ; UNICODE "Try Again"
004025FE . FFD7 call edi

Very simple. ? Directly in ”You get it ” There's one next to JE Jump , stay OD Check and find that if the jump is implemented, an error will be prompted , If you don't implement it, you will be prompted to be correct , The blast started ! Choose je That line , Right click ->Binary->Fill with NOPs. At this time in the program to enter at will try , ha-ha , The blast was successful !


4、 Registration machine exploration :

Because we didn't find anything like the registration code near the jump , therefore , We need to put the content of this block F8 Follow up , A general look at those places may be related to the registration code . Let's look up , At the beginning of this program ( That is to find the nearest one retn, It usually begins with push ebp etc. ) Lower breakpoint :

00402310   > \55            push ebp  // Program segment header

Single step F8 track , Annotate important information , Especially and Name/Serial Relevant stuff , After analysis, the code is as follows :

00402403 . FF15 04414000 call dword ptr ds:[<&MSVBVM50.__vbaHresultChec>; MSVBVM50.__vbaHresultCheckObj
00402409 > 8B95 50FFFFFF mov edx,dword ptr ss:[ebp-0xB0]
0040240F . 8B45 E4 mov eax,dword ptr ss:[ebp-0x1C]
00402412 . 50 push eax ; //eax=111222,name
00402413 . 8B1A mov ebx,dword ptr ds:[edx]
00402415 . FF15 E4404000 call dword ptr ds:[<&MSVBVM50.__vbaLenBstr>] ; MSVBVM50.__vbaLenBstr
0040241B . 8BF8 mov edi,eax ; edi=6
0040241D . 8B4D E8 mov ecx,dword ptr ss:[ebp-0x18] ; ecx=1111222 Address
00402420 . 69FF FB7C0100 imul edi,edi,0x17CFB ; // Multiplication ,edi*0x17CFB
00402426 . 51 push ecx
00402427 . 0F80 91020000 jo 004026BE
0040242D . FF15 F8404000 call dword ptr ds:[<&MSVBVM50.#516>] ; MSVBVM50.rtcAnsiValueBstr
00402433 . 0FBFD0 movsx edx,ax
00402436 . 03FA add edi,edx ; // edi=edi+edx(0x31)
00402438 . 0F80 80020000 jo 004026BE
0040243E . 57 push edi
0040243F . FF15 E0404000 call dword ptr ds:[<&MSVBVM50.__vbaStrI4>] ; MSVBVM50.__vbaStrI4
00402445 . 8BD0 mov edx,eax ; // eax=585235
00402447 . 8D4D E0 lea ecx,dword ptr ss:[ebp-0x20]
0040244A . FF15 70414000 call dword ptr ds:[<&MSVBVM50.__vbaStrMove>] ; MSVBVM50.__vbaStrMove
00402450 . 8BBD 50FFFFFF mov edi,dword ptr ss:[ebp-0xB0]
00402456 . 50 push eax ; // 585235
00402457 . 57 push edi ; // 0091B51C
00402458 . FF93 A4000000 call dword ptr ds:[ebx+0xA4]
0040245E . 85C0 test eax,eax ; // ==0
00402460 . 7D 12 jge short 00402474
00402462 . 68 A4000000 push 0xA4
00402467 . 68 5C1B4000 push 00401B5C
0040246C . 57 push edi
0040246D . 50 push eax
0040246E . FF15 04414000 call dword ptr ds:[<&MSVBVM50.__vbaHresultChec>; MSVBVM50.__vbaHresultCheckObj
00402474 > 8D45 E0 lea eax,dword ptr ss:[ebp-0x20]
00402477 . 8D4D E4 lea ecx,dword ptr ss:[ebp-0x1C]
0040247A . 50 push eax
0040247B . 8D55 E8 lea edx,dword ptr ss:[ebp-0x18]
0040247E . 51 push ecx
0040247F . 52 push edx
00402480 . 6A 03 push 0x3
00402482 . FF15 5C414000 call dword ptr ds:[<&MSVBVM50.__vbaFreeStrList>; MSVBVM50.__vbaFreeStrList
00402488 . 83C4 10 add esp,0x10
0040248B . 8D45 D4 lea eax,dword ptr ss:[ebp-0x2C]
0040248E . 8D4D D8 lea ecx,dword ptr ss:[ebp-0x28]
00402491 . 8D55 DC lea edx,dword ptr ss:[ebp-0x24]
00402494 . 50 push eax
00402495 . 51 push ecx
00402496 . 52 push edx
00402497 . 6A 03 push 0x3
00402499 . FF15 F4404000 call dword ptr ds:[<&MSVBVM50.__vbaFreeObjList>; MSVBVM50.__vbaFreeObjList
0040249F . 8B06 mov eax,dword ptr ds:[esi]
004024A1 . 83C4 10 add esp,0x10
004024A4 . 56 push esi
004024A5 . FF90 04030000 call dword ptr ds:[eax+0x304]
004024AB . 8B1D 0C414000 mov ebx,dword ptr ds:[<&MSVBVM50.__vbaObjSet>] ; MSVBVM50.__vbaObjSet
004024B1 . 50 push eax
004024B2 . 8D45 DC lea eax,dword ptr ss:[ebp-0x24]
004024B5 . 50 push eax
004024B6 . FFD3 call ebx ; <&MSVBVM50.__vbaObjSet>
004024B8 . 8BF8 mov edi,eax
004024BA . 8D55 E8 lea edx,dword ptr ss:[ebp-0x18]
004024BD . 52 push edx
004024BE . 57 push edi
004024BF . 8B0F mov ecx,dword ptr ds:[edi]
004024C1 . FF91 A0000000 call dword ptr ds:[ecx+0xA0]
004024C7 . 85C0 test eax,eax ; eax=0,zf=1
004024C9 . 7D 12 jge short 004024DD
004024CB . 68 A0000000 push 0xA0
004024D0 . 68 5C1B4000 push 00401B5C
004024D5 . 57 push edi
004024D6 . 50 push eax
004024D7 . FF15 04414000 call dword ptr ds:[<&MSVBVM50.__vbaHresultChec>; MSVBVM50.__vbaHresultCheckObj
004024DD > 56 push esi
004024DE . FF95 40FFFFFF call dword ptr ss:[ebp-0xC0]
004024E4 . 50 push eax
004024E5 . 8D45 D8 lea eax,dword ptr ss:[ebp-0x28]
004024E8 . 50 push eax
004024E9 . FFD3 call ebx
004024EB . 8BF0 mov esi,eax
004024ED . 8D55 E4 lea edx,dword ptr ss:[ebp-0x1C]
004024F0 . 52 push edx
004024F1 . 56 push esi
004024F2 . 8B0E mov ecx,dword ptr ds:[esi]
004024F4 . FF91 A0000000 call dword ptr ds:[ecx+0xA0]
004024FA . 85C0 test eax,eax ; eax=0
004024FC . 7D 12 jge short 00402510
004024FE . 68 A0000000 push 0xA0
00402503 . 68 5C1B4000 push 00401B5C
00402508 . 56 push esi
00402509 . 50 push eax
0040250A . FF15 04414000 call dword ptr ds:[<&MSVBVM50.__vbaHresultChec>; MSVBVM50.__vbaHresultCheckObj
00402510 > 8B45 E8 mov eax,dword ptr ss:[ebp-0x18] ; eax=3334444
00402513 . 8B4D E4 mov ecx,dword ptr ss:[ebp-0x1C] ; ecx=585235
00402516 . 8B3D 00414000 mov edi,dword ptr ds:[<&MSVBVM50.__vbaStrCat>] ; MSVBVM50.__vbaStrCat
0040251C . 50 push eax ; eax=3334444
0040251D . 68 701B4000 push 00401B70 ; UNICODE "AKA-"
00402522 . 51 push ecx ; ecx=585235
00402523 . FFD7 call edi ; <&MSVBVM50.__vbaStrCat>
00402525 . 8B1D 70414000 mov ebx,dword ptr ds:[<&MSVBVM50.__vbaStrMove>>; MSVBVM50.__vbaStrMove
0040252B . 8BD0 mov edx,eax ; edx=eax=AKA-585235
0040252D . 8D4D E0 lea ecx,dword ptr ss:[ebp-0x20]
00402530 . FFD3 call ebx ; <&MSVBVM50.__vbaStrMove>
00402532 . 50 push eax
00402533 . FF15 28414000 call dword ptr ds:[<&MSVBVM50.__vbaStrCmp>] ; MSVBVM50.__vbaStrCmp
00402539 . 8BF0 mov esi,eax ; eax=-1
0040253B . 8D55 E0 lea edx,dword ptr ss:[ebp-0x20]
0040253E . F7DE neg esi ; Take complement
00402540 . 8D45 E8 lea eax,dword ptr ss:[ebp-0x18]
00402543 . 52 push edx
00402544 . 1BF6 sbb esi,esi
00402546 . 8D4D E4 lea ecx,dword ptr ss:[ebp-0x1C]
00402549 . 50 push eax
0040254A . 46 inc esi
0040254B . 51 push ecx
0040254C . 6A 03 push 0x3
0040254E . F7DE neg esi
00402550 . FF15 5C414000 call dword ptr ds:[<&MSVBVM50.__vbaFreeStrList>; MSVBVM50.__vbaFreeStrList
00402556 . 83C4 10 add esp,0x10
00402559 . 8D55 D8 lea edx,dword ptr ss:[ebp-0x28]
0040255C . 8D45 DC lea eax,dword ptr ss:[ebp-0x24]
0040255F . 52 push edx
00402560 . 50 push eax
00402561 . 6A 02 push 0x2
00402563 . FF15 F4404000 call dword ptr ds:[<&MSVBVM50.__vbaFreeObjList>; MSVBVM50.__vbaFreeObjList
00402569 . 83C4 0C add esp,0xC
0040256C . B9 04000280 mov ecx,0x80020004
00402571 . B8 0A000000 mov eax,0xA
00402576 . 894D 9C mov dword ptr ss:[ebp-0x64],ecx
00402579 . 66:85F6 test si,si ; esi=0,ZF=1
0040257C . 8945 94 mov dword ptr ss:[ebp-0x6C],eax
0040257F . 894D AC mov dword ptr ss:[ebp-0x54],ecx
00402582 . 8945 A4 mov dword ptr ss:[ebp-0x5C],eax
00402585 . 894D BC mov dword ptr ss:[ebp-0x44],ecx
00402588 . 8945 B4 mov dword ptr ss:[ebp-0x4C],eax
0040258B 74 58 je short 004025E5 ; // The key to blasting is to jump ,NOP
0040258D . 68 801B4000 push 00401B80 ; UNICODE "You Get It"
00402592 . 68 9C1B4000 push 00401B9C ; ASCII "\r"
00402597 . FFD7 call edi

In fact, the code is very simple , After a follow-up , It's almost out , The key analysis is as follows :

00402412 . 50 push eax ; //eax=111222,name
00402413 . 8B1A mov ebx,dword ptr ds:[edx]
00402415 . FF15 E4404000 call dword ptr ds:[<&MSVBVM50.__vbaLenBstr>] ; MSVBVM50.__vbaLenBstr
0040241B . 8BF8 mov edi,eax ; edi=6
0040241D . 8B4D E8 mov ecx,dword ptr ss:[ebp-0x18] ; ecx=1111222 Address
00402420 . 69FF FB7C0100 imul edi,edi,0x17CFB ; // Multiplication ,edi*0x17CFB
00402426 . 51 push ecx
00402427 . 0F80 91020000 jo 004026BE
0040242D . FF15 F8404000 call dword ptr ds:[<&MSVBVM50.#516>] ; MSVBVM50.rtcAnsiValueBstr
00402433 . 0FBFD0 movsx edx,ax
00402436 . 03FA add edi,edx ; // edi=edi+edx(0x31)
00402438 . 0F80 80020000 jo 004026BE
0040243E . 57 push edi
0040243F . FF15 E0404000 call dword ptr ds:[<&MSVBVM50.__vbaStrI4>] ; MSVBVM50.__vbaStrI4
00402445 . 8BD0 mov edx,eax ; // eax=585235

First ,eax by Name The address of , after __vbaLenBstr The calculated length is assigned to edi, then edi=edi*0x17CFB, next edi=edi+edx, and edx by Name The first character of a string Ansi Value , At the end of the day __vbaStrI4 take edi Convert the integer value of to a decimal string 585235.

Then trace down and string 585235 Relevant stuff :

00402510 > 8B45 E8 mov eax,dword ptr ss:[ebp-0x18] ; eax=3334444
00402513 . 8B4D E4 mov ecx,dword ptr ss:[ebp-0x1C] ; ecx=585235
00402516 . 8B3D 00414000 mov edi,dword ptr ds:[<&MSVBVM50.__vbaStrCat>] ; MSVBVM50.__vbaStrCat
0040251C . 50 push eax ; eax=3334444
0040251D . 68 701B4000 push 00401B70 ; UNICODE "AKA-"
00402522 . 51 push ecx ; ecx=585235
00402523 . FFD7 call edi ; <&MSVBVM50.__vbaStrCat>
00402525 . 8B1D 70414000 mov ebx,dword ptr ds:[<&MSVBVM50.__vbaStrMove>>; MSVBVM50.__vbaStrMove
0040252B . 8BD0 mov edx,eax ; edx=eax=AKA-585235
0040252D . 8D4D E0 lea ecx,dword ptr ss:[ebp-0x20]
00402530 . FFD3 call ebx ; <&MSVBVM50.__vbaStrMove>
00402532 . 50 push eax
00402533 . FF15 28414000 call dword ptr ds:[<&MSVBVM50.__vbaStrCmp>] ; MSVBVM50.__vbaStrCmp
00402539 . 8BF0 mov esi,eax ; eax=-1

In this code 585235 adopt __vbaStrCat And ”AKA-” Join together to form a string ”AKA-585235”, And then through __vbaStrCmp Function and our Serial Comparison results , Finally, the return value is placed in eax in , Determine whether it is correct by the return value . Combine the analysis here with the previous one , It's easy to get the final registration code .

To sum up : First take out the length of the registration code len, Then take out the first character of the registration code ANSI value cName, Let's calculate later len*0x17CFB+cName, Convert the calculated value to 10 Hex text , prefix ”AKA-” Make up the final registration code .

C/CPP The code is as follows :

// CrackMe160.cpp : Defines the entry point for the console application .
// 002 #include "stdafx.h"
#include <stdio.h>
#include "iostream" char buff[100] = {0};
int _tmain(int argc, _TCHAR* argv[])
{
printf("160CrackMe-002 Name/Serial\r\n\r\n");
printf("Name:");
gets_s(buff,100);
int nLen = strlen(buff);
if ( nLen > 0 )
{
int nRet = nLen * 0x17CFB;
nRet += buff[0];
printf("AKA-%d\r\n",nRet);
}else{
printf("Input error!\r\n");
}
system("pause");
return 0;
}

 

 

[ Disassembly exercises ] 160 individual CrackMe And 002 More articles about

  1. [ Disassembly exercises ] 160 individual CrackMe And 003

    [ Disassembly exercises ] 160 individual CrackMe And 003. The purpose of this series of articles is from the perspective of a novice without any experience ( It's just me ), Step by step, try to 160 individual CrackMe Crack it all , If possible , Write a note in any way similar to ...

  2. [ Disassembly exercises ] 160 individual CrackMe And 027

    [ Disassembly exercises ] 160 individual CrackMe And 027. The purpose of this series of articles is from the perspective of a novice without any experience ( It's just me ), Step by step, try to 160 individual CrackMe Crack it all , If possible , Write a note in any way similar to ...

  3. [ Disassembly exercises ] 160 individual CrackMe And 026

    [ Disassembly exercises ] 160 individual CrackMe And 026. The purpose of this series of articles is from the perspective of a novice without any experience ( It's just me ), Step by step, try to 160 individual CrackMe Crack it all , If possible , Write a note in any way similar to ...

  4. [ Disassembly exercises ] 160 individual CrackMe And 025

    [ Disassembly exercises ] 160 individual CrackMe And 025. The purpose of this series of articles is from the perspective of a novice without any experience ( It's just me ), Step by step, try to 160 individual CrackMe Crack it all , If possible , Write a note in any way similar to ...

  5. [ Disassembly exercises ] 160 individual CrackMe And 024

    [ Disassembly exercises ] 160 individual CrackMe And 024. The purpose of this series of articles is from the perspective of a novice without any experience ( It's just me ), Step by step, try to 160 individual CrackMe Crack it all , If possible , Write a note in any way similar to ...

  6. [ Disassembly exercises ] 160 individual CrackMe And 022

    [ Disassembly exercises ] 160 individual CrackMe And 022. The purpose of this series of articles is from the perspective of a novice without any experience ( It's just me ), Step by step, try to 160 individual CrackMe Crack it all , If possible , Write a note in any way similar to ...

  7. [ Disassembly exercises ] 160 individual CrackMe And 021

    [ Disassembly exercises ] 160 individual CrackMe And 021. The purpose of this series of articles is from the perspective of a novice without any experience ( It's just me ), Step by step, try to 160 individual CrackMe Crack it all , If possible , Write a note in any way similar to ...

  8. [ Disassembly exercises ] 160 individual CrackMe And 020

    [ Disassembly exercises ] 160 individual CrackMe And 020. The purpose of this series of articles is from the perspective of a novice without any experience ( It's just me ), Step by step, try to 160 individual CrackMe Crack it all , If possible , Write a note in any way similar to ...

  9. [ Disassembly exercises ] 160 individual CrackMe And 019

    [ Disassembly exercises ] 160 individual CrackMe And 018. The purpose of this series of articles is from the perspective of a novice without any experience ( It's just me ), Step by step, try to 160 individual CrackMe Crack it all , If possible , Write a note in any way similar to ...

Random recommendation

  1. Project continuous integration environment (jenkins + SVN + maven + tomcat)

    Overall process Every time SVN There's a change in the code , Trigger the auto build action , And deployed to the server tomcat On , Specific process : 1.SVN Submit code changes on 2.maven perform Goals 3. take web The project is completed war package 4. Shut down the t ...

  2. We make the memorial day ps Upload

    Save the picture as JPG, Write down your student number , Talk about your creative ideas

  3. C# Call antivirus software MSE Scan a specified directory or file

    There is such a need , When the external network file is transferred to the server , Scan files for viruses . Microsoft's own antivirus software MSE Implementation provides a command line call , So that we can integrate into C# In the developed program . The order is as follows : -file "E:\t&quo ...

  4. MVC in session Create and get questions

    There are two ActionResult Respectively A and B, as follows public ActionResult A() { Session["test"]="123"; return ...

  5. [LeetCode#244] Shortest Word Distance II

    Problem: This is a follow up of Shortest Word Distance. The only difference is now you are given the ...

  6. Version control two :SVN Preliminary use of ( turn )

    from http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407979.html In the last introduction VisualSVN Server and Tortoise ...

  7. simulation Vue Data driven

    One . Preface In the essay " simulation Vue Data driven 1" Ending , We said that if the listening property is an object ? Then the other attributes in this object can't be monitored ? as follows : if user Medium name.age Property changes ...

  8. GBK,UTF8 What is it? ? What's the difference? , Choose a good website ?

    GBK Contains all Chinese characters : UTF-8 It contains the characters needed by all countries in the world . GBK It's in the national standard GB2312 On this basis, it is compatible after expansion GB2312 Standards for ( It doesn't seem to be a national standard yet ) UTF-8 Coded text can be supported in various countries ...

  9. MySQL Learning notes _10_MySQL Advanced operations ( Next )

    MySQL Advanced operations ( Next ) 5、 ... and .MySQL Preprocessing statement 1. Set up preprocessing stmt, Pass a data as where Judgment condition prepare stmt from "select * from table ...

  10. WEB What the front end needs to know XML Related basic knowledge

    What is? XML? XML Extensible markup language (EXtensible Markup Language) XML It's a markup language , Is very similar HTML XML The purpose of the design is to transmit data , Instead of displaying data XML No label ...