首页
社区
课程
招聘
[旧帖] [原创]某易语言程序的算法分析 0.00雪花
发表于: 2009-4-28 10:50 3695

[旧帖] [原创]某易语言程序的算法分析 0.00雪花

2009-4-28 10:50
3695
某易语言程序的算法分析
0044BC2A    55              push    ebp                              ; 此处下断,输入注册码后按确定按钮后断在这里
0044BC2B    8BEC            mov     ebp, esp
0044BC2D    81EC 24000000   sub     esp, 24
0044BC33    C745 FC 0000000>mov     dword ptr [ebp-4], 0
0044BC3A    68 00000000     push    0
0044BC3F    BB C4060000     mov     ebx, 6C4
0044BC44    E8 2A020000     call    0044BE73
0044BC49    83C4 04         add     esp, 4
0044BC4C    8945 F0         mov     dword ptr [ebp-10], eax
0044BC4F    DB45 F0         fild    dword ptr [ebp-10]               ; 本机机器码-2141985928,为浮点表示的,将其放在寄存器ST0位
0044BC52    DD5D F0         fstp    qword ptr [ebp-10]               ; 机器码从ST0位弹出
0044BC55    DD45 F0         fld     qword ptr [ebp-10]               ; 机器码为浮点表示的,堆栈中显示
0044BC58    DC0D D9C44000   fmul    qword ptr [40C4D9]               ; 乘以111,结果为浮点表示的
0044BC5E    DD5D E8         fstp    qword ptr [ebp-18]               ; 将ST0位的运算结果弹出
0044BC61    DD45 E8         fld     qword ptr [ebp-18]               ; 堆栈中显示
0044BC64    DC05 E1C44000   fadd    qword ptr [40C4E1]               ; 再加上3000074
0044BC6A    DD5D E0         fstp    qword ptr [ebp-20]               ; 此处的真码已经出现,237757437934为真码,是以浮点表示的
0044BC6D    68 01060080     push    80000601                         ; 算法为当前机器码*111+3000074
0044BC72    FF75 E4         push    dword ptr [ebp-1C]
0044BC75    FF75 E0         push    dword ptr [ebp-20]
0044BC78    68 01000000     push    1
0044BC7D    BB 68010000     mov     ebx, 168
0044BC82    E8 EC010000     call    0044BE73
0044BC87    83C4 10         add     esp, 10
0044BC8A    8945 DC         mov     dword ptr [ebp-24], eax
0044BC8D    8B45 DC         mov     eax, dword ptr [ebp-24]
0044BC90    50              push    eax
0044BC91    8B5D FC         mov     ebx, dword ptr [ebp-4]
0044BC94    85DB            test    ebx, ebx
0044BC96    74 09           je      short 0044BCA1
0044BC98    53              push    ebx
0044BC99    E8 C9010000     call    0044BE67
0044BC9E    83C4 04         add     esp, 4
0044BCA1    58              pop     eax
0044BCA2    8945 FC         mov     dword ptr [ebp-4], eax
0044BCA5    6A FF           push    -1
0044BCA7    6A 08           push    8
0044BCA9    68 37020116     push    16010237
0044BCAE    68 30020152     push    52010230
0044BCB3    E8 C1010000     call    0044BE79                         ; 取假码111111111
0044BCB8    83C4 10         add     esp, 10
0044BCBB    8945 F8         mov     dword ptr [ebp-8], eax
0044BCBE    8B45 FC         mov     eax, dword ptr [ebp-4]
0044BCC1    50              push    eax
0044BCC2    FF75 F8         push    dword ptr [ebp-8]
0044BCC5    E8 7D39FDFF     call    0041F647                         ; 真码在CX中,假码在DX中
0044BCCA    83C4 08         add     esp, 8
0044BCCD    83F8 00         cmp     eax, 0
0044BCD0    B8 00000000     mov     eax, 0
0044BCD5    0F94C0          sete    al
0044BCD8    8945 F4         mov     dword ptr [ebp-C], eax
0044BCDB    8B5D F8         mov     ebx, dword ptr [ebp-8]           ; 将假码传给EBX
0044BCDE    85DB            test    ebx, ebx                         ; 比较EBX是否为空
0044BCE0    74 09           je      short 0044BCEB                   ; 若不为空则不跳
0044BCE2    53              push    ebx
0044BCE3    E8 7F010000     call    0044BE67
0044BCE8    83C4 04         add     esp, 4
0044BCEB    837D F4 00      cmp     dword ptr [ebp-C], 0
0044BCEF    0F84 71000000   je      0044BD66                         ; 这里改NOP后可以成功显示注册成功!
0044BCF5    68 04000080     push    80000004
0044BCFA    6A 00           push    0
0044BCFC    68 E9C44000     push    0040C4E9                         ; 提示:
0044BD01    68 01030080     push    80000301
0044BD06    6A 00           push    0
0044BD08    68 40000000     push    40
0044BD0D    68 04000080     push    80000004
0044BD12    6A 00           push    0
0044BD14    68 F0C44000     push    0040C4F0                         ; 注册成功!请重启程序!
0044BD19    68 03000000     push    3
0044BD1E    BB 00030000     mov     ebx, 300
0044BD23    E8 4B010000     call    0044BE73
0044BD28    83C4 28         add     esp, 28
0044BD2B    68 01030080     push    80000301
0044BD30    6A 00           push    0
0044BD32    68 3D2E5910     push    10592E3D
0044BD37    68 04000080     push    80000004
0044BD3C    6A 00           push    0
0044BD3E    68 CBC04000     push    0040C0CB                        
0044BD43    68 01030080     push    80000301
0044BD48    6A 00           push    0
0044BD4A    68 04000000     push    4
0044BD4F    68 03000000     push    3
0044BD54    BB A4060000     mov     ebx, 6A4
0044BD59    E8 15010000     call    0044BE73
0044BD5E    83C4 28         add     esp, 28
0044BD61    E9 36000000     jmp     0044BD9C
0044BD66    68 04000080     push    80000004
0044BD6B    6A 00           push    0
0044BD6D    68 E9C44000     push    0040C4E9                         ; 提示:
0044BD72    68 01030080     push    80000301
0044BD77    6A 00           push    0
0044BD79    68 10000000     push    10
0044BD7E    68 04000080     push    80000004
0044BD83    6A 00           push    0
0044BD85    68 07C54000     push    0040C507                         ; 请输入正确的注册码!
0044BD8A    68 03000000     push    3
0044BD8F    BB 00030000     mov     ebx, 300
0044BD94    E8 DA000000     call    0044BE73
0044BD99    83C4 28         add     esp, 28
0044BD9C    8B5D FC         mov     ebx, dword ptr [ebp-4]
0044BD9F    85DB            test    ebx, ebx
0044BDA1    74 09           je      short 0044BDAC
0044BDA3    53              push    ebx
0044BDA4    E8 BE000000     call    0044BE67
0044BDA9    83C4 04         add     esp, 4
0044BDAC    8BE5            mov     esp, ebp
0044BDAE    5D              pop     ebp
0044BDAF    C3              retn                                   

算法

取当前机器码乘以111再加上3000074

例如-2141985928*111+3000074

易语言注册机代码如下

.版本 2

.程序集 窗口程序集1
.程序集变量 算法, 双精度小数型

.子程序 _按钮1_被单击

算法 = 到数值 (编辑框1.内容) × 到数值 (111) + 到数值 (3000074)
编辑框2.内容 = 到文本 (算法)
置剪辑板文本 (编辑框2.内容)
标签3.标题 = “注册码已经复制,请直接粘贴使用!”

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
置剪辑板文本 (编辑框2.内容)
标签3.标题 = “注册码已经复制,请直接粘贴使用!”

易语言搞剪辑板好好简单啊
2009-4-28 11:23
0
雪    币: 9
活跃值: (127)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
3
恩,都是写现成的,直接调用就可以了!
2009-4-28 11:47
0
雪    币: 421
活跃值: (83)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
浮点运算的,没接触过
有没有程序?也好让实践下
2009-4-28 12:39
0
雪    币: 9
活跃值: (127)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
5
用易语言自己写一个就行

直接拿注册机的代码来调试就可以了!
2009-4-28 16:22
0
游客
登录 | 注册 方可回帖
返回
//