情景:
第一次搞.net逆向 虽然我是工具党 但我励志要像前辈们看齐!
我们需要和上级联网厂家进行接口对接,通过对方提供的webservice查询、上传和更新数据
在调试过程中对方不是很配合导致联网进度十分缓慢,故要拿到对方编译好配置到服务器iis上的网站
逆向一下看对方到底动了什么手脚 学习一下对方的源码
用到的工具:
peid、scanid、de4dot、dnspy、reflector
步骤1:拿到对方的程序
拿到对方的网站程序后要找到我们调用的是哪个动态库从而开始我们的反编译之旅
程序根目录中有一个webservice.asmx,写过.net程序的都知道我们要找的就是它
右键打开看他是用的哪个动态库
步骤2:查壳
使用peid载入我们找到的动态库,从下图我们可以看出该dll没有加壳,嗯,这下省去了很多麻烦事
步骤3:脱壳
略~因为他没有加壳~不过以后应该会记录给程序脱壳
步骤4:反混淆
先用scanid载入dll动态库,我们发现这是.net reactor类型的代码混淆
没有加壳的dll可以用dnspy加载反编译,但是几乎所有的字符串都是加密的,这样根本达不到我们的目的
使用de4dot-mod版反混淆工具(这个得说一下,github上作者最新的de4dot不管用,用命令行de4dot [path] -v打印出的信息为“填充错误,巴拉巴拉~”)
运行cmd打开命令行切换到de4dot目录,使用命令 "de4dot [path]"反混淆,成功后会在[path]下生成一个新的dll
步骤5:反编译
使用dnspy打开我们刚刚用de4dot生成好的dll动态库,查看代码发现现在字符串是明文了,OK
后记
其实中间的过程很曲折,因为是新手才接触破解、逆向什么的不久,平时的时间很有限,除了工作还有其他许多琐碎的事情要做,虽然尽可能的把娱乐的时间用到学习,但还是不够。。周泰的那种还不够。。
搞这个dll用了一整天的时间,哦对了,有兴趣的同学可以去吾爱破解、看雪或者i春秋学习,我在吾爱注册了会员,不是会员会有很多限制,也不贵一顿饭的钱,用来学习和交流很值得
总之,我感觉收获很多,道阻且长。最后,想破解搞逆向,去吾爱破解论坛吧,我觉得ok,热狗的那种