反编译之XX营销软件

https://www.52pojie.cn/thread-364301-1-1.html
在这里插入图片描述

在《反编译之XX营销软件》中,实现了源代码的编译,修改了注册等限制后,就完事收工了,可我没猜中故事的结局。据网友确切消息,将重生成的exe放在非调试环境下,竟然报错,如下图:
其罪魁祸首是因为UserRegister函数,一气之下,我重头新来,并分享整个“作案“过程。
01.下载安装
去官网,安装软件,悄悄地,不要被发现……。
02.查壳脱壳
查壳工具:exeinfoPE v0.0.3.2 ,脱壳工具:de4dot-v3-1。
03.反编译
这次没有使用.NET Reflector,而是JetBrainsdotPeek 1.4。
04.调试改错
这是最麻烦的一步,要想有结果就不能怕麻烦。下面是一些常见修改方法(VS2010下):
将安装路径下的area.db,System.Data.SQLite.dll拷到bin下,重新生成。
错误1:类型“System.Xml.Serialization.IXmlSerializable”在未被引用的程序集中定义。必须添加对程序集“System.Xml, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089”的引用。
解决1:缺少引用,添加相应引用即可。
错误2:无法将类型“int”转换为“bool”
解决2:我也不知道为什么,原代码使用(bool)进行强制转换的,在VS2010中报错,我改为这样转换:Convert.ToBoolean()
至此,程序已经可以调试运行了。
--------分---------割----------壹-------------------
但FormMain设计界面找不开,如果忽略的话,可能设计界面在设计是就看不到了。
下面都是针对设计界面的警告的常见修改方法:
警告1:设计器无法处理第 1457 行的代码:this.AutoScaleMode= AutoScaleMode.Font;方法“InitializeComponent”内的代码由设计器生成,不应手动修改。请移除任何更改,然后尝试重新打开设计器。
解决1:在前面添加完事引用,System.Windows.Forms.,类似的其他警告也是如此。
//base.FormBorderStyle = FormBorderStyle.FixedSingle;
base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
警告2:变量“componentResourceManager”未声明或从未赋值。
解决2:转到定义后,是声明赋值过的,但就是“感应“不到,将其重命名resources(小写哈),如下图左,注意查找范围和查找选项的设置,完成替换后,即可打开主界面了。
警告3:变量“gb_Info”未声明或从未赋值。(FormActivePC)
解决3:又“感应“不到了,替换为任意其他名称,不要和现有变量名相冲!
警告4:变量“gb_Info9”未声明或从未赋值。(FormActiveQQ)
解决4:在警告3问题解决了,警告4又出这样的问题了,再次替换即可。
至此,程序设计界面可以看了。
--------分---------割----------贰-------------------
05.运行破解
)1(纵观解决方案中有哪些重要关注对象:Program.cs、FormMain.cs、FormLogin.cs、FormActivePC.cs、FormActiveQQ.cs、Register.cs……
)2(先去Program.cs函数中,看运行是new FormMain,无可厚非,F12转到FormMain;
)3(在CS文件中,我们肯定要关注的是构造函数、Load 函数和自定义的Init()等,这里的构造函数中,主要是设计界面的初始化,我们主要看FormMain_Load函数;
)4(我们应该转换进入看看……(我在里面看了一圈)……出来了,决定把FormLogin注释掉,即跳过注册、关联和登陆。劳动改造 后的Load函数函数:

06.您今天还可以
……。
07.SelectedIndex无效
运行时,自动选号的功能报错,原因是我们跳过了前面的所有的过程,直接进入主界面,所以说,Combox未进行初始化:
于是,我手动读取值,进行了初始化。
至此,反编译破解完毕!

二、注意事项

[转]反编译c#的相关问题
原网页:http://www.cnblogs.com/xiajing12345/p/3305684.html

最近硬盘坏掉了,有一个项目没有备份,只好用Exe 文件反编译出来用,查了一下相关的文章用到的工具如下:

ILSpy_Master_2.1.0.1603_RTW_Binaries
直接生成时,有些奇怪,不能一次性生成 所有的 cs 文件与 resource
但是选择 saveCode 后 “保存类型”选择 all files 先保存一次。
再 选择 saveCode 后 “保存类型”选择 c# porject 再保存一次。可以保存所有的 resource 与 cs 文件。(不知道别的机器上是不是这样?)
再可以用 resgen 命令把 resource 变成 resx 文件
  可以找一工个:ConvertResource 一次性把所有的 resource 变成 resx

  需要把其中的

换成
   换成 (但是 使用 resgen 就不需要这样,本人使用的是 visual studio 2008 中文版 )

在窗体初始化InitializeComponent中添加 System.ComponentModel.ComponentResourceManager manager = new ComponentResourceManager(typeof(frmLogin));时 再切换到设计界面提示错误 变量“manager”未声明或从未赋值。
我将变量 manager重命名resources时错误消失。( 注意大小写)

base.FormBorderStyle = FormBorderStyle.FixedSingle;换成
base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;

base.AutoScaleMode = AutoScaleMode.Font;换成
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
等几项.

与上面差类似的问题。system.Drawing 或 Print 都要加全,最后就是处理反编译工具,出错的一些代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值