五行八字预测 算法分析,适合新手去学习,因为无聊就写下这篇文章
因为看到论坛有人需要这个软件的算法分析,所以无聊就写下这篇文章和大家一起交流学习五行八字预测,这篇算法分析比较适合新手学习五行八字预测,因为算法比较简单。
该软件是一个易语言软件五行八字预测 算法分析,适合新手去学习,因为无聊就写下这篇文章,所以直接下易语言按钮事件断下,找关键的算法call
/.55 push ebp ;注册算法
|.8BEC mov ebp,esp
|.81EC sub esp,0x34
|.C745 FC 00000>mov[local.1],0x0
|.C745 F8 00000>mov[local.2],0x0
|.C745 F4 00000>mov[local.3],0x0
|.6A 01 push 0x1
|.B8 mov eax,生辰八字. ;
|.8945 F0 mov [local.4],eax
|.8D45 F0 lea eax,[local.4]
|.50 push eax
|.68 push 生辰八字. ; 8}Z\t
|.68 push 生辰八字.
上面这段就是算法的开始,我们一步一步分析,因为这个算法比较简单,适合新手去学习练手!!
|.83C4 04 add esp,0x4
|>58 pop eax
|.8945 FC mov [local.1],eax
|.6A FF push -0x1
|.6A 08 push 0x8
|.68 push
|.68 push
|.E8 call 生辰八字. ;获取我输入的假码
|.83C4 10 add esp,0x10
|.8945 F0 mov [local.4],eax
|.68 push
|.6A 00 push 0x0
|.8B45 F0 mov eax,[local.4]
|.85C0 test eax,eax
|.75 05 jnz short 生辰八字.
|.83C4 04 add esp,0x4
|>68 push 生辰八字. ;'
|.FF75 EC push [local.5]
|.68 push 生辰八字. ;pass='
|.B9 mov ecx,0x3
|.E8 call 生辰八字.
|.83C4 0C add esp,0xC
|.8945 E8 mov [local.6],eax
|.8B5D EC mov ebx,[local.5]
|.85DB test ebx,ebx
“Pass=”和假码合并
pass=''
然后一直下去会进行一些没关紧要的操作,这些可以忽略不理。
|.83C4 04 add esp,0x4
|>58 pop eax
|.8945 F8 mov [local.2],eax
|.6A FF push -0x1
|.6A 08 push 0x8
|.68 push
|.68 push
|.E8 call 生辰八字. 继续取出假码
|.83C4 10 add esp,0x10
|.8945 F0 mov [local.4],eax
|.68 push
|.6A 00 push 0x0
|.8B45 F0 mov eax,[local.4]
|.85C0 test eax,eax
|.75 05 jnz short 生辰八字.
----------------------------------------------
|.83C4 04 add esp,0x4
|>68 push 生辰八字. ;'
|.FF75 EC push [local.5]
|.68 push 生辰八字. ;pass='
|.B9 mov ecx,0x3
|.E8 call 生辰八字.
|.83C4 0C add esp,0xC
|.8945 E8 mov [local.6],eax
|.8B5D EC mov ebx,[local.5]
|.85DB test ebx,ebx
继续“Pass=”和假码合并
pass=''
----------------------------------------------
|.83C4 04 add esp,0x4
|>58 pop eax
|.8945 F4 mov [local.3],eax
|.68 push
|.6A 00 push 0x0
|.A1 mov eax,dword ptr ds:[] ; 机器码序列号,请记下这个全局变量[]
|.85C0 test eax,eax
我这里的机器码为:
|.83C4 10 add esp,0x10
|.8945 E4 mov [local.7],eax
|.8955 E8 mov [local.6],edx
|.DF6D E4 fild qword ptr ss:[ebp-0x1C]
|.DD5D E4 fstp qword ptr ss:[ebp-0x1C]
|.DD45 E4 fld qword ptr ss:[ebp-0x1C]
|.DC0D fmul qword ptrds:[] ;机器码×323 注意这里的操作都是以10进制操作
|.DD5D DC fstp qword ptr ss:[ebp-0x24]
|.68 push
|.FF75 E0 push [local.8]
|.FF75 DC push [local.9]
|. push 0x1
|.BB mov ebx,生辰八字.
这里就是机器码*323
*323= hex ()
|.83C4 10 add esp,0x10
|.68 push
|.6A 00 push 0x0
|.50 push eax
|.68 push 0x1
|.BB mov ebx,生辰八字.
|.E8 call 生辰八字. ;将结果转换为10进制
|.83C4 10 add esp,0x10
|.8945 D4 mov [local.11],eax
经典的易语言文本比较
|.83C4 10 add esp,0x10
|.8945 D0 mov [local.12],eax
|.8B45 D4 mov eax,[local.11]
|.50 push eax
|.FF75 D0 push [local.12]
|.E8 call 生辰八字.
|.83C4 08 add esp,0x8
|.83F8 00 cmp eax,0x0
|.B8 mov eax,0x0
|. sete al
|.8945 CC mov [local.13],eax
|.8B5D D0 mov ebx,[local.12]
|.85DB test ebx,ebx
爆破的话修改下面跳转就可以了五行八字预测 算法分析,适合新手去学习,因为无聊就写下这篇文章,我们现在是学算法分析,所以我们不玩爆破。
总结:注册码=机器码* 323
知道了注册码怎么计算出来的,现在我们来找出机器码的算法。
刚才叫大家记下这个全局变量[]
现在我们搜索这个常量
全部都下上断点
.5E pop esi ;
.8BF8 mov edi,eax
.F3:A4 rep movs byte ptr es:[edi],byte ptrds:[>
>50 push eax
.8B1D mov ebx,dword ptrds:[]
.85DB test ebx,ebx
.74 09 je short 生辰八字.
.53 push ebx
.E8 call 生辰八字.
.83C4 04 add esp,0x4
我们发现在这里断下五行八字预测,这时候,eax已经出现了机器码,我们往上找,看看机器码怎么计算出来的。
.6A 00 push 0x0
.6A 00 push 0x0
.6A 00 push 0x0
.68 push
.6A 00 push 0x0
.FF35 push dword ptrds:[]
.68 push 0x2
.B8 mov eax,0x6
.BB mov ebx,生辰八字.
.E8 call 生辰八字.
.83C4 1C add esp,0x1C
. 8B1D mov ebx,dword ptr ds:[]
.83C3 08 add ebx,0x8
.895D FC mov dword ptr ss:[ebp-0x4],ebx
.68 push
.6A 00 push 0x0
.8B5D FC mov ebx,dword ptr ss:[ebp-0x4]
.8B03 mov eax,dword ptr ds:[ebx]
.85C0 test eax,eax
.75 05 jnz short 生辰八字.
.B8 mov eax,生辰八字.
>50 push eax
.68 push 0x1
.BB mov ebx,生辰八字.
这里是取硬盘序列号
我这里是
> \50 push eax
.68 push 0x1
.B8 mov eax,0xE
.BB mov ebx,生辰八字.
.E8 call 生辰八字.
.83C4 10 add esp,0x10
.8945 F4 mov dword ptr ss:[ebp-0xC],eax
.8B5D F8 mov ebx,dword ptr ss:[ebp-0x8]
.85DB test ebx,ebx ;生辰八字.
将硬盘序列号进行MD5操作
> \58 pop eax
.A3 mov dword ptr ds:[],eax
.68 push 0x0
.BB mov ebx,生辰八字.
.E8 call 生辰八字.
.83C4 04 add esp,0x4
.8945 F4 mov dword ptr ss:[ebp-0xC],eax
.DB45 F4 fild dword ptr ss:[ebp-0xC]
.DD5D F4 fstp qword ptr ss:[ebp-0xC]
.DD45 F4 fld qword ptr ss:[ebp-0xC]
.DC05 fadd qword ptrds:[]
.DD5D EC fstp qword ptr ss:[ebp-0x14]
.68 push
.FF75 F0 push dword ptr ss:[ebp-0x10]
.FF75 EC push dword ptr ss:[ebp-0x14] ; 生辰八字.
.68 push 0x1
.BB mov ebx,生辰八字.
这段其实就是易语言的取硬盘特征字命令,我在这里浪费了不少时间才得知是这个命令
.E8 call 生辰八字. F7进入
百度了一下上图圈出的关键字,得出是取硬盘信息相关的命令。
上图这段就是进行各种硬盘信息操作,得出最后的取硬盘特征字
把硬盘模型号的ASCII进行相加
拿出硬盘版本进行ASCII相加
其他几个就不一一说了,都是拿下面这些信息进行运算。
硬盘模型号 SSD 850 EVO
版本
硬盘序列号
磁头数 16
柱面数
容量
缓存大小 0
每磁道扇区数 63
第一硬盘特征字是:
最后得出第一硬盘特征字是:
然后将盘特征字和进行相加操作,最后就得出机器码。
附上软件和
链接:(密码:)
--官方论坛
--推荐给朋友