W32DASM8.93捉虫记 湖北 wuhuashang
W32DASM是调试修改程序的强大工具,作为SOFTICE的辅助工具W32DASM为CRACKER必备。
当前许多软件采用注册方式,输入注册号,若正确显示"THANK YOU",否则显示"INCORRECT PASSWORD",用W32DASM反编译该软件,然后查找指定的错误信息如"INCORRECT PASSWORD"或其他因没有注册而显示的某些提示信息,假若被找到,对熟练的CRACKER而言,可能10分钟后便完成破解,而对于没有破解经验的计算机爱好者,只要他有一点汇编语言知识,再看一些别人用W32DASM破解的文章,用不了几天,他便可以破解INTERNET网上的许多共享软件;但是如果显示的信息并不是英文而是中文如"注册号不正确",您试着也找......,您发现只要是中文信息,W32DASM是没法对中文反编译的!
W32DASM不支持中文日文韩文的反编译,把它看作BUG应该可以被修改,磨刀不误砍柴工!.
我写此文章不是教人破解软件的加密信息,而是写出修改此软件的BUG的过程,假设反编译的中文软件DEMO.EXE,输入错误注册号后显示"无效的注册号".
1.您可以用HEXEDIT修改为"ERRORPASS"(若被未知的软件压缩加密呢?),修改后最好注销或重新启动计算机(内存有ERRORPASS字串)
2.启动W32DASM,打开DEMO.EXE,在32DASM反编译约1-3秒钟后CTRL+D切入SOFTICE
S DS:0 L FFFFFFFF "ERRORPA" (不要输入为ERRORPASS,就是不要完整啦)
若没有找到退出SOFTICE,重新打开DEMO.EXE,大约3秒钟后CTRL+D切入SOFTICE(依次类推),经过一翻斗争
在167:00610175处发现有"ERRORPASS"字串.
3.设置断点BPM 167:610175,退出SOFTICE,W32DASM继续编译,马上被SOFTICE拦截,分析:W32DASM能反编译的字 符串的ASCII值在20H-7F之间,必然有CMP AX,20类似的比较,上下观察并没有该语句,退出SOFTICE,马上又被 SOFTICE拦截下来,停止在CS:417241处:
.0041721A: 8B8530FFFFFF mov eax,[ebp][0FFFFFF30]
.00417220: 85C0 test eax,eax
.00417222: 0F848B000000 je .0004172B3
.00417228: 8B93A5726000 mov edx,[ebx][0006072A5]
.0041722E: 8B8B081F6F00 mov ecx,[ebx][0006F1F08]
.00417234: 8D040A lea eax,[edx][ecx]
.00417237: 8B9530FFFFFF mov edx,[ebp][0FFFFFF30]
.0041723D: 0FBE0C10 movsx ecx,b,[eax][edx]
说明:D DS:EAX+EDX 好家伙!原来正在读入"ERRORPASS",可以猜想,W32DASM能识别的字符串的ASCII码为20-7D之间而中文的ASCII码>A0 (是负数),改CS:417244 75 CC ==>90 90 ,中文信息不就可以处理吗?哈哈,别高兴太早,会失败得惨!记录下CS:417241 83F9207C5C
.00417241: 83F920 cmp ecx,020 ;" "
.00417244: 7C5C jl .0004172A2 -------- (1)
.00417246: 8B83A5726000 mov eax,[ebx][0006072A5]
.0041724C: 8B93081F6F00 mov edx,[ebx][0006F1F08]
.00417252: 8D0C10 lea ecx,[eax][edx]
.00417255: 8B8530FFFFFF mov eax,[ebp][0FFFFFF30]
.0041725B: 0FBE1401 movsx edx,b,[ecx][eax]
.0041725F: 83FA7D cmp edx,07D ;"}"
.00417262: 7F3E jg .0004172A2
.00417264: 8B8BA5726000 mov ecx,[ebx][0006072A5]
W32DASM是调试修改程序的强大工具,作为SOFTICE的辅助工具W32DASM为CRACKER必备。
当前许多软件采用注册方式,输入注册号,若正确显示"THANK YOU",否则显示"INCORRECT PASSWORD",用W32DASM反编译该软件,然后查找指定的错误信息如"INCORRECT PASSWORD"或其他因没有注册而显示的某些提示信息,假若被找到,对熟练的CRACKER而言,可能10分钟后便完成破解,而对于没有破解经验的计算机爱好者,只要他有一点汇编语言知识,再看一些别人用W32DASM破解的文章,用不了几天,他便可以破解INTERNET网上的许多共享软件;但是如果显示的信息并不是英文而是中文如"注册号不正确",您试着也找......,您发现只要是中文信息,W32DASM是没法对中文反编译的!
W32DASM不支持中文日文韩文的反编译,把它看作BUG应该可以被修改,磨刀不误砍柴工!.
我写此文章不是教人破解软件的加密信息,而是写出修改此软件的BUG的过程,假设反编译的中文软件DEMO.EXE,输入错误注册号后显示"无效的注册号".
1.您可以用HEXEDIT修改为"ERRORPASS"(若被未知的软件压缩加密呢?),修改后最好注销或重新启动计算机(内存有ERRORPASS字串)
2.启动W32DASM,打开DEMO.EXE,在32DASM反编译约1-3秒钟后CTRL+D切入SOFTICE
S DS:0 L FFFFFFFF "ERRORPA" (不要输入为ERRORPASS,就是不要完整啦)
若没有找到退出SOFTICE,重新打开DEMO.EXE,大约3秒钟后CTRL+D切入SOFTICE(依次类推),经过一翻斗争
在167:00610175处发现有"ERRORPASS"字串.
3.设置断点BPM 167:610175,退出SOFTICE,W32DASM继续编译,马上被SOFTICE拦截,分析:W32DASM能反编译的字 符串的ASCII值在20H-7F之间,必然有CMP AX,20类似的比较,上下观察并没有该语句,退出SOFTICE,马上又被 SOFTICE拦截下来,停止在CS:417241处:
.0041721A: 8B8530FFFFFF mov eax,[ebp][0FFFFFF30]
.00417220: 85C0 test eax,eax
.00417222: 0F848B000000 je .0004172B3
.00417228: 8B93A5726000 mov edx,[ebx][0006072A5]
.0041722E: 8B8B081F6F00 mov ecx,[ebx][0006F1F08]
.00417234: 8D040A lea eax,[edx][ecx]
.00417237: 8B9530FFFFFF mov edx,[ebp][0FFFFFF30]
.0041723D: 0FBE0C10 movsx ecx,b,[eax][edx]
说明:D DS:EAX+EDX 好家伙!原来正在读入"ERRORPASS",可以猜想,W32DASM能识别的字符串的ASCII码为20-7D之间而中文的ASCII码>A0 (是负数),改CS:417244 75 CC ==>90 90 ,中文信息不就可以处理吗?哈哈,别高兴太早,会失败得惨!记录下CS:417241 83F9207C5C
.00417241: 83F920 cmp ecx,020 ;" "
.00417244: 7C5C jl .0004172A2 -------- (1)
.00417246: 8B83A5726000 mov eax,[ebx][0006072A5]
.0041724C: 8B93081F6F00 mov edx,[ebx][0006F1F08]
.00417252: 8D0C10 lea ecx,[eax][edx]
.00417255: 8B8530FFFFFF mov eax,[ebp][0FFFFFF30]
.0041725B: 0FBE1401 movsx edx,b,[ecx][eax]
.0041725F: 83FA7D cmp edx,07D ;"}"
.00417262: 7F3E jg .0004172A2
.00417264: 8B8BA5726000 mov ecx,[ebx][0006072A5]
