您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页逆向工程

逆向工程

来源:筏尚旅游网
OD载入AnyunGameCM1,观察入口点,可以知道是Delphi程序

运行之,观察下,发现序列号错误了,程序会清除文本框信息,没有任何弹窗和文本提示,果断放弃MessageBox,Showwindow等常用断点函数

观察程序线程,发现在点击Check按钮后,程序会新启动一个线程,然后瞬间结束,

据此,猜测程序会新启动一个线程来处理序列号,于是下断CreateThread函数,点击Check按钮,逐步运行到了线程的处理代码

逐步跟进之,发现在这里,右侧寄存器中出现了我们输入的序列号,于是猜测这里估计序列号处理的核心位置

发现内存串比较代码,还有后面紧跟一个判断代码

运行到判断代码,然后在右侧修改0标记,强制改变判断代码的流程,

修改流程后,直接F9运行,发现程序界面终于发生变化了,于是可以确定这里就是序列号处理函数!但是显示出来的提示是乱码,不要紧,这里估计是提示字符串被用正确的序列号加密了,我们的序列号错误,所以解密出来的提示是乱码。

很明显,如果程序想要在此处判断正确,则上面的内存串比较函数就得一样。换句话说,这段代码对我们输入的序列号做了某种处理之后,然后在和程序内的一串内存串比较,如果相同,则序列号正确。

经过跟踪,发现了加密函数

可以看出加密函数很简单,就是对序列号做了异或和加和处理,完全可逆,我们用刚才说的那段用了比较的内存串,经过逆运算之后,便可得到序列号。

KEY{B4xhvwBvXwgsVA5l3HAh}

输入之后,点击Check,程序提示You Got it

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务