本帖最后由 默哀 于 2014-5-13 11:38 编辑
首先,在这里吐槽下,软件内置6万多个账号 华为和京东都有 哎 现在的作者啊 真不道德
现在正题开始
首先,拿到软件,打开来看一下,好多的dll文件啊,不用想,肯定是.NET平台的 好了,开始工作了,拿起软件主程序开始脱壳,然后得到 农夫华为抢购软件第三版-cleaned.exe 文件,直接用.NET Reflector 打开 打开之后,直接编译源码。(PS:我比较喜欢看源码,你们用你们的方法) 编译过程可能有点久,大家就等一下吧。。。。。。。。。。。。。稍后继续。。。。 若你不想编译出来,你可以跳过这段 得到源代码了,哥果断开vs看代码 老规矩,搜索关键字 貌似找不到,咱们把他的源码一个一个打开吧,貌似在Class1.cs 这个文件下发现点什么(哥换了种编辑器颜色,这样大家好看点) 貌似这里变成了红色,说明这个方法并不存在 我们再去看文件开头部分 发现了这个using WGYPublic; 这句话的意思就是引用WGYPublic这个文件,但是好像这个文件又不在文件主程序中,去程序根目录找,发了什么了吗? 老规矩,编译源码,然后用VS打开,打开punlic1.cs文件,继续分析 回想上面的代码,好像有一个 [C#] 纯文本查看 复制代码 public1.set_AppSettings(ConfigurationManager.AppSettings);
那就找到public1中的set_AppSettings方法吧,看看里面是什么 找不到set_AppSettings?那就找AppSettings吧
找到下面的代码,好像还加密了 [C#] 纯文本查看 复制代码 public static NameValueCollection AppSettings
{
get
{
return _AppSettings;
}
set
{
_AppSettings = value;
try
{
ConnectString = Encryptor.Decrypt(value[Encryptor.Decrypt("HiZ8btmI3kdCrYEJYo8A2w==")]);
}
catch
{
ConnectString = "";
}
try
{
SoftId = Convert.ToInt32(Encryptor.Decrypt(value["5OrOq1i3o4E="]));
}
catch
{
SoftId = 0;
}
}
}
加密代码串 [C#] 纯文本查看 复制代码 ConnectString = Encryptor.Decrypt(value[Encryptor.Decrypt("HiZ8btmI3kdCrYEJYo8A2w==")]);
这句话的意思是读取config文件中的某个节点的值
好吧,咱们先写一个软件,解密出来看看是什么结果先把
打开VS,文件-新建-项目 选择windows窗体程序,路径自己选,我是放在桌面上,弄好之后,咱们随便拖几个控件,然后双击 解密 按钮 然后去我们编译出来的源码目录找到这个 复制,并且粘贴到我们刚才新建的项目中 粘贴好了之后,就把命名空间改成你的项目名称,并且把 Class3.KghUl4Kz21JYO(); 删除 好了,开始写程序了 好了,简单的程序就这样写好了,很简单 F5运行一下
搞定 开始解密
得到解密后的字符串,然后打开 软件根目录下的config格式的文件,对比一下,你发现了什么,不要告诉别人 然后把value后面那串字符串也解密一下,你发现了什么?
活生生的数据库连接暴露了,包括ip,数据库名,数据库用户名,数据库密码都暴露了
现在我们打开SqlServer 2008,没有安装的同学建议安装一下,建议安装sql server 2008 expres,这个比较小,而且免费
为什么要安装2008版本呢,因为2008版本有个生成SQL脚本的功能, (以下各种安装软件的教程忽略,自己找教程) 生成脚本的时候记得把编写数据脚本改成true 运行生成的脚本,在自己的电脑上生成数据库, 然后利用我们刚才写的那个工具
加密字符串
搞定 收工 请加热心 谢谢
对农夫破解教程的一些详解
http://www.52pojie.cn/thread-258122-1-1.html
|