[水如烟]您的代码安全吗?

水如烟 2005-01-08 06:50:15
主题:代码的安全性

昨天看了一篇关于Private的贴子,现在试验一下弄了下面的代码。
不知各位有什么感受。该怎么解决这个问题呢?
我现在经验不多。有经验者不妨多说两句,然后我再归纳总结一下。

Public Class Form1
Inherits System.Windows.Forms.Form
Windows 窗体设计器生成的代码

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim mLogin As New LoginClass
mLogin.IsAuth("")

Dim myFieldInfo() As System.Reflection.FieldInfo
Dim Pass As String
Dim myType As Type = mLogin.GetType
myFieldInfo = myType.GetFields(System.Reflection.BindingFlags.NonPublic Or _
System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.Public)
Dim i As Integer
For i = 0 To myFieldInfo.Length - 1
If myFieldInfo(i).FieldType Is GetType(String) Then
Pass = myFieldInfo(i).GetValue(mLogin).ToString
mLogin.IsAuth(Pass)
End If
Next i
End Sub
End Class

Public Class LoginClass
Private mPass As String = "A#$%%#%#4545390Rkdflssjrl%#(933234"
Public Function IsAuth(ByVal Pass As String) As Boolean
Try
If Pass = mPass Then
Return True
Else
Return False
End If
Finally
MainLogin(IsAuth)
End Try
End Function
Private Sub MainLogin(ByVal IsAuth As Boolean)
Dim mMain As New MainClass
mMain.PleaseLogin(IsAuth)
End Sub
End Class

Public Class MainClass
Public Sub PleaseLogin(ByVal IsAuth As Boolean)
If IsAuth Then
MsgBox("欢迎欢迎,热烈欢迎")
Else
MsgBox("呵呵,请再来一次")
End If
End Sub
End Class
...全文
401 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aimar168 2005-01-09
  • 打赏
  • 举报
回复
mark
Fibona 2005-01-09
  • 打赏
  • 举报
回复
安全性是很难的.尤其是反射方面的东西
  • 打赏
  • 举报
回复
呵呵。学习一下。
3tzjq 2005-01-09
  • 打赏
  • 举报
回复
我想大家都有反编译过某些组件,目的不是改为己用,还是希望从它些代码中学到些东西。
虽然都可以轻松的查看它的代码,但一般看到的方法、属生名等都是001,0A,0S,C1,....。这样毫无意义的命名就算我们能看到代码也研究不出个东西来,这虽然与Microsoft推荐的命名规则有违背。但是.Net组件开发必须做的一种严格的编码规则,目的就是抵抑反射给他们带来的版权问题。
健者天行 2005-01-09
  • 打赏
  • 举报
回复
mark
webserv2 2005-01-08
  • 打赏
  • 举报
回复
学习
Andy__Huang 2005-01-08
  • 打赏
  • 举报
回复
学习
兔子-顾问 2005-01-08
  • 打赏
  • 举报
回复
你可以试试用在.net里调用Com组件的方式。Com组件是没有好办法来反编译的。

随便拿个com的组件来,在.net里引用一下,会生成AxInterop前缀的dll和com名.dll,这样2个dll。用那个有名的看源码的软件叫什么来的?忘记了。可以看到com的代码。

我看过。是可以看到的。我当时看的是Mscomm.OCX的。但不肯定那个得到的代码就是源码。
peng1014 2005-01-08
  • 打赏
  • 举报
回复
学习
iloveyour 2005-01-08
  • 打赏
  • 举报
回复
反射是好东西,有利也有弊,
用混烯器也是对代码进行保护的一种方式,
道高一尺魔高一丈啊
landlordh 2005-01-08
  • 打赏
  • 举报
回复
看来,我也要好好研究一下反射了
淡蓝色2 2005-01-08
  • 打赏
  • 举报
回复
.net下编程,根本就没有安全的。
靠,一个Reflector全给你暴露!!

微软推荐用 强名+扰码的方式来阻止反编译。
唉,实际上这办法也不怎么样。

你可以试试用在.net里调用Com组件的方式。Com组件是没有好办法来反编译的。
兔子-顾问 2005-01-08
  • 打赏
  • 举报
回复
牛啊。呵呵。水前辈就是厉害,有一阵子没来vb.net了。以来就猛。
不错。这个加密的类和解密方法配套写的太好了。
nga96 2005-01-08
  • 打赏
  • 举报
回复
我也怕呀,反射太厉害了,牛
LoveCherry 2005-01-08
  • 打赏
  • 举报
回复
厉害
up
hudan 2005-01-08
  • 打赏
  • 举报
回复
这种写法的话,至少有3种方法可以知道LoginClass里的密码

水兄通过反射就是一种.
gucs 2005-01-08
  • 打赏
  • 举报
回复
没有用过反射,只是静态分析了一下,不知道会存在哪些安全问题。

还是请高手回答吧,学习

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