|
|
|
|
|
Shift+F7/F8/F9处理异常
可能是,也可能不是。当出现OD提示异常时,这个异常可以是人为的,也可能是程序的BUG或未知错误引起的。 |
|
|
|
|
|
大大们都来看看啊!急死我了!~~~~我我我~~~
注:Asc('A') == 65和==&H41是一样的大小,你不用去管这个,只是表达方式不同,65是十进制表达方式,&H41是十六进制的表达方式。 |
|
|
大大们都来看看啊!急死我了!~~~~我我我~~~
'根据你提供的信息,只能写成这样了 Private Sub Command1_Click() Dim Name As String, Code As String, Sn As String Dim nLow As Byte, cLow As Byte Dim nHigh As Byte Dim n As Byte, c As Byte, bTmp As Byte Dim i As Integer, j As Integer Dim nLen As Integer Dim nTmp As Long Name = Text1.Text Code = Text2.Text If (Name = "") And (Code = "") Then Exit Sub End If nLen = Len(Name) Sn = "" j = 1 For i = 1 To nLen 'mov al, byte ptr [eax+ebx-1] 'and al, 0F 'mov edx, dword ptr [ebp-8] 'mov dl, byte ptr [edx+esi-1] 'and dl, 0F 'xor al, dl n = Asc(Mid(Name, i, 1)) c = Asc(Mid(Code, j, 1)) nLow = n And &HF cLow = c And &HF bTmp = nLow Xor cLow 'and dl, 0F0 'mov cl, byte ptr [ebp-D] 'add dl, cl 'mov byte ptr [eax+ebx-1], dl 'inc esi nHigh = n And &HF0 j = j + 1 Sn = Sn + Chr(nHigh + bTmp) 'cmp esi, eax 'jle short 00513F48 'mov esi, 1 If j > Len(Code) Then j = 1 End If Next nTmp = 0 For i = 1 To Len(Sn) 'mov esi, dword ptr [ebp-4] 'movzx esi, byte ptr [esi+edx-1] 'imul esi, ecx 'add ebx, esi nTmp = nTmp + (Asc(Mid(Sn, i, 1)) * nLen) Next Text3.Text = nTmp End Sub 本代码的着色效果由xTiNt自动完成 下载xTiNt be2K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0t1I4x3g2)9J5k6e0V1H3i4K6u0W2y4K6g2Q4x3X3f1^5y4q4)9J5c8Y4N6W2j5W2)9J5c8X3E0S2L8X3q4#2L8W2)9J5c8X3c8G2N6$3&6D9L8$3q4V1i4K6u0r3P5q4c8A6e0Y4c8Q4x3X3g2J5j5i4t1`. |
|
|
大大们都来看看啊!急死我了!~~~~我我我~~~
你说的还是不够清楚。 00513F03 |> /8B45 FC /mov eax, dword ptr [ebp-4] 00513F06 |. |8A4418 FF |mov al, byte ptr [eax+ebx-1] al是取注册码还是机器码? 00513F0A |. |24 0F |and al, 0F 00513F0C |. |8B55 F8 |mov edx, dword ptr [ebp-8] 00513F0F |. |8A5432 FF |mov dl, byte ptr [edx+esi-1]dl又是取注册码还是机器码? 00513F13 |. |80E2 0F |and dl, 0F 00513F16 |. |32C2 |xor al, dl 00513F18 |. |8845 F3 |mov byte ptr [ebp-D], al 00513F1B |. |8D45 FC |lea eax, dword ptr [ebp-4] 00513F1E |. |E8 7D13EFFF |call 004052A0 <------------------取我的用户名这个是取用户名?函数返回值是?eax="wopasi" 00513F23 |. |8B55 FC |mov edx, dword ptr [ebp-4] 00513F26 |. |8A541A FF |mov dl, byte ptr [edx+ebx-1] 00513F2A |. |80E2 F0 |and dl, 0F0 00513F2D |. |8A4D F3 |mov cl, byte ptr [ebp-D] 00513F30 |. |02D1 |add dl, cl 00513F32 |. |885418 FF |mov byte ptr [eax+ebx-1], dl 00513F36 |. |46 |inc esi 00513F37 |. |8B45 F8 |mov eax, dword ptr [ebp-8] 00513F3A |. |E8 0911EFFF |call 00405048 <------------------取我的用户名这个也是取用户名?看后面的比较这个好像是取注册码和用户名的长度。 00513F3F |. |3BF0 |cmp esi, eax 00513F41 |. |7E 05 |jle short 00513F48 00513F43 |. |BE 01000000 |mov esi, 1 00513F48 |> |43 |inc ebx 00513F49 |. |4F |dec edi 00513F4A |.^\75 B7 \jnz short 00513F03 累加过程:值位于ebx中 00594F3C |> /8B75 FC /mov esi, dword ptr [ebp-4] 00594F3F |. |0FB67416 FF |movzx esi, byte ptr [esi+edx-1] 00594F44 |. |0FAFF1 |imul esi, ecx 00594F47 |. |03DE |add ebx, esi 00594F49 |. |42 |inc edx 00594F4A |. |48 |dec eax 00594F4B |.^\75 EF \jnz short 00594F3C 还有就是最后注册码的形式是如何的显示的?是ebx的数值?是以10进制显示还是用16进制显示?最好你给出一个正确的注册码出来。 |
|
|
大大们都来看看啊!急死我了!~~~~我我我~~~
这样? Private Sub Command1_Click() Dim Name As String, Code As String, Sn As String Dim nLow As Byte Dim nHigh As Byte, cHigh As Byte Dim n As Byte, c As Byte Dim i As Integer Dim nLen As Integer Name = Text1.Text Code = Text2.Text If (Name = "") And (Code = "") Then Exit Sub End If nLen = Len(Name) Sn = "" For i = 1 To nLen n = Asc(Mid(Name, i, 1)) c = Asc(Mid(Code, i, 1)) nLow = n And &HF nHigh = n And &HF0 cHigh = c And &HF0 nHigh = nHigh Xor cHigh nLow = nLow Or nHigh Sn = Sn + Hex((nLow * nLen)) Next Text3.Text = Sn End Sub 本代码的着色效果由xTiNt自动完成 下载xTiNt c23K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0t1I4x3g2)9J5k6e0V1H3i4K6u0W2y4K6g2Q4x3X3f1^5y4q4)9J5c8Y4N6W2j5W2)9J5c8X3E0S2L8X3q4#2L8W2)9J5c8X3c8G2N6$3&6D9L8$3q4V1i4K6u0r3P5q4c8A6e0Y4c8Q4x3X3g2J5j5i4t1`. |
|
|
|
|
|
|
|
|
|
|
|
[求助]关于RadASM菜单快捷键的问题
看你的资源文件,你的资源文件还没有添加快捷键(Accel)资源。 |
|
|
请问这段加密算法可逆吗?谢谢
不能。这是CRC32的算法。 |
|
|
|
|
|
|
|
|
|
|
|
一个程序里有两个一样的函数
Forward是Delphi的关键字,指示这个函数是一个声明函数,而不是实现函数。这个定义主要是用在前面的函数如果要调用他后面的函数而设定的。 |
|
|
一个程序里有两个一样的函数
一般这样使用的函数都会有像如下的形式: Function GetVersionHash : String; Forward; Function xxxxFunc:String; begin xxx := GetVersionHash(); //GetVersionHash前面的函数要调用GetVersionHash函数就必须在使用之前声明他才行。 end; Function GetVersionHash : String; var reg : TRegistry; sWinVer : String; begin .... end; 当然,这个函数的声明是在implementation节里,如果不是我说的上面的情况,那么第一种的声明不要也可以。 |
|
|
一个程序里有两个一样的函数
第一个是第二个函数的声明,第二个才是真正执行的功能函数。 |
|
|
这个BC++代码用Delphi应该怎么写?
用mouse_event和使用PostMessage是有区别的。mouse_event不用理会对应那一个窗口,他只需模拟鼠标在当前位置按下鼠标,系统会自动找对应的窗口发送鼠标消息。而PostMessage需要对应窗口句柄,如果你使用的窗口句柄不是程序要处理的,就是你没有找对处理鼠标按下的窗口句柄,程序就不会正确响应你的鼠标事件。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
勋章
兑换勋章
证书
证书查询 >
能力值