使用Dotfuscator混淆winphone8应用XAP

最近公司winphone应用有oem(企业定制版)给客户,为了安全就研究了下代码混淆。

 大家可以参考下这个<<C#使用Dotfuscator混淆代码的加密方法>>。

一、注册

首先在Dotfuscator官网上(https://www.preemptive.com/my-account/evaluations?view=evaluations)下载个最新版本,点击here 会要求注册个账号,注册成功并填写 许可信息后会发一个邮件到注册邮箱中,里面有产品序列号(这个序列号只能在一台机子上使用,切记!),有14天的免费试用期。当前最新版本为4.10.1。


二、创建项目

第一次打开软件需填写序列号,然后创建个项目


还有一点在C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone71下若有这两项要删除要不会报错。我同事电脑上没有这,我有,然后生成总不成功,删除就好了,为了安全搞个备份吧。

三、Input选项


将xap项目中引用的dll右键(exclude assembly from package)去掉,只保留主项目。上面的Newtonsoft.Json.dll不去掉怎样都不行,要不混淆失败,要不生成的xap不能部署(错误类型:Newtonsoft.Json.dll were not resigned. You will need to sign these dotfuscated assemblies manually.;

WARNING: Newtonsoft.Json has non-input Friend Assemblies and is not in Library Mode; internal members may be renamed or pruned. References from non-input Friend Assemblies to the internal members of Newtonsoft.Json may no longer be valid)。


四、Settings选项


五、Rename选项

将去掉的dll命名空间添加到不更改名称选项中(exclude),type和method也要加上。


“Renaming Scheme” 选择“Unprintable”(不可打印字符,即乱码),也可以选择其他如小写字母、大写字符、数字的方式。

但改为unprintable可能会引发错误(会报“eval_”什么的错误),我改的是数字

六、 String Encryption 选项


全选即可

七、其他的选项选择默认,然后保存、编译即可(第一次保存时会要求保存个项目操作xml文档,编译成功后会在原始xap相同路径中会生成个名为Dotfuscated的文件夹,里面有混淆成功的xap文件和混淆具体内容的map.xml文件)


当过期后重新注册,重新获得sn;还要在C:\Documents and Settings\All Users\Application Data\PreEmptive Solutions\Dotfuscator Professional Edition Evaluation\4.0中删除Dotfuscator.dat继续使用14天。


突然遇到Dotfuscator加密应用闪退现象,花了几天才发现原因:第三方控件不要使用系统事件,否则加密会报错!


在c4fToolkit
里面加个手势事件(ManipulationStarted),加密后应用会闪退

xmlns:c4fToolkit="clr-namespace:Coding4Fun.Phone.Controls;assembly=Coding4Fun.Phone.Controls"
     <c4fToolkit:Tile  ManipulationStarted="goback_Manipulate"  Width="0" Height="70" Title=""  Click="goback_Click"   >
          <Image  Grid.Column="0" Source="/images/back.png" Stretch="None" RenderTransformOrigin="0.682,0.044" Margin="-44,0,-58,0"  />
  </c4fToolkit:Tile>


解决方案:在控件上方加个容器,在容器上加事件


<StackPanel Grid.Column="0"   ManipulationStarted="goback_Manipulate"  >
     <c4fToolkit:Tile   Width="0" Height="70" Title=""  Click="goback_Click"   >
          <Image  Source="/images/back.png" Stretch="None" RenderTransformOrigin="0.682,0.044" Margin="-44,0,-58,0"  />
     </c4fToolkit:Tile>
</StackPanel>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值