- UID
- 63478
注册时间2009-11-1
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
【文章标题】: 超级Flv视频转换器算法分析带算号器
【作 者】: 冰河之刃
【邮 箱】: [email][email protected][/email]
【主 页】: [url]http://user.qzone.qq.com/290113866[/url]
【QQ 号】: 290113866
【软件名称】: 超级Flv视频转换器 1.30
【大 小】: 1.15M
【下载地址】: 自己搜索下载
【加壳方式】: 无壳
【保护方式】: 重启验证
【编写语言】: Borland Delphi 6.0 - 7.0
【工 具】: peid,od,双手和大脑
【操作平台】: Windows xp3
【软件介绍】: flv格式转换器,优酷土豆全是flv格式的视频,呵呵
【作者声明】: 相互交流,共同进步!
--------------------------------------------------------------------------------
【详细过程】
先介绍一下这个软件,功能上面挺全面的。
启动时会验证是否是注册用户,若不是则弹出注册窗体。
未注册时标题栏会显示未注册只能转换20%的视频。
点注册后,若注册码错误则弹出错误提示,若正确则提示信息已经记录下来了,重启后就可验证是否正确。
注册信息保存在注册表中:[HKEY_LOCAL_MACHINE\SOFTWARE\mp4soft\flvconverter]
-------------------------------------启动时候的流程----------------------------------------------------
004C0224 . 8B00 MOV EAX,DWORD PTR DS:[EAX] ; 在启动时判断注册表中数据是否合法
004C0226 . E8 11CAFFFF CALL flv.004BCC3C ; 关键call
004C022B . 8B55 BC MOV EDX,DWORD PTR SS:[EBP-44] ; 在EDX中放入注册码
004C022E . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004C0231 . 8B80 00050000 MOV EAX,DWORD PTR DS:[EAX+500] ; 在EAX中放入假码
004C0237 . E8 FC44F4FF CALL flv.00404738 ; 比较注册码是否为真,为假则跳向失败处
004C023C . 75 0C JNZ SHORT flv.004C024A ; 若跳转实现 则证明 注册码错误
004C023E . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004C0241 . C680 F4040000>MOV BYTE PTR DS:[EAX+4F4],0
004C0248 . EB 31 JMP SHORT flv.004C027B ; 此jmp可跳过错误提示
004C024A > 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004C024D . C680 F4040000>MOV BYTE PTR DS:[EAX+4F4],1
004C0254 . 8D55 B8 LEA EDX,DWORD PTR SS:[EBP-48]
004C0257 . A1 1C7E4C00 MOV EAX,DWORD PTR DS:[4C7E1C]
004C025C . E8 876EFAFF CALL flv.004670E8
004C0261 . 8D45 B8 LEA EAX,DWORD PTR SS:[EBP-48]
004C0264 . BA B4054C00 MOV EDX,flv.004C05B4 ; (试用版只能转换源文件20%的时间!)
004C0269 . E8 8643F4FF CALL flv.004045F4
004C026E . 8B55 B8 MOV EDX,DWORD PTR SS:[EBP-48]
004C0271 . A1 1C7E4C00 MOV EAX,DWORD PTR DS:[4C7E1C]
004C0276 . E8 9D6EFAFF CALL flv.00467118
004C027B > 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 上面的jmp跳向此处。。。
---------------------------------------------算法call--------------------------------------------------
004BCC3C /$ 55 PUSH EBP ; 算法开始
004BCC3D |. 8BEC MOV EBP,ESP
004BCC3F |. 51 PUSH ECX
004BCC40 |. B9 04000000 MOV ECX,4
004BCC45 |> 6A 00 /PUSH 0 ; 依次获取用户名
004BCC47 |. 6A 00 |PUSH 0
004BCC49 |. 49 |DEC ECX
004BCC4A |.^ 75 F9 \JNZ SHORT flv.004BCC45
004BCC4C |. 51 PUSH ECX
004BCC4D |. 874D FC XCHG DWORD PTR SS:[EBP-4],ECX
004BCC50 |. 53 PUSH EBX
004BCC51 |. 56 PUSH ESI
004BCC52 |. 57 PUSH EDI
004BCC53 |. 8BF9 MOV EDI,ECX
004BCC55 |. 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
004BCC58 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 把从EDX中得到的用户名装入eax
004BCC5B |. E8 7C7BF4FF CALL flv.004047DC
004BCC60 |. 33C0 XOR EAX,EAX ; 清空EAX
004BCC62 |. 55 PUSH EBP
004BCC63 |. 68 FDCD4B00 PUSH flv.004BCDFD
004BCC68 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004BCC6B |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004BCC6E |. 8BC7 MOV EAX,EDI
004BCC70 |. E8 9B76F4FF CALL flv.00404310
004BCC75 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004BCC78 |. E8 6F79F4FF CALL flv.004045EC
004BCC7D |. 8BF0 MOV ESI,EAX
004BCC7F |. 85F6 TEST ESI,ESI
004BCC81 |. 7E 26 JLE SHORT flv.004BCCA9
004BCC83 |. BB 01000000 MOV EBX,1 ; 将EBX中放入初始值1
004BCC88 |> 8D4D EC /LEA ECX,DWORD PTR SS:[EBP-14]
004BCC8B |. 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] ; 得到用户名,放入EAX中
004BCC8E |. 0FB64418 FF |MOVZX EAX,BYTE PTR DS:[EAX+EBX-1] ; 依次取用户名的每一位
004BCC93 |. 33D2 |XOR EDX,EDX ; 清空EDX
004BCC95 |. E8 4AC0F4FF |CALL flv.00408CE4 ; 将取到 的字母转换为16进制
004BCC9A |. 8B55 EC |MOV EDX,DWORD PTR SS:[EBP-14] ; 将转换后的数字放入EDX中
004BCC9D |. 8D45 F8 |LEA EAX,DWORD PTR SS:[EBP-8]
004BCCA0 |. E8 4F79F4FF |CALL flv.004045F4 ; 将转换为16进制后的数字累加起来
004BCCA5 |. 43 |INC EBX ; 将EBX加一
004BCCA6 |. 4E |DEC ESI ; 将ESI减一,注意寄存器中数据
004BCCA7 |.^ 75 DF \JNZ SHORT flv.004BCC88
004BCCA9 |> 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; 将转换为16进制后的数字装入EAX中
004BCCAC |. E8 3B79F4FF CALL flv.004045EC
004BCCB1 |. 8BF0 MOV ESI,EAX
004BCCB3 |. 85F6 TEST ESI,ESI
004BCCB5 |. 7E 2C JLE SHORT flv.004BCCE3
004BCCB7 |. BB 01000000 MOV EBX,1 ; 下面的循环主要是实现对上面数字串的逆序
004BCCBC |> 8B45 F8 /MOV EAX,DWORD PTR SS:[EBP-8] ; 得到转换为16进制后的数字串
004BCCBF |. E8 2879F4FF |CALL flv.004045EC
004BCCC4 |. 2BC3 |SUB EAX,EBX ; EAX减去EBX
004BCCC6 |. 8B55 F8 |MOV EDX,DWORD PTR SS:[EBP-8] ; 将EDX中放入最后的数字
004BCCC9 |. 8A1402 |MOV DL,BYTE PTR DS:[EDX+EAX]
004BCCCC |. 8D45 E8 |LEA EAX,DWORD PTR SS:[EBP-18]
004BCCCF |. E8 2478F4FF |CALL flv.004044F8 ; 依次正向获取每一位数字
004BCCD4 |. 8B55 E8 |MOV EDX,DWORD PTR SS:[EBP-18] ; 在EDX中放入已经截掉对应位数的数字串
004BCCD7 |. 8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C]
004BCCDA |. E8 1579F4FF |CALL flv.004045F4
004BCCDF |. 43 |INC EBX ; 计算位数呢,循环的条件
004BCCE0 |. 4E |DEC ESI
004BCCE1 |.^ 75 D9 \JNZ SHORT flv.004BCCBC
004BCCE3 |> 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
004BCCE6 |. 50 PUSH EAX
004BCCE7 |. B9 04000000 MOV ECX,4 ; 注意ECX和EDX中的数字。。。
004BCCEC |. BA 01000000 MOV EDX,1
004BCCF1 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; 在EAX中放入逆序后的数字串
004BCCF4 |. E8 537BF4FF CALL flv.0040484C
004BCCF9 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
004BCCFC |. 50 PUSH EAX
004BCCFD |. B9 04000000 MOV ECX,4 ; 再次注意ECX和EDX中的数字。。。
004BCD02 |. BA 05000000 MOV EDX,5
004BCD07 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
004BCD0A |. E8 3D7BF4FF CALL flv.0040484C ; 此call截取前4位数字
004BCD0F |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004BCD12 |. E8 D578F4FF CALL flv.004045EC
004BCD17 |. 83F8 04 CMP EAX,4 ; 比较EAX中数字是否大于等于4,若符合则跳
004BCD1A |. 7D 2F JGE SHORT flv.004BCD4B
004BCD1C |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004BCD1F |. E8 C878F4FF CALL flv.004045EC
004BCD24 |. 8BD8 MOV EBX,EAX
004BCD26 |. 83FB 03 CMP EBX,3
004BCD29 |. 7F 20 JG SHORT flv.004BCD4B
004BCD2B |> 8D4D E4 /LEA ECX,DWORD PTR SS:[EBP-1C]
004BCD2E |. 8BC3 |MOV EAX,EBX
004BCD30 |. C1E0 02 |SHL EAX,2
004BCD33 |. 33D2 |XOR EDX,EDX
004BCD35 |. E8 AABFF4FF |CALL flv.00408CE4
004BCD3A |. 8B55 E4 |MOV EDX,DWORD PTR SS:[EBP-1C]
004BCD3D |. 8D45 F8 |LEA EAX,DWORD PTR SS:[EBP-8]
004BCD40 |. E8 AF78F4FF |CALL flv.004045F4
004BCD45 |. 43 |INC EBX
004BCD46 |. 83FB 04 |CMP EBX,4
004BCD49 |.^ 75 E0 \JNZ SHORT flv.004BCD2B
004BCD4B |> 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; 获取第5到第8位数字,也共4位
004BCD4E |. E8 9978F4FF CALL flv.004045EC
004BCD53 |. 83F8 04 CMP EAX,4
004BCD56 |. 7D 2F JGE SHORT flv.004BCD87
004BCD58 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
004BCD5B |. E8 8C78F4FF CALL flv.004045EC
004BCD60 |. 8BD8 MOV EBX,EAX
004BCD62 |. 83FB 03 CMP EBX,3
004BCD65 |. 7F 20 JG SHORT flv.004BCD87
004BCD67 |> 8D4D E0 /LEA ECX,DWORD PTR SS:[EBP-20]
004BCD6A |. 8BC3 |MOV EAX,EBX
004BCD6C |. C1E0 02 |SHL EAX,2
004BCD6F |. 33D2 |XOR EDX,EDX
004BCD71 |. E8 6EBFF4FF |CALL flv.00408CE4
004BCD76 |. 8B55 E0 |MOV EDX,DWORD PTR SS:[EBP-20]
004BCD79 |. 8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C]
004BCD7C |. E8 7378F4FF |CALL flv.004045F4
004BCD81 |. 43 |INC EBX
004BCD82 |. 83FB 04 |CMP EBX,4
004BCD85 |.^ 75 E0 \JNZ SHORT flv.004BCD67
004BCD87 |> 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10] ; 下面一行获取一个固定值 flv67u986e
004BCD8A |. BA 14CE4B00 MOV EDX,flv.004BCE14 ; flv67u986e
004BCD8F |. E8 1476F4FF CALL flv.004043A8
004BCD94 |. 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
004BCD97 |. 50 PUSH EAX
004BCD98 |. B9 04000000 MOV ECX,4 ; 注意ECX和EDX中的数字。。。
004BCD9D |. BA 01000000 MOV EDX,1
004BCDA2 |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
004BCDA5 |. E8 A27AF4FF CALL flv.0040484C ; 此CALL截取 flv67u986e 中的前4位数字
004BCDAA |. FF75 DC PUSH DWORD PTR SS:[EBP-24]
004BCDAD |. 68 28CE4B00 PUSH flv.004BCE28 ; -
004BCDB2 |. FF75 F8 PUSH DWORD PTR SS:[EBP-8] ; 获得逆序后的第0到4位数字
004BCDB5 |. 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
004BCDB8 |. 50 PUSH EAX
004BCDB9 |. B9 05000000 MOV ECX,5 ; 还是要注意ECX和EDX中的数字。。。
004BCDBE |. BA 05000000 MOV EDX,5
004BCDC3 |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
004BCDC6 |. E8 817AF4FF CALL flv.0040484C ; 此CALL从 flv67u986e 中的第5位开始,截5位数字
004BCDCB |. FF75 D8 PUSH DWORD PTR SS:[EBP-28] ; 截完后也就是 7u986 了
004BCDCE |. 68 28CE4B00 PUSH flv.004BCE28 ; -
004BCDD3 |. FF75 F4 PUSH DWORD PTR SS:[EBP-C] ; 获取逆序后第4到第8之间的数字
004BCDD6 |. 8BC7 MOV EAX,EDI
004BCDD8 |. BA 06000000 MOV EDX,6
004BCDDD |. E8 CA78F4FF CALL flv.004046AC
004BCDE2 |. 33C0 XOR EAX,EAX
004BCDE4 |. 5A POP EDX
004BCDE5 |. 59 POP ECX
004BCDE6 |. 59 POP ECX
004BCDE7 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
004BCDEA |. 68 04CE4B00 PUSH flv.004BCE04
004BCDEF |> 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
004BCDF2 |. BA 0A000000 MOV EDX,0A
004BCDF7 |. E8 3875F4FF CALL flv.00404334 ; 此call将前面计算出的连起来拼成注册码
004BCDFC \. C3 RETN
004BCDFD .^ E9 526EF4FF JMP flv.00403C54
004BCE02 .^ EB EB JMP SHORT flv.004BCDEF
004BCE04 . 5F POP EDI
004BCE05 . 5E POP ESI
004BCE06 . 5B POP EBX
004BCE07 . 8BE5 MOV ESP,EBP
004BCE09 . 5D POP EBP
004BCE0A . C3 RETN ; 要返回了,算法结束
----------------------------------------点注册按钮后的流程--------------------------------------------
004BD02A . 55 PUSH EBP ; 按注册按钮时程序的流程
004BD02B . 68 69D14B00 PUSH flv.004BD169
004BD030 . 64:FF30 PUSH DWORD PTR FS:[EAX]
004BD033 . 64:8920 MOV DWORD PTR FS:[EAX],ESP
004BD036 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004BD039 . E8 B2FEFFFF CALL flv.004BCEF0 ; 点注册后会调用此call计算注册码
004BD03E . 84C0 TEST AL,AL ; 比较一下
004BD040 . 0F84 DB000000 JE flv.004BD121 ; 看是否是合法用户,不是则跳向失败处
004BD046 . 33C0 XOR EAX,EAX
004BD048 . 55 PUSH EBP ; 上面若注册码正确就将注册信息保存在注册表中
004BD049 . 68 05D14B00 PUSH flv.004BD105
004BD04E . 64:FF30 PUSH DWORD PTR FS:[EAX]
004BD051 . 64:8920 MOV DWORD PTR FS:[EAX],ESP
004BD054 . B2 01 MOV DL,1
004BD056 . A1 E8B34300 MOV EAX,DWORD PTR DS:[43B3E8]
004BD05B . E8 88E4F7FF CALL flv.0043B4E8
004BD060 . 8BD8 MOV EBX,EAX
004BD062 . BA 02000080 MOV EDX,80000002
004BD067 . 8BC3 MOV EAX,EBX
004BD069 . E8 1AE5F7FF CALL flv.0043B588
004BD06E . B1 01 MOV CL,1
004BD070 . BA 80D14B00 MOV EDX,flv.004BD180 ; Software\mp4soft\flvconverter
004BD075 . 8BC3 MOV EAX,EBX
004BD077 . E8 70E5F7FF CALL flv.0043B5EC
004BD07C . 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
004BD07F . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004BD082 . 8B80 04030000 MOV EAX,DWORD PTR DS:[EAX+304]
004BD088 . E8 5BA0FAFF CALL flv.004670E8
004BD08D . 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
004BD090 . 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
004BD093 . E8 D0B8F4FF CALL flv.00408968
004BD098 . 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
004BD09B . BA A8D14B00 MOV EDX,flv.004BD1A8 ; Name
004BD0A0 . 8BC3 MOV EAX,EBX
004BD0A2 . E8 E1E6F7FF CALL flv.0043B788
004BD0A7 . 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
004BD0AA . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004BD0AD . 8B80 08030000 MOV EAX,DWORD PTR DS:[EAX+308]
004BD0B3 . E8 30A0FAFF CALL flv.004670E8
004BD0B8 . 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14]
004BD0BB . 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
004BD0BE . E8 A5B8F4FF CALL flv.00408968
004BD0C3 . 8B4D F0 MOV ECX,DWORD PTR SS:[EBP-10]
004BD0C6 . BA B8D14B00 MOV EDX,flv.004BD1B8 ; Pass
004BD0CB . 8BC3 MOV EAX,EBX
004BD0CD . E8 B6E6F7FF CALL flv.0043B788
004BD0D2 . 8BC3 MOV EAX,EBX
004BD0D4 . E8 E763F4FF CALL flv.004034C0
004BD0D9 . 6A 40 PUSH 40
004BD0DB . 68 C0D14B00 PUSH flv.004BD1C0 ; 软件注册
004BD0E0 . 68 CCD14B00 PUSH flv.004BD1CC ; 已保存了注册信息!下次启动本程序时将会对你的注册码进行验证,如注册码正确,本程序所有功能限制将被解除,您成为我们正式版本用户!
004BD0E5 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004BD0E8 . E8 E307FBFF CALL flv.0046D8D0
004BD0ED . 50 PUSH EAX ; |hOwner
004BD0EE . E8 5DA1F4FF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
004BD0F3 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004BD0F6 . E8 6D6DFCFF CALL flv.00483E68
004BD0FB . 33C0 XOR EAX,EAX
004BD0FD . 5A POP EDX
004BD0FE . 59 POP ECX
004BD0FF . 59 POP ECX
004BD100 . 64:8910 MOV DWORD PTR FS:[EAX],EDX
004BD103 . EB 36 JMP SHORT flv.004BD13B
004BD105 .^ E9 9668F4FF JMP flv.004039A0
004BD10A . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004BD10D . E8 566DFCFF CALL flv.00483E68
004BD112 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004BD115 . E8 12FDFFFF CALL flv.004BCE2C
004BD11A . E8 E96BF4FF CALL flv.00403D08
004BD11F . EB 1A JMP SHORT flv.004BD13B
004BD121 > 6A 40 PUSH 40 ; 下面就是注册失败的提示了
004BD123 . 68 4CD24B00 PUSH flv.004BD24C ; Register
004BD128 . 68 58D24B00 PUSH flv.004BD258 ; 注册码错误,请重新输入用户名和注册码!
--------------------------------------------注册的算法步骤-------------------------------------------
1.将用户名转换为16进制的字符串。
2.将16进制的字符串再逆序一次,即原来是123的变成321了。
3.将固定字符串flv67u986e先截前4位即flv6,再从第5位截到第8位,又截了5位数字即7u986。
4.将逆序后的字符串截2次,第一次从第1到第4位,第二次从第5位到第8位。(注:从第5位是包括第5位在内的)
5.将上面的4部分连接并加上横杠连成注册码。
其中flv6为第一部分,逆序后的前4位为第二部分,7u986为第三部分(第二三部分之间不要横杠),第5到第8位的
就是第四部分了。
说明:
1.对固定字符串flv67u986e的处理纯属多此一举,只是在拢乱视线而已。
写算号器时就不必再按他的步骤截固定的字符串了。
真要照此程序那么做了,跟傻子有何区别。
编程是要会变通的,有一定技巧性。
2.用户名不支持中文名。。。中文名也能追出注册码,但有问题。可自己追一下。
-------------------------------------------C#算号器源码---------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace KeyGenMaker
{
public partial class Form1 : Form, System.IFormatProvider
{
public Form1()
{
InitializeComponent();
}
#region IFormatProvider 成员
public object GetFormat(Type formatType)
{
throw new Exception("The method or operation is not implemented.");
}
#endregion
private void keymakeit_Click(object sender, EventArgs e)
{
try
{
string hexall = "";//声明一个全局变量存储转换为16进制后的字符串
string str = txt_string.Text.Trim();//从界面中获取用户名
for (int i = 0; i < str.Length; i++)//此for循环将用户名转换为16进制
{
char b = (char)str[i];
int t = (int)b;
hexall += Convert.ToString(t, 16).ToString();//将ascii码转换为16进制
}
int j = hexall.Length;//获取转换成16进制的字符串的长度
string hou = "";//声明一个变量
while (j > 0)//此while循环将上面的字符串逆序
{
hou += hexall[j - 1].ToString();//累加逆序后的字符串
j--;
}
//重新声明一个变量接收逆序后的字符串,并将其转换为大写格式。自己在追码时想一下为什么?
string dao = hou.ToString().ToUpper();
string one = "flv6-";//注册码第一部分
string two = dao.Substring(0, 4);//截取前4位
string three = "7u986-";//注册码第三部分
string four = dao.Substring(4, 4);//从第5位开始截4位则截到第8位
txt_ok.Text = one + two + three + four;//将注册码的各部分串起来并赋值给界面中的注册码框
}
catch
{
MessageBox.Show("注意检查输入的格式,不支持中文用户名", "提示:");
}
}
private void about_Click(object sender, EventArgs e)
{
about a = new about();
a.Show();
}
}
}
----------------------------------------------就到这里吧----------------------------------------------
--------------------------------------------------------------------------------
【总结】
有些call不必跟进,F8过后注意看寄存器和堆栈就知道他的作用了。
在进行算法分析时,要有一定的预见性。有些循环也不必进。
可先用黑吧专用破解计算器计算一下用户名,看其ascii码和16进制格式的内容和你追的时候的某些数据是否相同。
相同的话,呵呵。。。速度会加快一些的哦。。。
--------------------------------------------------------------------------------
【版权声明】: 本文原创自冰河之刃, 转载请注明作者并保持文章的完整, 谢谢!
--------------------------------------------------- |
|