[破解实例][OllyDbg] CrackMe002-Afkayas.1
来源:互联网 发布:淘宝上的12号塑料弹壳 编辑:程序博客网 时间:2024/06/04 23:30
[破解实例][OllyDbg] CrackMe002-Afkayas.1
本例可执行文件(含破解版)下载:CrackMe002-Afkayas.1
本例比上例简单,只需破解主界面的用户名/序列号。
一、查壳
用PEiD查壳结果为Microsoft Visual Basic 5.0 / 6.0,无壳。
二、破解
使用OllyDbg工具打开Afkayas.1.exe,进入调试运行,断在程序入口处。
错误提示框为:
同以前的方法,找到出现字符串”Try Again”对应的汇编代码位置:
分析可得,
0x0040258B之前的代码验证了输入的Name/Serial是否正确,根据验证结果进行跳转。因此只需将0x0040258B处的条件跳转NOP掉,就能完成破解。
也可直接分析得出正确的Name/Serial关系,将0x004023ED- 0x0040258B的代码单独拎出来,分析如下:
004023ED .. CALL DWORD PTR DS:[EAX+A0] ; get the Name we input...00402409 .. MOV EDX,DWORD PTR SS:[EBP-B0]0040240F .. MOV EAX,DWORD PTR SS:[EBP-1C] ; save Name to EAX00402412 .. PUSH EAX ; push Name00402413 .. MOV EBX,DWORD PTR DS:[EDX]00402415 .. CALL DWORD PTR DS:[<&MSVBVM50.__vbaLenBstr>] ; get length of Name0040241B .. MOV EDI,EAX ; EDI = length of Name0040241D .. MOV ECX,DWORD PTR SS:[EBP-18] ; save Name to ECX00402420 .. IMUL EDI,EDI,17CFB ; EDI *= 0x17CFB00402426 .. PUSH ECX ; push Name00402427 .. JO Afkayas_.004026BE ; jump if overflow0040242D .. CALL DWORD PTR DS:[<&MSVBVM50.#516>] ; get the 1'st char of Name00402433 .. MOVSX EDX,AX ; Name[0]00402436 .. ADD EDI,EDX ; EDI += Name[0], remember as _res00402438 .. JO Afkayas_.004026BE0040243E .. PUSH EDI0040243F .. CALL DWORD PTR DS:[<&MSVBVM50.__vbaStrI4>] ; _str = itos(_res)...0040251C .. PUSH EAX ; push the real serial we input0040251D .. PUSH Afkayas_.00401B70 ; "AKA-"00402522 .. PUSH ECX ; _str00402523 .. CALL EDI ; get the correct serial "AKA-"+_str00402525 .. MOV EBX,DWORD PTR DS:[<&MSVBVM50.__vbaStrMove>]0040252B .. MOV EDX,EAX0040252D .. LEA ECX,DWORD PTR SS:[EBP-20]00402530 .. CALL EBX00402532 .. PUSH EAX ; push the correct serial00402533 .. CALL DWORD PTR DS:[<&MSVBVM50.__vbaStrCmp>] ; compare00402539 .. MOV ESI,EAX ; ESI = 0 if equal,1 if not0040253B .. LEA EDX,DWORD PTR SS:[EBP-20]0040253E .. NEG ESI ; ESI = -ESI00402540 .. LEA EAX,DWORD PTR SS:[EBP-18]00402543 .. PUSH EDX00402544 .. SBB ESI,ESI ; ESI = ESI-ESI-CF00402546 .. LEA ECX,DWORD PTR SS:[EBP-1C]00402549 .. PUSH EAX0040254A .. INC ESI ; ESI++0040254B .. PUSH ECX0040254C .. PUSH 30040254E .. NEG ESI ; ESI = -ESI => -1 if equal,0 if not...00402579 .. TEST SI,SI...0040258B .. JE SHORT Afkayas_.004025E5
可知正确的Name/Serial关系为 _res = strlen(Name)* 0x17CFB +Name[0],Serial = “AKA-_res”。
0 0
- [破解实例][OllyDbg] CrackMe002-Afkayas.1
- [破解实例][OllyDbg] CrackMe003-Afkayas.2
- [破解实例][OllyDbg] CrackMe004-ajj.1
- CrackMe 之Afkayas 破解
- 160个破解练习之CrackMe 002 Afkayas.1
- [破解实例][OllyDbg] CrackMe001-Acid burn
- [破解实例][OllyDbg] CrackMe005-ajj.2
- 160 - 2 Afkayas.1
- 逆向工程实战--Afkayas.1
- ollydbg破解文件断点
- ollydbg破解文件断点
- 使用OllyDbg破解EasyCrackMe
- 注册码破解神器--OllyDbg
- 160个破解练习之2-Afkayas.1.Exe
- 160个破解练习之CrackMe 003 Afkayas.2
- 160个CrackMe 002 Afkayas.1
- 破解速成歌诀(OllyDBG篇
- OllyDBG反汇编破解Radmin密码
- [WC2016]鏖战表达式
- JVM内存管理:深入垃圾收集器与内存分配策略(一)
- 数据挖掘总结之分类与聚类的区别
- oc 调用 swift Demo
- View 滑动冲突处理方法
- [破解实例][OllyDbg] CrackMe002-Afkayas.1
- AutoLayout的三种设置方式之——NSLayoutConstraint代码篇
- MAC地址格式小结
- Linux文件列表权限
- 微信回复汇总
- QGis二次开发基础 -- 属性识别工具的实现
- 数据挖掘总结之主成分分析与因子分析
- Android中的动画
- windows下部署redis