短信群发专家3.0 商务版分析 下

时间:2005-12-20 来源: 作者: 点击:
016F:0057B701 8D45F4LEAEAX,[EBP-0C] 016F:0057B704 8B55F0MOVEDX,[EBP-10] 016F:0057B707 E8A488E8FFCALL00403FB0 016F:0057B70C 8B45F4MOVEAX,[EBP-0C] 016F:0057B70F E8848AE8FFCALL00404198 016F:0057B714 8BF0MOVESI,EAX 016F:0057B716 85F6TESTESI,ESI 016F:005
  
016F:0057B701 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B704 8B55F0           MOV      EDX,[EBP-10]
016F:0057B707 E8A488E8FF       CALL     00403FB0
016F:0057B70C 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B70F E8848AE8FF       CALL     00404198
016F:0057B714 8BF0             MOV      ESI,EAX
016F:0057B716 85F6             TEST     ESI,ESI
016F:0057B718 0F8E0D010000     JNG      NEAR 0057B82B
016F:0057B71E BB01000000       MOV      EBX,01
                              //赋值1

016F:0057B723 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B726 807C18FF41       CMP      BYTE [EAX+EBX-01],41
                              // 比较这个地方的字符是否等于ASCII*41 (A)
                              // 如果是的话就到下面换成ASCII*37 (1)

016F:0057B72B 750D             JNZ      0057B73A
016F:0057B72D 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B730 E8338CE8FF       CALL     00404368
016F:0057B735 C64418FF31       MOV      BYTE [EAX+EBX-01],31
                              // 是A的话就换成1

016F:0057B73A 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B73D 807C18FF43       CMP      BYTE [EAX+EBX-01],43
                              // 比较这个地方的字符是否等于ASCII*43 (C)
                              // 如果是的话就到下面换成ASCII*32 (2)

016F:0057B742 750D             JNZ      0057B751
016F:0057B744 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B747 E81C8CE8FF       CALL     00404368
016F:0057B74C C64418FF32       MOV      BYTE [EAX+EBX-01],32
                              // 是C的话就换成2

016F:0057B751 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B754 807C18FF44       CMP      BYTE [EAX+EBX-01],44
                              // 比较这个地方的字符是否等于ASCII*44 (D)
                              // 如果是的话就到下面换成ASCII*33 (3)

016F:0057B759 750D             JNZ      0057B768
016F:0057B75B 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B75E E8058CE8FF       CALL     00404368
016F:0057B763 C64418FF33       MOV      BYTE [EAX+EBX-01],33
                              // 是D的话就换成3

016F:0057B768 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B76B 807C18FF46       CMP      BYTE [EAX+EBX-01],46
                              // 比较这个地方的字符是否等于ASCII*46 (F)
                              // 如果是的话就到下面换成ASCII*32 (2)

016F:0057B770 750D             JNZ      0057B77F
016F:0057B772 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B775 E8EE8BE8FF       CALL     00404368
016F:0057B77A C64418FF32       MOV      BYTE [EAX+EBX-01],32
                              // 是F的话就换成2

016F:0057B77F 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B782 807C18FF42       CMP      BYTE [EAX+EBX-01],42
                              // 比较这个地方的字符是否等于ASCII*42 (B)
                              // 如果是的话就到下面换成ASCII*36 (6)

016F:0057B787 750D             JNZ      0057B796
016F:0057B789 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B78C E8D78BE8FF       CALL     00404368
016F:0057B791 C64418FF36       MOV      BYTE [EAX+EBX-01],36
                              // 是B的话就换成6

016F:0057B796 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B799 807C18FF45       CMP      BYTE [EAX+EBX-01],45
                              // 比较这个地方的字符是否等于ASCII*45 (E)
                              // 如果是的话就到下面换成ASCII*36 (6)

016F:0057B79E 750D             JNZ      0057B7AD
016F:0057B7A0 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B7A3 E8C08BE8FF       CALL     00404368
016F:0057B7A8 C64418FF36       MOV      BYTE [EAX+EBX-01],36
                              // 是E的话就换成6

016F:0057B7AD 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B7B0 807C18FF48       CMP      BYTE [EAX+EBX-01],48
                              // 比较这个地方的字符是否等于ASCII*48 (H)
                              // 如果是的话就到下面换成ASCII*34 (4)

016F:0057B7B5 750D             JNZ      0057B7C4
016F:0057B7B7 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B7BA E8A98BE8FF       CALL     00404368
016F:0057B7BF C64418FF34       MOV      BYTE [EAX+EBX-01],34
                              // 是H的话就换成4

