小米6 ufs2.1低配版是ufs吗

破解及安全防护(5)
一同事提到某客户要求修改产品程序中的一段文字,正常情况下这是很简单的事情,不需要我这业余人员参与,但问题在于该客户使用的是旧版本产品,而旧版本产品的代码已遗失,这种情况下修改文字就成了一个棘手的工作。几经辗转这个事情就找到了我这里,受不了同事再三托付,我答应其试试。
该程序使用.net 2.0开发。
需要修改的为一C/S客户端界面,在界面中某个label处(假设原文字为“服务器123!”)增加一段文字描述(假设为“新增服务器”),使程序可正常运行,兼顾美观性。
工具手段:
google、UE、.Net Reflector8.1、ildasm、.net framework2.0、自编汉字转码工具(javascript)
准备工作:
利用google下载上面提到的几个工具,并掌握各个工具的使用方法,我这里大概说说各个工具的用途:
.Net Reflector8.1很有用的工具,可以查看.net编译程序的源码格式,用于了解程序的编制思路及寻找修改方式;
ildasm.exe可以将.net编译的可执行程序(dll、exe)反汇编为il中间格式,该格式可使用ue进行编辑修改;
UE我喜爱的工具,全称ultraedit,超好用的文本编辑工具,支持hex格式编辑;
.net framework2.0我们修改后的il文件需要依托.net
framework2.0进行再次编译,才能形成可执行文件,其实主要使用ilasm.
自编汉字转码工具,这个是我为了方便自己写的转换工具,做得事情不复杂,主要是将字符尤其是中文转换为unicode编码,再将unicode编码转换为il文件中的中文编码(去掉\u、将双字节的高低位互换);大家也可以手工转,在网上搜索unicode在线编码转换将字符转换unicode编码,手工去掉\u,再将双字节高低位互换。(我会单独写文章把这个工具与大家共享的)。
因为不确定客户使用的哪个小版本产品,所以我让同事从客户处把程序直接拷贝给我了。
相关准备工作做完后就要开战了。
1、首先出场的当然是.Net
Reflector8.1了
将需要修改的程序文件(如果有多个文件不确定是哪个的话就需要都托付给reflector反编译先),通过Reflector查找文字“服务器123!”,这样可快速定位这个界面的源码位置,通过读源码我们知道了这个界面上有哪些控件,哪些控件与我们待修改的内容有关。
2、轮到二号人物出场了ildasm.exe
打开ildasm.exe,将待修改的程序文件拖放到该程序,选择转存为123.il文件,转存时注意选择utf-8编码,关键人物的出场都是短暂的,短暂但确很重要。
3、三号人物UE出场
使用UE打开123.il,这个地方我走了我弯路,在UE中直接找中文“服务器123!”,找了N遍都没有,后来google了很久,找到有专家说要转成unicode编码,到网上找工具将服务器123!转成了unicode编码,直接按照转换的16进制搜索,还是找不到,当时俺那个崩溃呀,心想难道不在123.il,后来又查找123.res(也是ildasm.exe的产物),但都是徒劳无货。后来在UE和reflector中反复走查代码,俺终于发现了规律。原来il文件中又对unicode编码进行了双字节高低位互换,这个折磨人的编码问题呀。还是给同学们展示个实例吧:
中文:服务器&unicode编码:\u670D\u52A1\u5668&il编码:0D
67 A1 52 68 56
4、编写汉字转换工具
我比较懒或者说不喜欢做重复工作,我一想到要一个一个汉字的转编码、调顺序,而且客户要加的文字还不少,那个头疼啊。一怒之下为配合三号人物完成工作俺连夜编写了一个html页面(使用javascrip脚本)用于转换汉字编码,好久不写代码了,N多生疏,心里默默感激google与大众的分享,让俺能完成这个小小工具。
5、UE继续出场
工具有了就好办多了,首先通过工具将原始文字“服务器123!”转换为il编码(暂且这么叫吧),在UE中查找,OK一查即中,鼠标停留在字符串结束位置,将待增加文字“新增服务器”转换为il编码,直接在UE中粘贴即可(服务器123!之后),这样文字修改就可以了。
6、.net framework2.0出场
第五步我们只是把程序中间格式文件修改好了,但还不是可执行程序,要编译出.net 2.0的程序当然还得使用它本身了,但il的编译需要使用的是ilasm.exe。
该命令需要在cmd窗口中执行,打开cmd,切换到il文件所在目录下,执行如下命令:c:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe
123.il /output=123.exe /res:123.res /exe
其中c:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe为ilasm.exe的路径;123.il为我们修改后的il文件;/output=123.exe指我们要输出的文件名称;/res:123.res表示要将对应的资源文件也编译到程序中;/exe为输出的文件格式为exe,如果原始文件dll的,则需要使用/dll
这一步俺也走了弯路,大家不要走呀,我第一次运行命令的时候,没有带/res参数,导致编译出来的exe文件没有应用程序图标.
编译成功后,目录下会生成123.exe文件
对于编译的123.exe,打开运行观察是否是期望的结果。如果你幸运修改的文字较少不影响控件美观性,那么本次任务就圆满结束了。但我很不幸运,增加的文字较多,导致在lable中文字显示不全。所以俺还需要附带赠送如下步骤。
8、调整控件位置及大小
在reflector中找到对应控件,找到其location、size设置的大小,还发现该控件的autosize为true,这是不行的,需要修改为false,我们才能调整他的大小。
在UE中查找对应位置,可按照控件方法名定位,数字可能涉及16进制转换,在修改时要注意。
IL_025a: ldc.i4.1 //需要修改为ldc.i4.0,表示false
IL_025b: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Control::set_AutoSize(bool) //设置autosize
修改控件size大小
IL_02be: ldc.i4 0xdb //长度 按照需要修改吧
IL_02c0: ldc.i4.s 30 //高度 按照需要修改吧
IL_02c2: newobj instance void [System.Drawing]System.Drawing.Size::.ctor(int32,
修改完成后,重复6、7步骤,直到控件位置调整正常。
将程序发给客户验证,OK!
此次任务完工。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场如何利用ILSPY反编译工具重建C#.NETWeb源码解决方案
我的图书馆
如何利用ILSPY反编译工具重建C#.NETWeb源码解决方案
最近做了几次ASP.NET WEB 发布文件的反编译,成功完整重建了几个解决方案代码,感觉挺爽的,
分享一下!
大家都知道,无论是VB.NET还是C#.NET语言开发的APS.NET
WEB程序,发布在IIS的虚拟目录下时,基本上会是三种文件类型(以C#为例):
1,aspx 页面文件
2,.aspx.cs 页面文件对应的代码文件
3,Bin或Assembly 目录下的.DLL类库文件。
出于代码的保密性或代码源码的管理需要,项目团队开发时,会经常性的将一部分与数据库打交道的代码封装到中间层,即.DLL层进行统一管理维护,这一部分.DLL是以文件的形式供调用,不象.aspx.cs文件可以直接用记事本打开进行查看源码,给我们重新建解方案带来了一定的困难。但只要能通过IL
SPY对这部分.DLL代码进行反编译的话,可以很方便,也是很快的重新你的完整解决方案。(此方法也同样适用于.NET开发的.exe文件)
下面是是一些具体的反编译与重建解决方案的步骤:
1,搜索并下载.NET 反编译工具IL SPY 。
我用的版本是ILSpy version 2.1.0.1619 ,
ILSpy is the open-source .NET assembly browser and
decompiler.
2,下载后,打开IL SPY的执行文件ILSpy.exe
3, 双击打开ILSyp.exe文件,显示它的工作界面:
4,留意上图下拉框中 VB,C# 红色的内容,这两个选项代表着IL
Spy可将C#或VB.NET代码编码的文件进行源码的反编译,很有帮助的哦!
5,透过 文件--打开 菜单选择你需要反编译的.exe 或.dll文件
左边是解决方案的类结构,右边就是源码啰,你要是需要的话,可以一个个的进行复制重建,不过IL
Spy提供了一个存为.csproj项目的功能,一个完整类空间源码就出来了,你试试看。
接下来,需要的就是按步就搬的建立你的.sln方案,在.NET开发环境下添加反编译出来的.csproj项目,并将原来web发布目录下的文件加入解决方案中。
6,重新解决方案的时间由系统的大小及对.NET开发环境的精通程度决定,一般该引用的引用,该反编译的反编译,开发环境我就不在这里介绍了,你懂的...^_^
IL SPY工具下载链接地址:
TA的最新馆藏欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 2609 人关注过本帖
标题:VB反编译出来的代码有没有办法还原?
等 级:新手上路
帖 子:16
结帖率:100%
&&已结贴√
&&问题点数:20&&回复次数:6&&&
VB反编译出来的代码有没有办法还原?
我这里有个软件,打开就会下载一个病毒,我想通过反编译从新写成exe
请问有什么办法?或者有没有办法让他打开不下载病毒的。
搜索更多相关主题的帖子:
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
建议阅读大学物理学中对于热力学第二定律和熵增加原理的叙述。
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
以下是引用loveve在 19:04的发言:
一个系统中的熵只会增加而不能减少,物理上是这样,编程(信息论)上也是这样。程序编译的过程中相对于程序代码是增加了很多无关的信息,或者干扰的信息(熵增加了),那么如果没有人做大量的脑力劳动,必然无法还原到最初的VB代码(熵不会减少)。
等 级:业余侠客
帖 子:452
专家分:213
还原成VB原代码是不可能的,
可以让他打开不下载病毒的
等 级:新手上路
帖 子:18
以下是引用loveve在 20:13:32的发言:
还原成VB原代码是不可能的,
可以让他打开不下载病毒的&&& 推荐一个VBRezQcn.exe,可以还原VB6的代码,试过JM的!
版权所有,并保留所有权利。
Powered by , Processed in 0.046152 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved

我要回帖

更多关于 小米note3内存ufs 的文章

 

随机推荐