菜鸟爆破【 E酷录音机】
贴这样的贴子,怕是被大家笑话,
初学者,不当之处,高手们不要见笑,多多指点 ....
下载地址:http://www.ecool-soft.com/software/coolrecorder.exe
使用工具:ASPackDie ,Ollydbg,DeDe3.5,Uedit32
破解环境:WINXP SP2
用Peid 扫描,发现是ASPack 2.12 -> Alexey Solodovnikov的壳
请来AspackDie 1.41,脱掉!!!!!!
再扫,发现是Delphi编写的程序,于是请出DeDe,
发现,没有注册的话,只能录音60秒,大于的话,则保存录音,弹出注册对话框.
先开始从注册框下手,去找注册码,主要是我太菜,许久也没有成功,试试看能不能突破60秒的限制呢?
看到主程序上有一个倒计时控件,想想,这大概是Timer控件吧?(我只会VB,VB中叫Timer控件,不知Delphi呢?)
于是在主窗口上找关于timer控件的事件,找到一个iTmrRecTimeTime事件,应该是它吧?
双击,反汇编如下
_______________________________________________
004A6208 55 push ebp
004A6209 8BEC mov ebp, esp
004A620B 6A00 push $00
004A620D 53 push ebx
004A620E 8BD8 mov ebx, eax
004A6210 33C0 xor eax, eax
004A6212 55 push ebp
* Possible String Reference to: '?蒗?疔Y]?@' ; 这是什么???????????
|
004A6213 6886624A00 push $004A6286
;...........省略一部分
004A622A 8B8374030000 mov eax, [ebx+$0374]
004A6230 8B400C mov eax, [eax+$0C]
004A6233 E8482CF6FF call 00408E80
004A6238 8B55FC mov edx, [ebp-$04]
004A623B 8B8378030000 mov eax, [ebx+$0378]
004A6241 E87634FAFF call 004496BC
004A6246 8B8374030000 mov eax, [ebx+$0374]
004A624C |. 8378 0C 3B CMP DWORD PTR DS:[EAX+C],3B ; 哈哈,3B就是十进制59,小于59秒, ;继续录音,否则跳转注册窗口
004A6250 |. 7E 1E JLE SHORT Unpacked.004A6270 ;更改为JMP,不管它多少秒
004A6252 |. 833D 38B04A00>CMP DWORD PTR DS:[4AB038],0 ;这个是比较什么的?不知道
004A6259 |. 75 15 JNZ SHORT Unpacked.004A6270 ;这个就不用改了吧?
004A625B |. 8BD3 MOV EDX,EBX
004A625D |. 8BC3 MOV EAX,EBX
004A625F |. E8 28FAFFFF CALL Unpacked.004A5C8C ;保存录音
004A6264 |. A1 E48F4A00 MOV EAX,DS:[4A8FE4]
004A6269 |. 8B00 MOV EAX,DS:[EAX]
004A626B |. E8 80F9FBFF CALL Unpacked.00465BF0 ;没看出来,这是干什么的
004A6270 |> 33C0 XOR EAX,EAX
把JLE改为JMP后修改完后,在CPU窗口点右键---->复制到可执行文件----选择部分---然后存保文件
关了Ollydbg,试试吧,呵呵,60秒后仍能录音,成功的喜悦挂满了笑脸 :)
_______________________________________________________________________________________
好久不长 :(
发现WAV-MP3又有限制了,没有注册只能一次转换四首歌典,这怎么办?? 继续!!!
发现这个转换程序是由encoder.exe这个程序来完成,那么就对它操作吧!
用Peid扫描,发现这次是 ASPack 2.001 -> Alexey Solodovnikov ,呵呵,版本不一样啦,没事,脱!!!
这下怎么下手呢?用Ollydbg,W32DASM,没有找到可用的错误信息,可能是中文的原因吧?
没事,请出Uedit32,查找并替换,将出错信息“您是未注册用户,每次只能转换四首歌典.....”改成英文“ZZZZZZZZZZZZZZZZZZZZZZZZZZZ”,呵呵,可要一样长啊。
再用ollydbg查找字符参考,呵呵,找到了!!!反汇编如下 :
0048AF16 |. 8BD6 |MOV EDX,ESI
0048AF18 |. E8 5F11FEFF |CALL encoder.0046C07C
0048AF1D |. 5A |POP EDX
0048AF1E |. E8 6D0BFEFF |CALL encoder.0046BA90
0048AF23 |. 46 |INC ESI
0048AF24 |. 83FE 03 |CMP ESI,3 ;是不是大于3首
0048AF27 |. 7E 29 |JLE SHORT encoder.0048AF52 ;是的话就跳出错,不是继续
0048AF29 |. B9 94AF4800 |MOV ECX,encoder.0048AF94 ; ASCII "Regcode"
0048AF2E |. BA A4AF4800 |MOV EDX,encoder.0048AFA4 ; ASCII "\software\microluck\coolrecorder"
0048AF33 |. 8BC3 |MOV EAX,EBX
0048AF35 |. E8 F6020000 |CALL encoder.0048B230 ;这是读取注册信息的吧?
0048AF3A |. B9 B8220000 |MOV ECX,22B8 ;没有跟下去
0048AF3F |. 99 |CDQ
0048AF40 |. F7F9 |IDIV ECX
0048AF42 |. 85D2 |TEST EDX,EDX
0048AF44 |. 74 0C |JE SHORT encoder.0048AF52
0048AF46 |. B8 D0AF4800 |MOV EAX,encoder.0048AFD0 ; ASCII "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" ;呵呵,修改后好找多了
0048AF4B |. E8 FC9CFAFF |CALL encoder.00434C4C
0048AF50 |. EB 16 |JMP SHORT encoder.0048AF68
0048AF52 |> 8B83 F0020000 |MOV EAX,DS:[EBX+2F0]
0048AF58 |. 8B40 7C |MOV EAX,DS:[EAX+7C]
0048AF5B |. 8B10 |MOV EDX,DS:[EAX]
0048AF5D |. FF52 14 |CALL DS:[EDX+14]
0048AF60 |. 3BF0 |CMP ESI,EAX
0048AF62 |.^ 0F85 7AFFFFFF \JNZ encoder.0048AEE2
0048AF68 |> 33C0 XOR EAX,EAX
根据出错信息出上看,在0048AF24行发现 比较转换文件的个数,大于4首就出信息,那就把JLE改为JMP吧!!
保存文件,测试----成功!!!转换速度还挺快的嘛!!!好了,可以用它来代替录音机了~~ :)
呵呵,菜鸟学习笔记一篇,用了些土办法,希望各位高手不要见笑,等俺学好了,再去研究一下算法吧~~~
或者,哪位高手指点一下吧!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)