016F:0057B7C4 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B7C7 807C18FF30       CMP      BYTE [EAX+EBX-01],30
                              // 比较这个地方的字符是否等于ASCII*30 (0)
                              // 如果是的话就到下面换成ASCII*38 (8)

016F:0057B7CC 750D             JNZ      0057B7DB
016F:0057B7CE 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B7D1 E8928BE8FF       CALL     00404368
016F:0057B7D6 C64418FF38       MOV      BYTE [EAX+EBX-01],38
                              // 是0的话就换成8

016F:0057B7DB 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B7DE 807C18FF47       CMP      BYTE [EAX+EBX-01],47
                              // 比较这个地方的字符是否等于ASCII*47 (G)
                              // 如果是的话就到下面换成ASCII*33 (3)

016F:0057B7E3 750D             JNZ      0057B7F2
016F:0057B7E5 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B7E8 E87B8BE8FF       CALL     00404368
016F:0057B7ED C64418FF33       MOV      BYTE [EAX+EBX-01],33
                              // 是G的话就换成3

016F:0057B7F2 8B45F4           MOV      EAX,[EBP-0C]
016F:0057B7F5 807C18FF4B       CMP      BYTE [EAX+EBX-01],4B
                              // 比较这个地方的字符是否等于ASCII*4B (K)
                              // 如果是的话就到下面换成ASCII*37 (7)

016F:0057B7FA 750D             JNZ      0057B809
016F:0057B7FC 8D45F4           LEA      EAX,[EBP-0C]
016F:0057B7FF E8648BE8FF       CALL     00404368
016F:0057B804 C64418FF37       MOV      BYTE [EAX+EBX-01],37
                              // 是K的话就换成7

016F:0057B809 8D45D0           LEA      EAX,[EBP-30]
016F:0057B80C 8B55F4           MOV      EDX,[EBP-0C]
016F:0057B80F 8A541AFF         MOV      DL,[EDX+EBX-01]
016F:0057B813 E8A888E8FF       CALL     004040C0
016F:0057B818 8B55D0           MOV      EDX,[EBP-30]
016F:0057B81B 8D45EC           LEA      EAX,[EBP-14]
016F:0057B81E E87D89E8FF       CALL     004041A0
016F:0057B823 43               INC      EBX
016F:0057B824 4E               DEC      ESI
016F:0057B825 0F85F8FEFFFF     JNZ      NEAR 0057B723
                              // 跳回去继续
                              // 这里是把0057B6F9处EAX指向地址的值
                              // 把这些值的A/C/D/F/B/E/H/0/G/K/
                              // 转换成相对应的数字1/2/3/2/6/6/4/8/3/7/

016F:0057B82B 8B45F8           MOV      EAX,[EBP-08]
016F:0057B82E 8B55EC           MOV      EDX,[EBP-14]
                              // 哈哈,这里就是真的注册码,真难炼!

016F:0057B831 E83687E8FF       CALL     00403F6C
016F:0057B836 33C0             XOR      EAX,EAX
016F:0057B838 5A               POP      EDX
016F:0057B839 59               POP      ECX
016F:0057B83A 59               POP      ECX

------------------------------------------------------------------
【总    结】:
内存注册机:
中断地址:00572859
中断次数:1
第一字节:E8
字节长度:5
注册码-->寄存器-->EAX

注册信息保存在注册表的:
[HKEY_USERS\.DEFAULT\Identities\More]
"Passwd"="112193626115776466717169132261"
"UsrName"="Yock"
删除就变成未注册!
------------------------------------------------------------------
算法:由于我的语文水平有限,表达得不好,请原谅!
(一下全是16进制数的运算)
用户名的字符依次覆盖到(sef1sn8y3420dnu2ofps)上面,如果用户名是Yock(4位),那么就变成了(Yocksn8y3420dnu2ofps)
再取(Yocksn8y3420dnu2ofps)前面的15[机器码的位数]位!
[ 机器码是PY-C9183234-2FA(15位), 那么取前面15位的话,就变成了Yocksn8y3420dnu ]
[ 假如机器码某一位是ASCII*41=A的话就变成ASCII*66=f来运算! ]
之后Yocksn8y3420dnu的每一位的ASCII码和机器码的每一位ASCII码对应加在一起,再加上机器码当前位的位数!
最后把上面的结果依次连在一起!
连再一起的值的每一位要是等于A/C/D/F/B/E/H/0/G/K/的话,就把它们转换成相对应的数字1/2/3/2/6/6/4/8/3/7/
[ 也就是下面这样 ]
A/C/D/F/B/E/H/0/G/K/
转换成:
1/2/3/2/6/6/4/8/3/7/
最后的结果就是真的注册码了!
-------------------------------------------------------------------
最后在这里真心感谢你花了那么多时间看这篇文章!谢谢了...
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容