软件逆向破解零基础入门实战07
|
admin
2025年12月12日 19:45
本文热度 19
|
新手学习软件逆向破解零基础入门实战7,本次练习的试验软件非常简单,也非常适合刚学习软件逆向破解的朋友练习。打开调试器OllyDBG.EXE,将要调试的程序拖入后,F9运行起来。输入假的注册码 it0365按提示到OD里查字符串找关键位置。错误提示:Leider Falsch ! Schau noch mal genau nach ...标题中看OD断在哪个模块。如果不在程序模块内,我们就要跳转到程序内存中才可以搜索到字符,不然搜索是其它模块的就找不到关键位置。点击菜单栏上的M到内存窗口看所有程序加载的内容信息和地址。返回到了程序模块后,右键选择中文搜索引擎,这里选智能搜索,这样搜索到的内容更多些。看到输入假码的错误提示也出现了。我们双击它返回到汇编代码看看是哪里跳转提示这个信息的。00401D8B . FF15 5C314000 call dword ptr ds:[<&MSVBVM50.__vbaFreeS>; MSVBVM50.__vbaFreeStr00401D91 . 8D4D D4 lea ecx,dword ptr ss:[ebp-0x2C]00401D94 . FF15 60314000 call dword ptr ds:[<&MSVBVM50.__vbaFreeO>; MSVBVM50.__vbaFreeObj00401D9A . 66:3BFE cmp di,si00401D9D . 0F84 A0000000 je Andréna.00401E4300401DA3 . FF15 2C314000 call dword ptr ds:[<&MSVBVM50.#534>] ; MSVBVM50.rtcBeep00401DA9 . 8B3D 48314000 mov edi,dword ptr ds:[<&MSVBVM50.__vbaVa>; MSVBVM50.__vbaVarDup00401DAF . B9 04000280 mov ecx,0x80020004
00401D73 . 51 push ecx00401D74 . 68 541A4000 push Andréna.00401A54 ; SynTaX 2oo100401D79 . FF15 08314000 call dword ptr ds:[<&MSVBVM50.__vbaStrCm>; MSVBVM50.__vbaStrCmp
__vbaStrCmp:字符比较函数
这里有个固定字符串和输入的假注册码比较,在堆栈窗口看
往下走,不相等后面的JE就跳转到失败了。这里就是关键位置。
输入找到的那个固定字符串(SynTaX 2oo1)输入到软件上,看看对不对。
果真那个就是真的注册码。是不是非常简单?直接就攻下来了。==============================软件功能非常简单,下面给大家讲下如何DIY。我们把注册码修改下。比如修改为:gzh:it036500401D73 . 51 push ecx00401D74 . 68 541A4000 push Andréna.00401A54 ; SynTaX 2oo100401D79 . FF15 08314000 call dword ptr ds:[<&MSVBVM50.__vbaStrCm>; MSVBVM50.__vbaStrCmp
我们把这里的数据修改为我们自己的内容,选择要修改的字段右键--二进制--编辑但是我们修改的内容没有原字符长,多了个1.直接用00填充即可。填充完后,还要向上翻注意这个16,它是字符的长度。我们修改的字符和原字符长度不同,就要修改否则程序在比较时就会出错。成功修改了原来的注册码。大家有兴趣也可以给程序做个汉化。使用16进制编辑软件或OD修改,修改时需要注意修改的字符长度。
阅读原文:原文链接
该文章在 2025/12/13 8:54:36 编辑过