-
-
[原创]VB软件XYPlorer 5.40.0017的注册算法
-
发表于: 2006-11-14 06:41 6256
-
【破文标题】VB软件XYPlorer 5.40.0017的注册算法
【破文作者】XXNB
【作者邮箱】支持PYG
【作者主页】http://free.ys168.com/?binbinbin7456
【破解工具】OD
【破解平台】xpsp2
【软件名称】XYPlorer 5.40.0017
【软件大小】800KB
【原版下载】http://www.newhua.com/soft/37383.htm
【保护方式】名+码
【软件简介】是一款多标签文件管理器,具有强大的文件搜索功能,各种预览功能,可以高度自定义的界面,以及一系列方法可以让你的电脑有效地自动处理周期性的任务。XYplorer是一个工具而非玩具,名副其实,绝对是高级用户和电脑高手苦苦寻找的浏览器替代品。
【破解声明】向大侠们学习!!!只为学习!
------------------------------------------------------------------------
【破解过程】
------------------------------------------------------------------------
感觉这个软件的注册部分就是一个Crackme。特别那个错误的信息框。
1、由于是vb程序,所以我们先让它运行起来,然后输入注册信息:名:binbinbin;码:123456789。用__vbaStrCmp断点可以找到下面代码。
0055BDA0 > \55 push ebp
0055BDA1 . 8BEC mov ebp, esp
0055BDA3 . 83EC 0C sub esp, 0C
0055BDA6 . 68 56894000 push <jmp.&MSVBVM50.__vbaExceptHand>; SE 处理程序安装
0055BDAB . 64:A1 0000000>mov eax, dword ptr fs:[0]
0055BDB1 . 50 push eax
0055BDB2 . 64:8925 00000>mov dword ptr fs:[0], esp
0055BDB9 . 81EC C0000000 sub esp, 0C0
0055BDBF . 53 push ebx
0055BDC0 . 56 push esi
0055BDC1 . 8B75 08 mov esi, dword ptr [ebp+8]
0055BDC4 . 57 push edi
0055BDC5 . 8BC6 mov eax, esi
0055BDC7 . 83E6 FE and esi, FFFFFFFE
0055BDCA . 8965 F4 mov dword ptr [ebp-C], esp
0055BDCD . 83E0 01 and eax, 1
0055BDD0 . 8B0E mov ecx, dword ptr [esi]
0055BDD2 . C745 F8 D0584>mov dword ptr [ebp-8], 004058D0
0055BDD9 . 56 push esi
0055BDDA . 8945 FC mov dword ptr [ebp-4], eax
0055BDDD . 8975 08 mov dword ptr [ebp+8], esi
0055BDE0 . FF51 04 call dword ptr [ecx+4]
0055BDE3 . 8B16 mov edx, dword ptr [esi]
0055BDE5 . 33DB xor ebx, ebx
0055BDE7 . 56 push esi
0055BDE8 . 895D E8 mov dword ptr [ebp-18], ebx
0055BDEB . 895D E4 mov dword ptr [ebp-1C], ebx
0055BDEE . 895D E0 mov dword ptr [ebp-20], ebx
0055BDF1 . 895D DC mov dword ptr [ebp-24], ebx
0055BDF4 . 895D D8 mov dword ptr [ebp-28], ebx
0055BDF7 . 895D D4 mov dword ptr [ebp-2C], ebx
0055BDFA . 895D C4 mov dword ptr [ebp-3C], ebx
0055BDFD . 895D B4 mov dword ptr [ebp-4C], ebx
0055BE00 . 895D A4 mov dword ptr [ebp-5C], ebx
0055BE03 . 895D 94 mov dword ptr [ebp-6C], ebx
0055BE06 . 895D 84 mov dword ptr [ebp-7C], ebx
0055BE09 . FF92 04030000 call dword ptr [edx+304]
0055BE0F . 8B3D 18A65D00 mov edi, dword ptr [<&MSVBVM50.__v>; MSVBVM50.__vbaObjSet
0055BE15 . 50 push eax
0055BE16 . 8D45 D8 lea eax, dword ptr [ebp-28]
0055BE19 . 50 push eax
0055BE1A . FFD7 call edi ; <&MSVBVM50.__vbaObjSet>
0055BE1C . 8B08 mov ecx, dword ptr [eax]
0055BE1E . 8D55 E8 lea edx, dword ptr [ebp-18]
0055BE21 . 52 push edx
0055BE22 . 50 push eax
0055BE23 . 8985 50FFFFFF mov dword ptr [ebp-B0], eax
0055BE29 . FF91 A0000000 call dword ptr [ecx+A0]
0055BE2F . 3BC3 cmp eax, ebx
0055BE31 . 7D 18 jge short 0055BE4B
0055BE33 . 8B8D 50FFFFFF mov ecx, dword ptr [ebp-B0]
0055BE39 . 68 A0000000 push 0A0
0055BE3E . 68 B49D4200 push 00429DB4
0055BE43 . 51 push ecx
0055BE44 . 50 push eax
0055BE45 . FF15 C0A55D00 call dword ptr [<&MSVBVM50.__vbaHre>; MSVBVM50.__vbaHresultCheckObj
0055BE4B > 8B55 E8 mov edx, dword ptr [ebp-18] ; 习惯了,vb的程序一般都是这样出现用户名的
0055BE4E . 8D4D E4 lea ecx, dword ptr [ebp-1C]
0055BE51 . 895D E8 mov dword ptr [ebp-18], ebx
0055BE54 . FF15 9CA85D00 call dword ptr [<&MSVBVM50.__vbaStr>; MSVBVM50.__vbaStrMove
0055BE5A . 8B16 mov edx, dword ptr [esi]
0055BE5C . 56 push esi
0055BE5D . FF92 08030000 call dword ptr [edx+308]
0055BE63 . 50 push eax
0055BE64 . 8D45 D4 lea eax, dword ptr [ebp-2C]
0055BE67 . 50 push eax
0055BE68 . FFD7 call edi
0055BE6A . 8B08 mov ecx, dword ptr [eax]
0055BE6C . 8D55 E0 lea edx, dword ptr [ebp-20]
0055BE6F . 52 push edx
0055BE70 . 50 push eax
0055BE71 . 8985 48FFFFFF mov dword ptr [ebp-B8], eax
0055BE77 . FF91 A0000000 call dword ptr [ecx+A0]
0055BE7D . 3BC3 cmp eax, ebx
0055BE7F . 7D 18 jge short 0055BE99
0055BE81 . 8B8D 48FFFFFF mov ecx, dword ptr [ebp-B8]
0055BE87 . 68 A0000000 push 0A0
0055BE8C . 68 B49D4200 push 00429DB4
0055BE91 . 51 push ecx
0055BE92 . 50 push eax
0055BE93 . FF15 C0A55D00 call dword ptr [<&MSVBVM50.__vbaHre>; MSVBVM50.__vbaHresultCheckObj
0055BE99 > 8D55 E4 lea edx, dword ptr [ebp-1C]
0055BE9C . 52 push edx
0055BE9D . E8 1E0C0000 call 0055CAC0 ; 这个是算法call。。必须跟进《《《《《《《《《《《《==
0055BEA2 . 8BD0 mov edx, eax ; 这里出现了真正的注册码了。很简单啦
0055BEA4 . 8D4D DC lea ecx, dword ptr [ebp-24]
0055BEA7 . FF15 9CA85D00 call dword ptr [<&MSVBVM50.__vbaStr>; MSVBVM50.__vbaStrMove
0055BEAD . 50 push eax ; 真码入栈
0055BEAE . 8B45 E0 mov eax, dword ptr [ebp-20] ; 取出假码
0055BEB1 . 50 push eax
0055BEB2 . FF15 B0A65D00 call dword ptr [<&MSVBVM50.__vbaStr>; MSVBVM50.__vbaStrCmp 我们会中断在这里了。
0055BEB8 . F7D8 neg eax ; 上面的就是比较函数了。
0055BEBA . 1BC0 sbb eax, eax
0055BEBC . 8D4D E0 lea ecx, dword ptr [ebp-20]
0055BEBF . 40 inc eax
0055BEC0 . 8D55 DC lea edx, dword ptr [ebp-24]
0055BEC3 . F7D8 neg eax
0055BEC5 . 8985 40FFFFFF mov dword ptr [ebp-C0], eax
0055BECB . 51 push ecx
0055BECC . 8D45 E4 lea eax, dword ptr [ebp-1C]
0055BECF . 52 push edx
0055BED0 . 50 push eax
0055BED1 . 6A 03 push 3
0055BED3 . FF15 1CA85D00 call dword ptr [<&MSVBVM50.__vbaFre>; MSVBVM50.__vbaFreeStrList
0055BED9 . 83C4 10 add esp, 10
0055BEDC . 8D4D D4 lea ecx, dword ptr [ebp-2C]
0055BEDF . 8D55 D8 lea edx, dword ptr [ebp-28]
0055BEE2 . 51 push ecx
0055BEE3 . 52 push edx
0055BEE4 . 6A 02 push 2
0055BEE6 . FF15 54A55D00 call dword ptr [<&MSVBVM50.__vbaFre>; MSVBVM50.__vbaFreeObjList
0055BEEC . 83C4 0C add esp, 0C
0055BEEF . 66:399D 40FFF>cmp word ptr [ebp-C0], bx
0055BEF6 . 0F84 15020000 je 0055C111 《《《《《《《《《《《《===这个就不用说了,应该是关键跳了
0055BEFC . 8B06 mov eax, dword ptr [esi]
------------------------------------------------------------------------------------------------------------------------
2、一步到位。跟进算法call 0055CAC0 得到下面代码。请看注释,很简单的,适合newbie
0055CAC0 $ 55 push ebp
0055CAC1 . 8BEC mov ebp, esp
0055CAC3 . 83EC 0C sub esp, 0C
0055CAC6 . 68 56894000 push <jmp.&MSVBVM50.__vbaExceptHand>; SE 处理程序安装
0055CACB . 64:A1 0000000>mov eax, dword ptr fs:[0]
0055CAD1 . 50 push eax
0055CAD2 . 64:8925 00000>mov dword ptr fs:[0], esp
0055CAD9 . 83EC 78 sub esp, 78
0055CADC . 53 push ebx
0055CADD . 56 push esi
0055CADE . 57 push edi
0055CADF . 33DB xor ebx, ebx
0055CAE1 . BA 480E4400 mov edx, 00440E48 ; UNICODE "v34"
0055CAE6 . 8D4D D4 lea ecx, dword ptr [ebp-2C]
0055CAE9 . 8965 F4 mov dword ptr [ebp-C], esp
0055CAEC . C745 F8 48594>mov dword ptr [ebp-8], 00405948
0055CAF3 . 895D E4 mov dword ptr [ebp-1C], ebx
0055CAF6 . 895D E0 mov dword ptr [ebp-20], ebx
0055CAF9 . 895D D8 mov dword ptr [ebp-28], ebx
0055CAFC . 895D D4 mov dword ptr [ebp-2C], ebx
0055CAFF . 895D D0 mov dword ptr [ebp-30], ebx
0055CB02 . 895D CC mov dword ptr [ebp-34], ebx
0055CB05 . 895D C8 mov dword ptr [ebp-38], ebx
0055CB08 . 895D B8 mov dword ptr [ebp-48], ebx
0055CB0B . 895D A8 mov dword ptr [ebp-58], ebx
0055CB0E . 895D 98 mov dword ptr [ebp-68], ebx
0055CB11 . FF15 0CA85D00 call dword ptr [<&MSVBVM50.__vbaStr>; MSVBVM50.__vbaStrCopy
0055CB17 . 8D45 B8 lea eax, dword ptr [ebp-48]
0055CB1A . C745 C0 40000>mov dword ptr [ebp-40], 40
0055CB21 . 50 push eax
0055CB22 . 6A 28 push 28
0055CB24 . C745 B8 02000>mov dword ptr [ebp-48], 2
0055CB2B . FF15 64A75D00 call dword ptr [<&MSVBVM50.#606>] ; MSVBVM50.rtcStringBstr
0055CB31 . 8B3D 9CA85D00 mov edi, dword ptr [<&MSVBVM50.__v>; MSVBVM50.__vbaStrMove
0055CB37 . 8BD0 mov edx, eax ; 一个奇怪的字符串出现了
0055CB39 . 8D4D E4 lea ecx, dword ptr [ebp-1C]
0055CB3C . FFD7 call edi ; <&MSVBVM50.__vbaStrMove>
0055CB3E . 8D4D B8 lea ecx, dword ptr [ebp-48]
0055CB41 . FF15 1CA55D00 call dword ptr [<&MSVBVM50.__vbaFre>; MSVBVM50.__vbaFreeVar
0055CB47 . 8B55 08 mov edx, dword ptr [ebp+8] ; @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
0055CB4A . 8D4D E4 lea ecx, dword ptr [ebp-1C]
0055CB4D . 51 push ecx
0055CB4E . 6A 01 push 1
0055CB50 . 8B02 mov eax, dword ptr [edx] ; 取出用户名
0055CB52 . 68 FFFFFF3F push 3FFFFFFF
0055CB57 . 50 push eax ; 用户名入栈
0055CB58 . FF15 9CA65D00 call dword ptr [<&MSVBVM50.#527>] ; MSVBVM50.rtcUpperCaseBstr
0055CB5E . 8BD0 mov edx, eax ; 转成大写
0055CB60 . 8D4D D0 lea ecx, dword ptr [ebp-30]
0055CB63 . FFD7 call edi
0055CB65 . 8B4D D4 mov ecx, dword ptr [ebp-2C] ; 取出固定字符串“v34”
0055CB68 . 50 push eax
0055CB69 . 51 push ecx
0055CB6A . FF15 90A55D00 call dword ptr [<&MSVBVM50.__vbaStr>; MSVBVM50.__vbaStrCat
0055CB70 . 8BD0 mov edx, eax ; 一看就知道是连接函数。得到"BINBINBINv34"
0055CB72 . 8D4D CC lea ecx, dword ptr [ebp-34]
0055CB75 . FFD7 call edi
0055CB77 . 50 push eax
0055CB78 . 53 push ebx
0055CB79 . FF15 F8A85D00 call dword ptr [<&MSVBVM50.__vbaMid>; MSVBVM50.__vbaMidStmtBstr
0055CB7F . 8D55 CC lea edx, dword ptr [ebp-34]
0055CB82 . 8D45 D0 lea eax, dword ptr [ebp-30]
0055CB85 . 52 push edx
0055CB86 . 50 push eax
0055CB87 . 6A 02 push 2
0055CB89 . FF15 1CA85D00 call dword ptr [<&MSVBVM50.__vbaFre>; MSVBVM50.__vbaFreeStrList
0055CB8F . 8B4D E4 mov ecx, dword ptr [ebp-1C] ; 上面搞这么多就是为了得到这个长字符串"BINBINBINv34@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
0055CB92 . 83C4 0C add esp, 0C
0055CB95 . 51 push ecx
0055CB96 . FF15 24A55D00 call dword ptr [<&MSVBVM50.__vbaLen>; MSVBVM50.__vbaLenBstr
0055CB9C . 8985 7CFFFFFF mov dword ptr [ebp-84], eax ; 得到连接后字符串的长度
0055CBA2 . BE 01000000 mov esi, 1
0055CBA7 > 3BB5 7CFFFFFF cmp esi, dword ptr [ebp-84] ; 循环开始 ebp-84存放的是那个长字符串的长度
0055CBAD . 7F 61 jg short 0055CC10
0055CBAF . 8B45 E4 mov eax, dword ptr [ebp-1C] ; 就是这个长字符串了
0055CBB2 . 8D55 B8 lea edx, dword ptr [ebp-48]
0055CBB5 . 52 push edx
0055CBB6 . 50 push eax
0055CBB7 . C745 C0 01000>mov dword ptr [ebp-40], 1
0055CBBE . C745 B8 02000>mov dword ptr [ebp-48], 2
0055CBC5 . FF15 24A55D00 call dword ptr [<&MSVBVM50.__vbaLen>; MSVBVM50.__vbaLenBstr
0055CBCB . 8B55 E4 mov edx, dword ptr [ebp-1C]
0055CBCE . B9 01000000 mov ecx, 1
0055CBD3 . 2BCE sub ecx, esi ; 这里相当于每次减掉1
0055CBD5 . 03C1 add eax, ecx
0055CBD7 . 50 push eax
0055CBD8 . 52 push edx
0055CBD9 . FF15 70A65D00 call dword ptr [<&MSVBVM50.#631>] ; MSVBVM50.rtcMidCharBstr
0055CBDF . 8BD0 mov edx, eax
0055CBE1 . 8D4D D0 lea ecx, dword ptr [ebp-30]
0055CBE4 . FFD7 call edi
0055CBE6 . 50 push eax
0055CBE7 . FF15 60A55D00 call dword ptr [<&MSVBVM50.#516>] ; MSVBVM50.rtcAnsiValueBstr
0055CBED . 0FBFC0 movsx eax, ax ; 就是那个“@”的ascii码值
0055CBF0 . 0FAFC6 imul eax, esi ; 乘以循环次数
0055CBF3 . 8D4D D0 lea ecx, dword ptr [ebp-30]
0055CBF6 . 03D8 add ebx, eax ; 结果累加存放在ebx
0055CBF8 . FF15 00A95D00 call dword ptr [<&MSVBVM50.__vbaFre>; MSVBVM50.__vbaFreeStr
0055CBFE . 8D4D B8 lea ecx, dword ptr [ebp-48]
0055CC01 . FF15 1CA55D00 call dword ptr [<&MSVBVM50.__vbaFre>; MSVBVM50.__vbaFreeVar
0055CC07 . B8 01000000 mov eax, 1
0055CC0C . 03F0 add esi, eax ; 这里相当于计算器每次加1
0055CC0E .^ EB 97 jmp short 0055CBA7 ; 往回去循环
0055CC10 > 895D E0 mov dword ptr [ebp-20], ebx ; 这里的ebx就是上面的运算结果了
0055CC13 . 8D4D A8 lea ecx, dword ptr [ebp-58]
0055CC16 . DB45 E0 fild dword ptr [ebp-20] ; 结果成为实数
0055CC19 . 8D55 B8 lea edx, dword ptr [ebp-48]
0055CC1C . 51 push ecx
0055CC1D . 52 push edx
0055CC1E . C745 B8 05000>mov dword ptr [ebp-48], 5 ; 【ebp-48】=5
0055CC25 . DC0D 30594000 fmul qword ptr [405930] ; 乘以实数12.34。这个我们可以跟过去看代码405930。是个固定值
0055CC2B . DD5D C0 fstp qword ptr [ebp-40] ; 存储。st=692027.19999999999200
0055CC2E . FF15 E4A65D00 call dword ptr [<&MSVBVM50.#564>] ; 然后把后面的小数部分去掉(相当于取整)就是真码的后半部分
0055CC34 . 85C0 test eax, eax
0055CC36 . 7D 07 jge short 0055CC3F ; 这里这些vb相关的函数可以到我的网络U盘查找相应解析
0055CC38 . 50 push eax
0055CC39 . FF15 04A55D00 call dword ptr [<&MSVBVM50.__vbaHre>; MSVBVM50.__vbaHresultCheck
0055CC3F > 8D45 A8 lea eax, dword ptr [ebp-58]
0055CC42 . 8D4D 98 lea ecx, dword ptr [ebp-68]
0055CC45 . 50 push eax
0055CC46 . 51 push ecx
0055CC47 . FF15 FCA75D00 call dword ptr [<&MSVBVM50.__vbaVar>; MSVBVM50.__vbaVarInt
0055CC4D . 50 push eax
0055CC4E . FF15 40A85D00 call dword ptr [<&MSVBVM50.__vbaI4V>; MSVBVM50.__vbaI4Var
0055CC54 . 8BF0 mov esi, eax ; 这里的eax的10进制就是真码的后面部分了。692027
0055CC56 . 8D55 A8 lea edx, dword ptr [ebp-58]
0055CC59 . 8D45 B8 lea eax, dword ptr [ebp-48]
0055CC5C . 52 push edx
0055CC5D . 50 push eax
0055CC5E . 6A 02 push 2
0055CC60 . FF15 3CA55D00 call dword ptr [<&MSVBVM50.__vbaFre>; MSVBVM50.__vbaFreeVarList
0055CC66 . 8BC6 mov eax, esi ; 000A8F3B(692027)
0055CC68 . B9 1A000000 mov ecx, 1A ; 常数1A
0055CC6D . 99 cdq
0055CC6E . F7F9 idiv ecx ; 除以常数1A
0055CC70 . 83C4 0C add esp, 0C
0055CC73 . 83C2 41 add edx, 41 ; 余数+41H
0055CC76 . 52 push edx ; 这里得到的16进制将装成相应字符,成为真码的前半部分
0055CC77 . FF15 C4A75D00 call dword ptr [<&MSVBVM50.#537>] ; MSVBVM50.rtcBstrFromAnsi
0055CC7D . 8BD0 mov edx, eax
0055CC7F . 8D4D D0 lea ecx, dword ptr [ebp-30]
0055CC82 . FFD7 call edi
0055CC84 . 8B1D 90A55D00 mov ebx, dword ptr [<&MSVBVM50.__v>; MSVBVM50.__vbaStrCat
0055CC8A . 50 push eax
0055CC8B . 68 C8724200 push 004272C8
0055CC90 . FFD3 call ebx ; <&MSVBVM50.__vbaStrCat>
0055CC92 . 8BD0 mov edx, eax ; 这里就是真码的前半部分
0055CC94 . 8D4D CC lea ecx, dword ptr [ebp-34]
0055CC97 . FFD7 call edi
0055CC99 . 50 push eax
0055CC9A . 56 push esi ; 真码的后半部分
0055CC9B . FF15 08A55D00 call dword ptr [<&MSVBVM50.__vbaStr>; MSVBVM50.__vbaStrI4
0055CCA1 . 8BD0 mov edx, eax ; 装成10进制
0055CCA3 . 8D4D C8 lea ecx, dword ptr [ebp-38]
0055CCA6 . FFD7 call edi
0055CCA8 . 50 push eax
0055CCA9 . FFD3 call ebx ; 连接函数
0055CCAB . 8BD0 mov edx, eax ; 最终的真正注册码出现了
0055CCAD . 8D4D D8 lea ecx, dword ptr [ebp-28]
0055CCB0 . FFD7 call edi
0055CCB2 . 8D55 C8 lea edx, dword ptr [ebp-38]
0055CCB5 . 8D45 CC lea eax, dword ptr [ebp-34]
0055CCB8 . 52 push edx
0055CCB9 . 8D4D D0 lea ecx, dword ptr [ebp-30]
0055CCBC . 50 push eax
0055CCBD . 51 push ecx
0055CCBE . 6A 03 push 3
0055CCC0 . FF15 1CA85D00 call dword ptr [<&MSVBVM50.__vbaFre>; MSVBVM50.__vbaFreeStrList
0055CCC6 . 83C4 10 add esp, 10
0055CCC9 . 9B wait
0055CCCA . 68 20CD5500 push 0055CD20
0055CCCF . EB 3E jmp short 0055CD0F
睡觉中~,注册机明天看看
.版本 2
.程序集 窗口程序集1
.子程序 _按钮1_被单击
.局部变量 name, 文本型
.局部变量 str1, 文本型
.局部变量 str2, 文本型
.局部变量 longstr, 文本型
.局部变量 len, 整数型
.局部变量 daostr, 文本型
.局部变量 i, 整数型
.局部变量 ebx, 整数型
.局部变量 sum, 整数型
.局部变量 code2, 整数型
.局部变量 code1, 整数型
.局部变量 tou, 文本型
.局部变量 code, 文本型
name = 到大写 (编辑框1.内容)
str1 = “v34”
str2 = “@@@@@@@@@@@@@@@@@@@@@@@@@@@@”
longstr = name + str1 + str2
len = 取文本长度 (longstr)
daostr = 倒转字符串 (longstr)
.计次循环首 (len, i)
ebx = 取代码 (daostr, i)
ebx = ebx × i
sum = sum + ebx
.计次循环尾 ()
code2 = 取整 (sum × 12.34)
code1 = code2 % 26
code1 = code1 + 65
tou = 字符 (code1)
code = tou + “-” + 到文本 (code2)
编辑框2.内容 = code
.子程序 倒转字符串, 文本型
.参数 string, 文本型
.局部变量 k, 整数型
.局部变量 RChar, 文本型
.局部变量 LChar, 文本型
.局部变量 WChar, 文本型
.判断循环首 (k < 取文本长度 (string))
LChar = 取文本左边 (string, 取文本长度 (string) - k)
RChar = 取文本右边 (LChar, 1)
k = k + 1
WChar = WChar + RChar
.判断循环尾 ()
返回 (WChar)
【算法总结】
------------------------------------------------------------------------
1、这个算法简直就是一个Crackme。通过对用户名的运算就得到真码。
2、首先将输入的用户名变成大写然后连接两个固定字符串。结果得到类似:BINBINBINv34@@@@@@@@@@@@@@@@@@@@@@@@@@@@
3、循环从后面开始取上面那串字符串的Ascii码值,然后乘以循环次数。最后累加在ebx。返回ebx
4、ebx的值装成10进制实数后和12.34相乘。取结果的整数部分就是真码的后半部分。如我的是:692027(10进制)
5、上面得到的整数部分除以1A。取余数加上41H。得到的值查表装成字符。其实就是要得到大写字母。如我的是:4C(“L”)
6、最后的真码就是连接起来。如我的是:L-692027。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
- 寻求TMD壳带壳调试下断点的办法。 5505
- 求目标进程嗲用某DLL的基地址?? 3928
- 如何断下VB调用的Shell命令函数???请进 4116
- [求助]脱一个ASPR壳的DLL 遇到的问题,菜鸟求助啊 3848
- 已经运行成功的程序,如何从内存完美的Dump出来? 4865