situhaonan 发表于 2022-11-23 12:59

一个CM简单的逆向

想写个新手教程混点评分,但一直不知道写什么,今天看到一个CM就拿这个给新手写个教程,没什么含量,大侠们别喷。伸出友爱的小手给点热心值,谢谢大家。 https://www.52pojie.cn/thread-1716699-1-1.htmlCM地址是这个首先我们打开程序,随便输入账号、密码测试下。提示信息为账号错误(注:账号错误,不是密码错误哦!说明第一次判断用户,第二次才判断密码)我们拖入OD,运行程序,输入假的账号和密码。先不点登陆 ,然后快捷键CTRL+F 搜索 TEST EDX,3 来到此处,在这里F2,下断点然后点登陆,程序在此位置成功断下。接下来我们一次次的按F9,让程序运行比较。最后看到账号的对比。现在我们知道了账号是 52pojie_Rain,接下来,我们重新把程序载入OD,F9运行程序,在账号处输入52pojie_Rain,密码依然输入假码123456。点登陆,程序被断在我们设置过的断点位置。依然是一次次的F9运行,让程序再真假注册码对比。直到看见我们的假码出现。现在真码出现了。-1217761296(你们电脑的和我的不一样哦,因为机器码不同,所以注册码也不同)。我们来测试 一下,   OK,到此程序真正的账号和密码被我们拿到了。======================================================================接下来我们用第二种PUSH法,暴破的两处对比账号和密码的关键位置NOP掉就可以。我就不说了,有兴趣的可以自己尝试。
首先OD载入程序,CTRL+F 我们搜 PUSH 10001 来到此位置箭头指向为功能窗口,我们复制下来 push 0x520100FE,然后CTRL+B搜二进制 FF25.来到此位置我们把刚才复制的push 0x520100FE 替换到启动窗口这里。改好后如下图然后我们右键-保存程序出来。运行后看到我们PUSH大法替换出来的程序,测试按钮是灰色,阉割版,功能不全,我们继续,把这个保存出来的CM拖入OD里,我们点插件---API断点设置工具----常用断点设置不知道为什么有两个一样的,都选上把。然后F9运行程序,程序果断断下来。我们看 右下角位置,Enable = FALSE返回值为假,如果让返回值为真,肯定按钮就正常啦,也就是返回0为假,返回1为真,我们在CALL 到 EnableWindow 来自 PUSH1.0049F4DF处反汇编窗口中跟随。这里应该是压入了一个为0的值,所以按钮才灰色不可用。我们改为PUSH 1,然后保存一下程序。接下来运行我们第二次修改好的程序。按钮可以用了,但是信息提示KM,却不是测试成功。我们还要在进入OD里修改。拖入OD后。我们直接中文搜索引擎---智能搜索。搜索字符串KM双击来到相关位置处,发现下面就是提示的测试成功的字符串。而且对比从此位置往下到RETN代码是一样的。那么直接把push 0x4C4829修改为push 0x4C482C修改后再保存下程序。运行修改好的程序测试,这次没问题了。到此结束。动动友爱的小手给点免费的评分,爱心值,谢谢大家!

sh2k8 发表于 2022-11-23 13:12

为什么要搜索TEST EDX,3

saker1 发表于 2022-11-24 05:55

破解得好熟练的,只是搜索test edx,这里还是看不明白。

situhaonan 发表于 2022-11-23 13:19

易语言 比较 特征码

逍遥枷锁 发表于 2022-11-23 13:43

看来易语言要被你玩坏了。

czyr 发表于 2022-11-23 14:36

只能对付裸奔的程序猿{:300_966:}

famlin911 发表于 2022-11-23 14:39

一名不懂的小白路过。

liuliu8682 发表于 2022-11-23 14:48

小白路过

tomonkey239 发表于 2022-11-23 14:56

学习了。VLX ,LISP怎么破解

shudong8023 发表于 2022-11-23 15:37

微笑嘻嘻 发表于 2022-11-23 15:48

学习了
谢谢楼主的教程
页: [1] 2 3 4
查看完整版本: 一个CM简单的逆向