|
|
|
[求助][求助]哎,最近几天都在啃这个软件,没啃下来……
额,,有困难,,我没办法了…… |
|
[原创][邀请码已发]新手破解 二级C题库[申请邀请码]
今天花了几个小时看了一下那软件,,先是在网上下了安装包,也就是用序列号注册激活的,, 下载地址:http://www.onlinedown.net/soft/33805.htm 软件用vb写的,,没加壳,, 就用OD载入,想找到序列号或者可以爆破的地方,,没找到(我的宝贵的时间呀~~)…… 然后就用自己买的光盘来安装,,看看能不能突破检测光盘,,关键的文件时加了壳的,, ……最后没能成功 两张图: 算了,,耗不起时间了…… 这种软件是我不能解决的…… |
|
|
|
[原创][邀请码已发]新手破解 二级C题库[申请邀请码]
我一直准备试试破解的是计算机二级考试的C++ 试题的光盘版的光盘验证和激活版的注册码,,是 无忧 考试系列的,,就记得当时买完光盘,与同学的一笔,,安装序列号一样!!而且试用的两套题和网上下的里面的一样……额,还花了30RMB的……就像解决它…… 看到了同类的软件的过程,,呵呵,,太晚了,,要睡了,,只有下次看了,,lz也到这么晚,,很辛苦啦~~~ |
|
[讨论][求助]结果找上了我,,谁能提示一下相关的步骤?
这个软件与QQAlbum 1.12 稍有不同,,但也差不多,, 可以找到004D78E4这个关键地方,,(先要利用内存及相关函数(GetWindowText与Messagebox)断点在点下注册后用F8到达这些数据区域),, 在004D78E4处下断点,,几次F9后寄存器窗口会出现注册码, 若是F8步进,关注0012E7F4处,此处会先于上面的情况出注册码,0012E804处则是注册码,, 在软件界面点软件注册后步进 , 右下角窗口0012E580出现乱码,再步进,寄存器窗口出现user.dat,步进,乱码消失,0012E7F4出现相似的乱码,但注册码与机器码也都出来了,,软件窗口输入任意注册码点注册后,,步进,,0012E6E4处出现的与0012E7F4应该一样乱码,(其中有两行是注册码与机器码),,再看0012F05C 和 0012F060处,分别出现了机器码和输入的注册码,,0012E550和其上不远处有三行显示输入的注册码,,(还有很多地方有b986e8adad09e1413e0cf5ccfbea9c967f436e389c0d3348411f0990583c10f977fa73d30fc0a476b7505eddabfca25585aa,不知是什么字符串) (备注(第二天):这里应该是用了读写文件方面的函数断点,,今天没用这个断点就没能复现这个过程。) (备注(第三天):“0012E7F4出现相似的乱码,但注册码与机器码也都出来了”,这里应该不是最先出现机器码或注册码的地方,至少有一点,,这些乱码的出现是有顺序的,,今天就发现0012E7F4下面的0012E804出现机器码,,但乱码还未出现,,今天好像也没怎么看到这里出现乱码。今天得出: 004212F6 8B75 0C MOV ESI,DWORD PTR SS:[EBP+C] 004212F9 |. 57 PUSH EDI ; //ESI中首次出现机器码 。。。 当然,这是在没有user.dat的文件的情况下) 两下F9,,寄存器窗口显示出了正确的注册码,而0012E6E4与0012F05C处没有变化,,0012E47C,,0012E458处显示的是注册码,, {{ (断点:内存访问,,004121D5(GetWindowText函数),,,00405A1D(上面所说的读取机器码的地方)) 在左下侧窗口查找,并将0012E6E4处的注册码改为想要的注册码,,运行回到软件界面会显示注册成功。软件界面上也没了注册的选项。。。其实在这里出现之前就改过,,但0012E6E4这个地址处出现的还是真实的注册码,,,,,由此可判断,,,显示的 注册成功与否 是这里决定的。。 (备注(第三天):生成的user.dat文件中还是输入的假注册码,通不过重启验证,,这次试验对找爆破点有帮助,,但是很粗,,不太好采纳,,今天也没有尝试复现这个过程,,相比于其他的意义不大。。) 下面是一些记录(一步步F8过来的(只有几个地方跳)) ************************************************************* 是删了原有的文件重新开始的,,但是先前利用修改0012E6E4的注册码使其出现注册成功画面的…… (备注(第二天):这句话可能有些不准确,,内存中出现了先前修改的假注册码,,是真的在调试之前把相关文件删了还是软件在注册表上有残留?) (备注(第三天):可以确定,,输入假注册码并使其注册成功的那次产生的user.dat肯定没有被删去) 大部分时间用的断点: 断点 地址 模块 激活 反汇编 注释 00405A1D QQFlash1 始终 CALL QQFlash1.004171F7 00405A2C QQFlash1 已禁止 CALL QQFlash1.004171F7 004064F0 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.DeleteFil 00406AAE QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.WriteFile 00408BF1 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.DeleteFil 00408F8F QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.DeleteFil 0040FCD8 QQFlash1 已禁止 CALL DWORD PTR DS:[<&USER32.MessageBoxA 004121D5 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTe 00415EC4 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTe 00417226 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTe 00417447 QQFlash1 已禁止 CALL DWORD PTR DS:[<&ADVAPI32.RegQueryV 00417AF3 QQFlash1 已禁止 CALL DWORD PTR DS:[<&ADVAPI32.RegQueryV 0041B6DB QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.ReadFile> 0041B717 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.WriteFile 0042133D QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTe 004303E9 QQFlash1 已禁止 MOVZX CX,BYTE PTR DS:[EDX] 00436468 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.WriteFile 00439F8A QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.ReadFile> 0043A042 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.ReadFile> 0043A26E QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.ReadFile> 0043AFA5 QQFlash1 已禁止 JMP SHORT QQFlash1.0043B007 0043E917 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.WriteFile 0043E958 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.WriteFile 0043EA72 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.WriteFile 0043EB15 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.WriteFile 0043EBEC QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.WriteFile 0043EC34 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.WriteFile 0044820C QQFlash1 已禁止 ADC BL,BYTE PTR DS:[EAX] 004D78E4 QQFlash1 始终 CALL QQFlash1.004D70CD 004D78E9 QQFlash1 仅一次 MOV EDX,DWORD PTR SS:[EBP+4] 004DAC79 QQFlash1 仅一次 JB SHORT QQFlash1.004DAC0B 004DB00B QQFlash1 仅一次 MOV DWORD PTR SS:[ESP],EBP 点击软件注册后…… ****** 004D78E4 . E8 E4F7FFFF CALL QQFlash1.004D70CD ******* 00409431 |. E8 90180000 CALL QQFlash1.0040ACC6 后 0012E580上一行出现变化,显示了注 册码(上次修改的注册码), 同时 0012A3E4 6141A890 UNICODE "Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\" 00409423 |. E8 9E180000 CALL QQFlash1.0040ACC6 很多在一起,,并且步进时0012E580附近的 乱码在变化, 00409469 |. E8 58180000 CALL QQFlash1.0040ACC6 过后,0012E58C出现机器码, 00406C50 . E8 F22A0000 CALL QQFlash1.00409747 过后,0012E580处乱码包括注册码与机器码 消失,, *****************先读取能读取到的注册信息,再计算机器码,判断是否注册了? (CALL QQFlash1.0040ACC6 计算机器码?) 004D78E4 . E8 E4F7FFFF CALL QQFlash1.004D70CD 后,出现了变化(没注意) 此时 0012E7F7 处出现了 原始的 0010E580处的乱码及注册码机器码(之前的修改没什么用) ******************************重新计算注册码与机器码? 按了几次F8后,,user.dat文件终于可以看了,,看到的是正常用正确注册码注册后生成的文件。。 00421359 |> \56 PUSH ESI ; /Text = "19LZCEIPTIMWAZCPTADEHVY" F9 …… 注册窗口出来了………… 0041723E |. E8 99A00000 CALL QQFlash1.004212DC ;\QQFlash1.004212DC 到00405A2C . E8 C6170100 CALL QQFlash1.004171F7; \QQFlash1.004171F7 时 寄存器窗口的两 行修改的机器码消失,,,,这步后,,0012F060出现了输入的注册码,,, 00417231 |. E8 EB0DFFFF CALL QQFlash1.00408021 后,寄存器窗口出现了两行输入的注册码 004D78E4 . E8 E4F7FFFF CALL QQFlash1.004D70CD 之后,0012E6E4 处出现了 原始的 0010E580处的乱码及注册码机器码 (有按F9) 0041B717 |. FF15 C0824400 CALL DWORD PTR DS:[<&KERNEL32.WriteFile>>; \WriteFile 程序异常 终止…… 关闭后,,user.dat文件正常,,其中所保存的注册码是修改了的注册码。。(注意:在上面过程中,,遇到原始的机器码或注册码就改掉了,,改法:机器码的前三位换为QQAlbum 2.3 的机器码的前三位,,正确注册码的前三位换为三个0,,) 004D78E4 . E8 E4F7FFFF CALL QQFlash1.004D70CD 很重要,, ***************************************************************** 只在004D70CD处设置断点,,一路F9,,……,,然后注册码就出现了…… (备注(第二天):先要利用内存及相关函数(GetWindowText与Messagebox)断点在点下注册后用F8到达这些数据区域 (有些忘了,,不敢确信)) }}} +++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 又花了一个晚上来看这个软件,,,今天对51Album1.0.exe在寻找注册码的过程中无意地又爆破了它,又回来在看看这个QQFlash.exe1.3(本来就准备放弃了的),结果到现在没结果,,, 但QQFlash1.3有些不同。。。 1,,前面说的通过修改内存中的值使其报为注册成功,,今天想想,,,是一个很好的爆破思路,,但是今天怎么也出现不了那种情况了,, 应该是断点的设置问题,,记得昨天晚上对于文件方面的函数也下了断点,现在没时间试了, 2,,这里把现在用的断点列出来 (当然还有内存断点) 地址 模块 激活 反汇编 注释 00405A1D QQFlash1 始终 CALL QQFlash1.004171F7 0040FC65 QQFlash1 已禁止 JE SHORT QQFlash1.0040FC95 0040FCD8 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.MessageBoxA>] 004121D5 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] 00415EC4 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] 00417226 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] 0042133D QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] 004D78E4 QQFlash1 始终 CALL QQFlash1.004D70CD (注意由004D78E4跳转到004D70CD $ /E9 E8110000 JMP QQFlash1.004D82BA 应该是关键的地方,,跳来跳去的。。 ) 在输入注册码并点确定后,F9几次,,到了0040FCD8 |. FF15 C4844400 CALL DWORD PTR DS:[<&USER32.MessageBoxA>> 处,,F7步入,, 右下角的窗口会出现注册成功或失败的字样,,因此判断正误的在此之前,,。现在又想到,上面提的改内存使其出现注册成功字样是一条非 常好的线索。。。或者找两台电脑,,或者装虚拟机,,看看正确的注册码和错误的注册码到底是在哪里出现了不同。。 下面的今天调试时随手记的东西,, ************************************ 再回来看 QQFlash1.3 004DB000 .^\E9 DAC8FFFF JMP QQFlash1.004D78DF(改掉此处运行后还是会注册失败,,说明判断在此之前,) 004D7A0F . /E9 F4080000 JMP QQFlash1.004D8308( ) 00417231 |. E8 EB0DFFFF CALL QQFlash1.00408021 00405A2C . E8 C6170100 CALL QQFlash1.004171F7 ; \QQFlash1.004171F7 0040FDC2 |. /74 07 JE SHORT QQFlash1.0040FDCB (nop掉此处,还是注册失败) 004199D5 |. E8 BC62FFFF CALL QQFlash1.0040FC96 (到此处时 跳到注册失败部分?) 004094A7 |. E8 0481FFFF CALL QQFlash1.004015B0(相邻的这个调用很多,,在检验注册码?) 0040954F |. /7E 1A JLE SHORT QQFlash1.0040956B(nop后出错) 00401B58 |. /75 0A JNZ SHORT QQFlash1.00401B64 (注意了一下,好像没什么) ************************************ 附: ************************************************** ——————————————————————————————————— 破解51Album1.0.exe过程(可以独立成文的……) OD载入,,运行,点软件注册,, 对函数MessageboxA ,,GetWindowsTextA,,设置断点,并设置内存访问断点, ,软件的注册码处输入任意字符(1234567890),点注册,,, OD界面一二十下F8,,当寄存器窗口ECX处出现一行应该是注册码的字符串时, ,注意到代码窗口处停在00406E7E /0F85 D5000000 JNZ 51Album1.00406F59 ****************************,, 无意地将JNZ 改为JE,,再F8,,就跳到了注册成功界面……看来00406E7E处就 是关键跳,,改了先保存了再试,,,让软件判断注册码正误,,果然是“注册 成功”,,再去看看产生的user.dat文件,,,竟然机器码和真实的注册码都在 里面,,,将user.dat文件删去,,再运行修改的后保存的文件,,点软件注册 ,,再直接点注册,注册成功出来了。。。 ——————————————————————————————————— **************************************************** ++++++++++++++++++++++++++++++++++++ 第三天再继续,, 早上起来,,删去了QQFlash.exe的相关的其他文件,,就OD一步步地F8,,记录如下 记录一下用的断点【【断点表 1】】 0042B813 |. /75 0A JNZ SHORT QQFlash1.0042B81F 00406A44 |. FF15 BC824400 CALL DWORD PTR DS:[<&KERNEL32.CreateFileA>] ; \CreateFileA 004019AD . FF15 F4824400 CALL DWORD PTR DS:[<&KERNEL32.LoadLibraryA>] ; \LoadLibraryA 00401A02 . 8D85 E8FBFFFF LEA EAX,DWORD PTR SS:[EBP-418] (应该步入?) 00401A20 . E8 A7530100 CALL QQFlash1.00416DCC (启动程序) (此时点击软件注册?) 00421359 |> \56 PUSH ESI ; /Text = "11DZCEIPTIMWAZCPTADEHVY" ESI=00B4BE28, (ASCII "11DZCEIPTIMWAZCPTADEHVY") (由00421332跳至) 跳转来自 00421332, 00421345 0042EAF0 $ 8B5424 0C MOV EDX,DWORD PTR SS:[ESP+C] 本地调用来自 004025A8, 004025E1, 0040EADE, 004112DB, 00412AE9, 00413A39, 004156C3, 0041672E, 00417BD9, 00418171, 0041A80A, 0041BA67, 0041E8D3, 0041E8F1, 0041E980, 0041F7AC, 0041FD51, 00420116, 00420146, 004201C5, 00420256, 00420E8E, 0042105F, M) 分析了很长很长时间后,将11D修改为19L堆栈窗口出现0012E804 |00B4BE28 ASCII "19LZCEIPTIMWAZCPTADEHVY" F8 ,, 00405A2C 后,回到00421332,,F8(这次未跳转至00421359) 00421343 |. 3BC7 CMP EAX,EDI 后堆栈窗口0012F804处修改后的机器码消失。(几步后又发现了) { 发现 0012B064 00A40062 UNICODE " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" } 00421345 处未跳转,,00421357处跳转(不确定) 0042136F \. C2 0800 RETN 8后来到00417243处 00417246 \. C2 0C00 RETN 0C后来到00405A31处 00405A3B . E8 17170100 CALL QQFlash1.00417157 ;\QQFlash1.00417157 00416A11 . /74 28 JE SHORT QQFlash1.00416A3B 未跳转 00416A19 . /74 20 JE SHORT QQFlash1.00416A3B 跳转 0041328B |. /74 05 JE SHORT QQFlash1.00413292 未跳转 0040F59F |. /75 16 JNZ SHORT QQFlash1.0040F5B7跳转 00411814 . /75 38 JNZ SHORT QQFlash1.0041184E未跳转 00412EBD |. /75 2E JNZ SHORT QQFlash1.00412EED未跳转 00412EC7 |. /75 24 JNZ SHORT QQFlash1.00412EED未跳转 00412ED9 |. /0F84 C0000000 JE QQFlash1.00412F9F跳转 0040F59F |. /75 16 JNZ SHORT QQFlash1.0040F5B7未跳转 00411814 . /75 38 JNZ SHORT QQFlash1.0041184E跳转 00411898 |. /EB 10 JMP SHORT QQFlash1.004118AA跳转 00416D3B . /EB 24 JMP SHORT QQFlash1.00416D61跳转 00416D87 . /75 0A JNZ SHORT QQFlash1.00416D93跳转 00416D9B . /75 09 JNZ SHORT QQFlash1.00416DA6跳转 00416DA9 . /74 12 JE SHORT QQFlash1.00416DBD跳转 几步后 输入注册码的窗口出来,, 输入000……(将正确的注册码前三位改为000) …… 0040FCC3 |. /75 04 JNZ SHORT QQFlash1.0040FCC9 跳到 0040FCD8 |. FF15 C4844400 CALL DWORD PTR DS:[<&USER32.MessageBoxA>] ; \MessageBoxA (堆栈窗口已出现注册失败字样了……) 结果也是失败…… ·················· 修改的没起作用 就向上找给ESI赋值的源头 00411BF2 |. 8BF0 MOV ESI,EAX 00411BFD |. /75 02 JNZ SHORT QQFlash1.00411C01 00411BFF |. |8906 MOV DWORD PTR DS:[ESI],EAX;USER32.77D3E5BB 004171C1 |. 8B76 04 MOV ESI,DWORD PTR DS:[ESI+4] ; | 没找到,,其实在这一步00421323 |. E8 C8D70000 CALL QQFlash1.0042EAF0 机器码已出现,, 就现在的断点【【断点表2】】,, 10次F9,,到004121D5 |. FF15 74844400 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] ; \GetWindowTextA 到 00421306 |. FF15 00834400 CALL DWORD PTR DS:[<&KERNEL32.lstrlenA>] ; \lstrlenA 已出现机器码 到00421305 |. 56 PUSH ESI ; /String = "11DZCEIPTIMWAZCPTADEHVY"已出现机器码 已经确定 004212F6 8B75 0C MOV ESI,DWORD PTR SS:[EBP+C] 004212F9 |. 57 PUSH EDI ; //ESI中首次出现机器码 放弃 ·················· 00411C05 \. C2 0400 RETN 4 怎么返回的? 输入正确的注册码: 004D842B . 8B1485 147A4D>MOV EDX,DWORD PTR DS:[EAX*4+4D7A14] 到 004D8443 . E8 33010000 CALL QQFlash1.004D857B 往复循环 (重新调试?) 004D827D > \60 PUSHAD 0041BFAE |. /75 0D JNZ SHORT QQFlash1.0041BFBD 跳转 0041C047 |. /75 0E JNZ SHORT QQFlash1.0041C057 跳转 0041B6E3 |. /75 0F JNZ SHORT QQFlash1.0041B6F4 跳转 0041D034 |. /75 22 JNZ SHORT QQFlash1.0041D058 跳转 0040AD04 |. /75 5D JNZ SHORT QQFlash1.0040AD63 未跳转 00406BF4 . /75 1C JNZ SHORT QQFlash1.00406C12 未跳转 0040AD51 |. 8D45 04 LEA EAX,DWORD PTR SS:[EBP+4] 出现EAX=0012EF20, (ASCII "11DZCEIPTIMWAZCPTADEHVYtmp\user.dat") 堆栈 SS:[0012EF1C]=00B48310, (ASCII "0,r$N0X_O~4x_oB2&c\^&tRFV59UC#U(P%8)/!Xg?k!er#t-zPh1c9`kg1iLoG[)B[9C/]@s< z+!Kuf[=,G+AB$UqD$d^yGJo*ke#U c`<6ZM6(`;FK^N,TGfQ,D!k9B""L:a[;CzRyqAjElpV\~d3$ujbHOW3vioZ,q}`q>J?L)"b"Tca(9^M/6(gl/.kV(&K1l3;mB|OU(4$17!!A.'NIk7SEAX=0012EF20, (ASCII "11DZCEIPTIMWAZCPTADEHVYtmp\user.dat") 00406C0E . 1BFF SBB EDI,EDI 寄存器窗口出现注册码 004D8443 . E8 33010000 CALL QQFlash1.004D857B 启动程序 (与未注册时由 00401A20 . E8 A7530100 CALL QQFlash1.00416DCC 启动程序 对比) 放弃,,, ····························· *************************************************** !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 从早上八点多已经到下午靠近5点了,,正准备做最后的一次尝试,, 输入正确注册码,,注册后,,调试运行,,软件在启动时会检验是否注册,,根据之前一些印象,注册后的启动好像比注册前的启动跳的要多些,,就留意了一下,, 只对Readfile ,Writefile ,CreateFileA 的函数下断点(好像对后来发现的00406B76处也下过断点),, 整理的具体步骤: 【5下F9,,到了user.dat相关的地方了(对3个文件进行操作,,user.dat是最后一个),,F9(要是00406B76下了断点,就会需要按两次F9),,到了ReadFile这里停下了,,F8(或者事先在00406BF4下断点,直接F9),在00406BF4停下,,此时寄存器窗口的ECX显示了机器码,。】 看到了这个点, 00406BF4 . /75 1C JNZ SHORT QQFlash1.00406C12 好像离跳转比较近,,注册码正确时,这里是跳转的,现在不让他跳转,,软件面板上没了软件注册的字样,,本想改好了试试下载是否是跟正式版一样的,,结果直接运行出错,,用没改过的也一样,,,原来软件本身就有问题?? 可怜了我花的这么长时间啊,,,,之前还真没试过好不好用,,哎。。 [/CODE][COLOR="Red"] !!!!!!!!!!!!!!!!此小部分完全错误!!!!!!!!!!!!!!!!!![/COLOR][CODE] 存在正确的注册文件时,,程序才会经过00406BF4这个跳转,,也就是说,,要是按照上面的改了之后,,即使是正确的注册文件启动时也会被认为是没有注册!!!!!!! 完全的颠倒了,,不过留在这里,算是一个学习的过程吧,,可能是时间长了大脑错乱了…… ***************************************************** 【断点表1:】 地址 模块 激活 反汇编 注释 00401A25 QQFlash1 仅一次 CALL DWORD PTR DS:[<&ole32.CoUninitialize>] 004064F0 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.DeleteFileA>] 00406A44 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.CreateFileA>] 00408BF1 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.DeleteFileA>] 00408F8F QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.DeleteFileA>] 0040FCD8 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.MessageBoxA>] 004121D5 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] 00415EC4 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] 00417226 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] 0041B6DB QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.ReadFile>] 0041B7EE QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FlushFileBuffers>] 0041B8B0 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.GetFileSize>] 0041BD36 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindFirstFileA>] 0041BD42 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindClose>] 0041BFA5 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.CreateFileA>] 0041EFB7 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindClose>] 0041F075 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindNextFileA>] 0041F2C6 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindFirstFileA>] 0041FC3B QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindFirstFileA>] 0041FC50 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindClose>] 0041FD9D QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.GetFileSize>] 00421332 QQFlash1 始终 JA SHORT QQFlash1.00421359 //跳转后机器码出现 0042133D QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] 00421359 QQFlash1 始终 PUSH ESI 0042B809 QQFlash1 始终 CALL DWORD PTR DS:[<&SHLWAPI.PathFindFileNameA>] 00433A16 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.GetFileType>] 00439F8A QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.ReadFile>] 0043A042 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.ReadFile>] 0043A26E QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.ReadFile>] 0043AE1A QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.GetFileType>] 0043AEB6 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.GetFileType>] 0043EE33 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FlushFileBuffers>] 004431E4 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.CreateFileA>] 00444575 QQFlash1 仅一次 TEST EAX,EAX 004D9B9F QQFlash1 仅一次 PUSH 2C9A5C22 77D2BD44 USER32 仅一次 LEAVE 77D2BE4B USER32 仅一次 LEAVE 【断点表2:】 地址 模块 激活 反汇编 注释 00401A25 QQFlash1 仅一次 CALL DWORD PTR DS:[<&ole32.CoUninitialize>] 004064F0 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.DeleteFileA>] 00406A44 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.CreateFileA>] 00408BF1 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.DeleteFileA>] 00408F8F QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.DeleteFileA>] 0040FCD8 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.MessageBoxA>] 00411BF2 QQFlash1 始终 MOV ESI,EAX 004121D5 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] 00415EC4 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] 00417226 QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] 0041B6DB QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.ReadFile>] 0041B7EE QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FlushFileBuffers>] 0041B8B0 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.GetFileSize>] 0041BD36 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindFirstFileA>] 0041BD42 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindClose>] 0041BFA5 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.CreateFileA>] 0041EFB7 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindClose>] 0041F075 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindNextFileA>] 0041F2C6 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindFirstFileA>] 0041FC3B QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindFirstFileA>] 0041FC50 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FindClose>] 0041FD9D QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.GetFileSize>] 00421323 QQFlash1 始终 CALL QQFlash1.0042EAF0 00421332 QQFlash1 始终 JA SHORT QQFlash1.00421359 //跳转后机器码出现 0042133D QQFlash1 始终 CALL DWORD PTR DS:[<&USER32.GetWindowTextA>] 00421359 QQFlash1 始终 PUSH ESI 0042B809 QQFlash1 始终 CALL DWORD PTR DS:[<&SHLWAPI.PathFindFileNameA>] 00433A16 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.GetFileType>] 00439F8A QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.ReadFile>] 0043A042 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.ReadFile>] 0043A26E QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.ReadFile>] 0043AE1A QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.GetFileType>] 0043AEB6 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.GetFileType>] 0043EE33 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.FlushFileBuffers>] 004431E4 QQFlash1 始终 CALL DWORD PTR DS:[<&KERNEL32.CreateFileA>] 00444575 QQFlash1 仅一次 TEST EAX,EAX 004D78E9 QQFlash1 仅一次 MOV EDX,DWORD PTR SS:[EBP+4] 004D8448 QQFlash1 仅一次 BT AX,SP 004D9B9F QQFlash1 仅一次 PUSH 2C9A5C22 77D28EFC USER32 仅一次 LEAVE 77D2BD44 USER32 仅一次 LEAVE 77D2BE4B USER32 仅一次 LEAVE ++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++ +++++++++ 找到了这个软件的注册码后,其实是想利用这个软件计算出其他的机器码对应的注册码,这个系列的软件的机器码的前三个字符只与软件版本相关,,(08Q ,,09B,,10C,,11D,,……),,后面十七个是与电脑相关,且这系列的软件的这十七位是一样的,,于是,,我就想用这些软件,通过修改内存数据,使其显示出相应的注册码,,但这个是失败了,,在这个软件上花的时间不少了,,几十个小时,,换成认真看基础的东西也有很大收获了,,不能再在这上面花费时间,,基础薄弱造成走了弯路,浪费了时间。。。当然,,以后还是要继续研究滴~~~ 大概地记一下对这系列软件的了解(可能有误,问作者是最好的办法~~) :启动时产生skin.dat和skin.dll,并检查是否有user.dat(该系列软件的注册文件)文件,有的话验证其是否为正确的注册文件,,验证时会读取其中的内容,,重点是机器与注册码,,然后决定启动软件后是否有软件注册选项(可能也会有功能的不同,这个要是有时间的话通过这系列软件的其他软件验证),,点击软件注册及输入注册码时的反应上可以参考开头的一小部分,,可能记录是有误的,,。。 据自己在网上找这系列的软件的新旧版本来看: 较早的:下载回来后卡巴斯基报毒,,应该是其实用UPX加壳造成的,,中间的没加壳,,也就是现在研究的,,最新的版本加了壳,,而且保护措施很多,,上面 davg 说是查出壳是vmp,,软件检测到有调试软件运行时,,会拒绝运行,;载入OD调试,忽略错误时,,会跳出检测到了调试软件的警告,;用OD的插件试着脱壳,,运行后提示文件损坏或者病毒感染,,看来保护挺严密的。。下面的版本不知会怎么样。。。 ········································································ 吃完晚饭再回来看了先前关注的另一个软件QQAlbum1.2,将注册文件中的机器码改了之后,,程序报错,点击软件注册也是先报错,再出来注册框,而且没有显示机器码,,,调试中也会出错,,不弄这两个软件了…… 这系列软件的相关网址:http://hi.baidu.com/softsing ############################################################## (等这些东西乱到一种数量了再整理……) 没较全地掌握基本知识之前研究软件真有些困难~~ ############################################################# 把之前的破解的记录文件放这上面,,乱七八糟的,不知道过些时间自己是否还认识……路过的就不要下了,,没多少价值,,特别是还要花 kx 的。。 [ATTACH]46936[/ATTACH] |
|
[求助][求助]哎,最近几天都在啃这个软件,没啃下来……
这次并没有什么意思,,只是记录一下,,下次有时间就把最近发的两个帖子整理一下。。 哎,,先简单点记在这里,,不然就忘了: OD载入代码窗口,F9运行,,软件界面点击注册, 回到OD界面 右键||查找||当前模块中的名称||找到GetwindowTextA右键||在每个参考上设置断点,, 在注册码窗口输入1234567890,点 注册 ,, F9两下,(或者F8二十下左右到相同的地方),,在F8十几下吧,到了004138BA处,, 再F8一次,,到了00503C80,,再F8,弹出在数据上设置断点的警告,选是,寄存器窗口就出现注册码了…… (其实再对massageboxa设置断点,在软件的注册码窗口输入1234567890后点注册,按F9两次,,在右下角的窗口会出现 软件注册 等字样,,在往下翻,不远处就能看到真实的注册码和我们熟悉的注册码,,想想开始很模糊的时候随便找到几个像是注册表的函数就下断点,,在右下角的窗口偶然发现了机器码,注册码,,就接着找,看到很多地方出现机器码,注册码,, 说到这里还是有问题,,, 1,,右下角的窗口叫什么窗口? ^_^ 2,,怎么在下面的两个窗口中找相应的字符串?明明看到了相关的汉子,,英文字母,,右键||查找二进制字符串,,输入就是找不到……只有复制到记事本里找…… ) (再加一点:直接只对MessageboxA设置断点,在输入了假的注册码并点 注册 ,回到OD 按F9,,可以看到右下角的窗口有“注册失败”之类的了,,再往下翻不远,,就看到了真实注册码了……) 想想先前不知道的时候,,直接W32Dasm打开,,载入进程,,找到 私仇之路 所给的00503C80,,再F2,,F9,,也在那个小小的调试窗口的ecx处找到了注册码…… 稍稍清楚了之后,,感觉还有些简单有趣的,,, |
|
[讨论][求助]结果找上了我,,谁能提示一下相关的步骤?
问题已解决,,再次感谢那两位热心人的帮忙,, 应该来说对GetWindowTextA与massageboxa下断点再加上内存断点能解决简单的软件(仅仅是猜想~~) |
|
[建议]论坛对于图片的处理是不是可以更好一些?
感谢坛主指点~~ |
|
[建议]论坛对于图片的处理是不是可以更好一些?
比如这个帖子http://bbs.pediy.com/showthread.php?p=845544#post845544里5楼的里面的全屏的图片~~~ 坛主回复速度这么快,,我都震惊了一下的~~ |
|
[讨论][求助]结果找上了我,,谁能提示一下相关的步骤?
为什么我只能在右下角的窗口看到我输入的注册码和真实的注册码? 还有左下角显示“当读取00AD7A98时设置内存断点”是怎么出来的? 在上面输入“dd 00ad7a98”,回车后提示“地址不指向任何地方”…… 貌似是我不会下内存断点造成的…… |
|
[求助][求助]哎,最近几天都在啃这个软件,没啃下来……
我是乱下了几个断点,那帖子中我截了图的,,然后直接看右下角的窗口,,,由于偶然,,正如那个帖子里所记录的,,一步步发现了注册码,,不知道为什么每次找相应的字符串都找不到,,而且我还是看到了那字符串!!?没办法,,就复制到记事本了找,,发现了多个地方存在机器码和注册码。。,,昨天晚上又发现了一些东西: 这也就是 上面说纠结的原因,, 由于QQAlbum 与QQFlash 公用的一个文件,,我在调试QQAlbum时可能因为用的是QQFlsh的文件,,那个右下角的窗口处竟然出现了QQFlash的机器码和注册码 位置: 0012F10C,一步一步F9,这个位置附近由乱码显示QQFlash的注册码,下面也会出现QQFlsh的机器码的。。 0012EE5C,这个位置先出现的是QQFlsh的注册码!!再出现QQFlsh的机器码。。 于是我就想利用QQAlbum这个软件来找同系列软件的注册码,,比如找QQAlbum2.3的注册码,, 结果呢现在只要OD载入QQAlbum,,在出现软件运行界面时,,CPU 100%。。都没办法继续了,,,利用 QQFlash没发现有QQAlbum的类似情况。。。 (先去吃饭了~~~) |
|
[讨论][求助]结果找上了我,,谁能提示一下相关的步骤?
忙这个软件到现在,,还没时间过来看,,只有明早过来学习了…… |
|
[求助][求助]哎,最近几天都在啃这个软件,没啃下来……
哎,,,,好乱好纠结呀…… |
|
[讨论][求助]结果找上了我,,谁能提示一下相关的步骤?
么有这个地址,,上面就记录了我发现的步骤,,,可以说是偶然找到注册码了,,,,这个软件我根本就不知道断哪里,,包括那个QQ相册批量下载器的那个断点,,,怎么找到的呢? 说实话,,小林子的那批软件很值得研究,,,不过不知道小林子本人是否在这个论坛,,,呵呵呵~~~ |
|
[求助][求助]哎,最近几天都在啃这个软件,没啃下来……
由于在帖子http://bbs.pediy.com/showthread.php?p=845282#post845282中 提到了,,就把那张图发一下。。 是关于在我的机子上找注册码时的一部分内容。。 算了,,还是直接把放在记事本里面的放上来(每一行前面加了一个笑脸便于看出,关键地方用扮鬼脸的图标指出) 0012F10C |00C88030 ASCII "CB4MP7KE3HUNSM7NIWZ8" 0012F110 |00C88A18 ASCII "Q{jahc8[6"77|1j-cIhvZjg35HTY1MFyj/TF~DRs>{5^9E[,=)Ada?UihZG-) [cW)[nxB@rGlvI~z7A4s.Qg0I9|SxYs:_fmBN8|Vpo:3uT@g6e^TFIcV}|F<d7b~[U~tdRdR4%P}lgEPjZ94q2[K</@Z63hzNz({Q9gr4l{Os@Dv$2CA/+Z!TEIKW-7WhjS?qab{Vn1O-@UQf%[ybFiz>8#8jBCZ77J3UZ%5Vj9'YG/"... 0012F114 |00C88E78 ASCII "Sur6XL#43XsOKPL7u|kj7&1z(6S0cG1gzC DG<T({U'yHsoxp|nsz=P<#-2xpSx`i>V9vDb!Wac9CuadnA`DHj7>@i",7q(pIfc7?un;FCiy))$F/+W1MR|%juO<ZEI1=jXig #sq(AR0DI+C8l2>3:=.BT-6xJMs5i>]a/E(y(fN ?ulY,acpC_>x<Ho9PjRs3e~ k3U8[M\]~4$~Wusi6))*(3en_'uQqlB`S7Vs(xZ"... 0012F118 |00C892E0 ASCII "(P<:'.xdC8P9CC1k&6qbp|}\}=[};@Kc'9?Iz$7a{YxTi7aEon~*Xg&y&Uiuvcr#<dk)s$>Am{1x\:j~=8Q]EI`.XYTE"l=g}]l,^DRbsl3~&Y>8MwMcr3Eqs*0e7=1me/>}i8_ Sl^g&7D;mX_{h3%']~gb W30sizx$nQdqE-mh9D~D[]{kS[]-qAz'0R"(J?m6)BIA0sa?>}`YHmyh(Rh*NO_'4EUgLP ral,, Ct"... 0012F11C |00C88070 ASCII "08QZCEIPTIMWAZCPTADEHVY" 0012F120 |00C883F0 ASCII "O:vA"!$7Zmgp]AU)iTGf-[QGqCQt(D8ET8ZgJoI#oUk!6oqS!=Z^z[n`rOM$=LqM)rTzS6K 8+5|p6U.\,9x]c]]fDq6T4$BzQw~_H`tH~!KbD7'OeE{{rT*u6v(,hxCy=@m#zW:DG_~=X;rtoI9[2-'{BK0OPVOS3<Pj_}!U=F9pFIvEdeJ06CC%R~;e(46]!o'xev\cX$%MZSi*H&/*b+1eKe#uB2QL)\dKF9(#o'|5"... 0012F124 |00C87A18 ASCII "08Q" "CB4MP7KE3HUNSM7NIWZ8" ——————————我的机子的注册码 "08QZCEIPTIMWAZCPTADEHVY"———————————我的机子的机器码 "08Q" ————————————————————————机器码的 前三位 好了,,发完了 一堆乱码下隐藏的什么呢?…… |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值