Serial number resolution process analysis

software analysis

software

Software download link
crackmeesy.zip

analyze

Click to run it, the displayed window:
insert image description here

Enter the password: aaaaaaaaa (press randomly) and click check, as shown in the figure below:
insert image description here

start cracking

1

Search the string and find the word "10445678951" (similar sequence, but not):
insert image description here
click in, set a breakpoint:
insert image description here

Reload and run, enter aaaaaaa, click check, stop at the breakpoint, step by step F8

insert image description here
insert image description here
Basically, the ascii code of the first character 'a' of the input string is -0x14, and the hexadecimal value of a is 0x61, then the result obtained after subtraction is 4D, which will be the first character of 10445678951 "1" "Compare.

So we can reverse the sequence:

Inverse method

The decimal codes of "10445678951" are:
49, 48, 52, 52, 53, 54, 55, 56, 57, 53, 49

Convert to hexadecimal:
0x31, 0x30, 0x34, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x35, 0x31

Collectively add 0x14 to get:
0x45, 0x44, 0x48 , 0x48, 0x49, 0x50, 0x51, 0x52, 0x53, 0x49, 0x45

Represented by characters:
E, D, H, H, I, J, K, L, M, I, E

The converted sequence is:
EDHHIJKLMIE

C++ implementation program:

void getfun(string str){
    
    
	string mystr="10445678951";
	int length=0;
	int i=0,j=0;
	char s='';
	for(i=0;i<str.length();i++){
    
    
		s=str[i]-0x14;
		if(s==mystr[i]){
    
    
			length++;
		}
	}
	
	if(length==str.length()){
    
    
		cout<<"注册成功"<<endl;
	}else{
    
    
		cout<<"注册失败"<<endl;
	}

}

Guess you like

Origin blog.csdn.net/wangzhiyu12/article/details/109544707