关闭

【原创】破解光影魔术手0.24注册机(VB)源代码

995人阅读 评论(0) 收藏 举报

【原创】通过编译,运行环境WINXP HOME + VB

做人要厚道,转贴请注明出处。

声明:仅供学习交流使用,光影魔术手版本0.24

Private Const NCBASTAT = &H33
Private Const NCBNAMSZ = 16
Private Const HEAP_ZERO_MEMORY = &H8
Private Const HEAP_GENERATE_EXCEPTIONS = &H4
Private Const NCBRESET = &H32
Dim mac_value As String

Private Type NCB
     ncb_command As Byte
     ncb_retcode As Byte
     ncb_lsn As Byte
     ncb_num As Byte
     ncb_buffer As Long
     ncb_length As Integer
     ncb_callname As String * NCBNAMSZ
     ncb_name As String * NCBNAMSZ
     ncb_rto As Byte
     ncb_sto As Byte
     ncb_post As Long
     ncb_lana_num As Byte
     ncb_cmd_cplt As Byte
     ncb_reserve(9) As Byte ' Reserved, must be 0
     ncb_event As Long
End Type

Private Type ADAPTER_STATUS
     adapter_address(5) As Byte
     rev_major As Byte
     reserved0 As Byte
     adapter_type As Byte
     rev_minor As Byte
     duration As Integer
     frmr_recv As Integer
     frmr_xmit As Integer
     iframe_recv_err As Integer
     xmit_aborts As Integer
     xmit_success As Long
     recv_success As Long
     iframe_xmit_err As Integer
     recv_buff_unavail As Integer
     t1_timeouts As Integer
     ti_timeouts As Integer
     Reserved1 As Long
     free_ncbs As Integer
     max_cfg_ncbs As Integer
     max_ncbs As Integer
     xmit_buf_unavail As Integer
     max_dgram_size As Integer
     pending_sess As Integer
     max_cfg_sess As Integer
     max_sess As Integer
     max_sess_pkt_size As Integer
     name_count As Integer
End Type

Private Type NAME_BUFFER
     name As String * NCBNAMSZ
     name_num As Integer
     name_flags As Integer
End Type

Private Type ASTAT
     adapt As ADAPTER_STATUS
     NameBuff(30) As NAME_BUFFER
End Type

Private Declare Function Netbios Lib "netapi32.dll" _
(pncb As NCB) As Byte

Private Declare Sub CopyMemory Lib "kernel32" Alias _
"RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, _
ByVal cbCopy As Long)

Private Declare Function GetProcessHeap Lib "kernel32" () _
As Long

Private Declare Function HeapAlloc Lib "kernel32" _
(ByVal hHeap As Long, ByVal dwFlags As Long, _
ByVal dwBytes As Long) As Long

Private Declare Function HeapFree Lib "kernel32" _
(ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) _
As Long

Private Function EthernetAddress(LanaNumber As Long) _
As String

     Dim udtNCB          As NCB
     Dim bytResponse As Byte
     Dim udtASTAT        As ASTAT
     Dim udtTempASTAT As ASTAT
     Dim lngASTAT        As Long
     Dim strOut          As String
     Dim x               As Integer

     udtNCB.ncb_command = NCBRESET
     bytResponse = Netbios(udtNCB)
     udtNCB.ncb_command = NCBASTAT
     udtNCB.ncb_lana_num = LanaNumber
     udtNCB.ncb_callname = "* "
     udtNCB.ncb_length = Len(udtASTAT)
     lngASTAT = HeapAlloc(GetProcessHeap(), _
HEAP_GENERATE_EXCEPTIONS Or HEAP_ZERO_MEMORY, udtNCB.ncb_length)

     strOut = ""
     If lngASTAT Then
       udtNCB.ncb_buffer = lngASTAT
       bytResponse = Netbios(udtNCB)
       CopyMemory udtASTAT, udtNCB.ncb_buffer, Len(udtASTAT)
        With udtASTAT.adapt
         For x = 0 To 5
           strOut = strOut & Right$("00" & Hex$(.adapter_address(x)), 2)
         Next x
       End With
       HeapFree GetProcessHeap(), 0, lngASTAT
     End If
     EthernetAddress = strOut
     mac_value = EthernetAddress
  
End Function

'text1为第几张网卡,默认为0

'text2为用户名

'text3为注册码

Private Sub Command1_Click()            '生成注册
Dim i As Integer
Dim name As String
Dim name_asc, name_value As Integer
Dim name_h, name_l As Integer
Dim mac_value_, mac_value_l As Integer
Dim sum As Integer
Dim z As Integer
Dim zz As String
name = Trim(Text2.Text)
For i = 1 To Len(name) - 1
      name_asc = Asc(Mid(name, i, 1))
      name_h = (name_asc And 240)
      name_l = name_asc And 15
      mac_value_ = Asc(Mid(mac_value, i, 1))
      mac_value_l = mac_value_ And 15
      name_value = name_h + (name_l Xor mac_value_l)
      sum = sum + name_value
Next i

For i = 1 To 18                   '填充不进行比较的前18位
z = Int(9 * Rnd) + 1
zz = zz & z
Next i

sum = sum * Len(name)

If sum > 9999 Then
     sum = sum Mod 10000
Elseif sum <9000 then
sum = sum + 1000
End If

Text3.Text = zz & sum
End Sub

Private Sub Command2_Click() '推出按钮
End
End Sub

Private Sub Form_Load()
Call EthernetAddress(Text1.Text)          '获取网卡的MAC地址
End Sub

<script type="text/javascript"><!-- google_ad_client = "pub-0168042829314748"; google_ad_width = 200; google_ad_height = 200; google_ad_format = "200x200_as"; google_cpa_choice = "CAEaCA5tpVSPav0BMABQNFCuAQ"; google_color_border = "336699"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:213512次
    • 积分:3055
    • 等级:
    • 排名:第11356名
    • 原创:70篇
    • 转载:83篇
    • 译文:0篇
    • 评论:47条
    最新评论
    flex
    qingyin
    编程
    同学