某抢购侠最新版的破解过程
1.得到启动的dll文件
PEID 查壳
什么都没有,其它果然它是什么都没有
OD载入,发现这个软件会在内存中生成一个dll文件,然后程序加载它,跟踪代码,在程序的关键点断下:
lord PE直接dump dll文件镜像:
将dump.dmp直接改成 Nie.Launcher.dll ,为什么改成这个名字呢,因为打开dll时,它内部是这个名字。
经查,这个dll没有加壳,是个原生态的dll文件。
2.生成启动文件。
研究原程序发现在调用完这个dll中的接口后,就完成了它的使命。而这个dll是.net程序,原程序猜测是C++的,dll文件在内存中拼接出来的,生成过程中还数据搬移、解密什么的,没细看。
为了实现dll的修改,及方便及时运行,看修改结果。直接动手自已写启动exe了。
先看看这个dll文件吧:
里面包含了一个Run方法和一个string参数。 跟踪原程序发现调用了此函数,切参数为unicode "102" .先记下吧。
写一个简单的C#程序,在里面调用这个Run方法,且传入"102"这个参数,程序出现了如下情况:
什么版本要更新。而它的原程序,并没有显示要更新啊。记下版本信息:v1.1.0.3。
是不是传入的参数不对啊,再试改成“110”,直接如下情况:
到底什么情况啊。 研究了一下dll中的代码,发现它联网后,获得了版本信息,然后与application.version什么的比较,完全不懂嘛。
偶然的机会,打开原程序到cff中时,发现:
难道,难道 是exe的版本号信息 ?(和更新提示的版本一样) 已不相信世界上有真爱了。
马上动手修改启动exe文件的版本号信息:
改成1.1.0.3 得新编译,生成了启动文件:
还是挺好看的嘛。
试着运行下:
好吧,终于跑起来了,要进入到.net的世界了。
3. 7xk文件的解密
在程序下面看到很多7xk文件,分析Nie.Launcher.dll中的程序发现,它们都是加密过的dll文件。直接解密它们吧。
它的解密程序,倒是简单,直接从Nie.Launcher.dll中复制出来就可了:
建一个C#程序吧:
直接将7xk文件解密成dll:
7xk(7侠客哈),你把这些文件的解密算法如此简单,我对你的敬仰之心,少了几分。
这些dll也是原生态的,没加壳。 将这些复制到原程序下,名字后缀改为7xk吧。
4.逆向 reflector 不得不说这是个神器
打开Nie.Launcher.dll :
干掉它的更新和文件MD5校验。 此处的干掉更新,我不是完全确定,必竞我在网络方面是小白。
干掉MD5是因为我们解密了它的7xk文件。
再往下看:
好吧,干掉它的7xk文件解密,因为我们已经解密过了。解密过的7xk文件,我们才能好好的玩耍哈。
好了,我们跳过程序的注册码弹窗,进入主程序:
研究发现,它有没有注册,和一个变量相关的:
这是你了。在这个变量所属的类中,在其构造函数中,直接对其赋值为true.
不知道C#中叫不叫构造函数,才学C#不到3天。
改完后程序可以运行了,但运行一会儿就弹窗说“注册码已过期”,一点程序就关闭了。
搜索所有7xk文件,也没有找到类似的字串,是不是它的非.net dll中的字串呢,拿程序下面的dll与低版本比较,没有什么不同嘛。
突然想到是不是网络服务器端发过来的字串哈?
网络小白的无奈。
研究下代码,突然看到:
反正是去掉 网络端的信息。
竟然还有,exec远程执行的后门
难怪360会报这是木马了,希望作者改进吧。
最后都修改完了:
看到永久有效 都莫名的兴奋。
结语:
程序还是挺复杂的,作者用心良苦。因为此软件的功能没有验证。喜欢的同学可以用 小小小青年的版本,特别喜欢,请支持7xk正版!添加了附件。这个软件有后门,大家谨慎点,也可以研究下后门的代码,在此就不多言了。
转自吾爱
跟第二个教程是一样的么?
好文章好图文好资料,谢谢老师,恒大威武。
支持楼主,大家一起学习。 老师很厉害,谢谢分享出来。 感谢楼主分享。 共同努力,共同进步 谢谢分享这技术学习了!
页:
[1]
2