《AceReader V4.5》破文+序號產生器原始碼 (12千字)

看雪資料發表於2015-11-15

目標軟體:  AceReader V4.5

軟體大小:  787 KB

軟體語言:  英文

軟體類別:  國外軟體 / 共享版 / 電子閱讀

應用平臺:  Win9x/NT/2000/XP

下載地址:  http://www.skycn.com/soft/9585.html

軟體介紹:
    為改進你的閱讀技巧,AceReader包含兩種模式:眼掃描訓練模式和中心文字模式。 在眼掃描訓練模式中,文字從顯示區域卷繞穿過,迫使你的眼睛象正常閱讀那樣移動。該軟體可以作為一種教學工具來使用,透過設定在更高的速度檔上的練習,可以使你不論在計算機上還是在書本上都能提高閱讀速度。軟體能透過不同等級水平的閱讀理解來跟蹤你的進度。AceReader可以幫你拋棄每個詞都在腦子裡發音的閱讀習慣,從而從整體上改進你的閱讀技巧和速度。在中心文字模式中,文字顯示在文字區的中央。這種模式可作為一種高效率的閱讀工具來使用,從而使閱讀更加容易和迅速,因為你的視線無需移動。你可以用該軟體作快速閱讀、略讀文件中或剪貼簿上的文字。AceReader的設計是面向所有年齡段的使用者的,從需要在現在這個資訊時代閱讀得更加迅速的繁忙的行政人員,到剛剛學會怎樣讀書的小孩子都可以使用它。

破解過程:

Hmemcpy,設斷,易來到:

PUSH    EBX
PUSH    ESI
PUSH    EDI
MOV      [EBP-04],ECX
MOVSX    EAX,BYTE [EBP+0C]    //查表。
MOV      ECX,09              //0x9 送入 ECX。
ADD      EAX,BYTE +02        //ECX+0x2。
CDQ   
IDIV    ECX                  //除以ECX。
MOV      EAX,[EBP+08]        //使用者名稱送入EAX。
MOVSX    EAX,BYTE [EAX]      //取使用者名稱的第一位。
MOV      ECX,0B              //0xB 送入 ECX。
LEA      EAX,[EAX+EDX+08]    //EAX+EDX+08 的值儲存到 EAX。
CDQ   
IDIV    ECX                  //除以ECX。
LEA      EAX,[EDX+70]        //EDX+0x70 的值儲存到EAX。
MOV      ECX,[EBP+10]        //EBP+0x10 的值送入ECX。
MOV      [ECX],AL            //AL 的值日送入 ECX。
MOVSX    EAX,BYTE [EBP+0C]    //查表。
MOV      ECX,05              //0x5 送入 ECX。
ADD      EAX,BYTE +09        //EAX+0x9。
CDQ   
IDIV    ECX                  //除以ECX。
MOV      EAX,[EBP+08]        //使用者名稱送入EAX。
MOVSX    EAX,BYTE [EAX+01]    //取使用者名稱的第二位。
LEA      EAX,[EAX+EDX+2C]    //將 EAX+EDX+2C 的值儲存到 EAX。
CDQ   
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
AND      EAX,BYTE +07        //EAX 與 0x7 做與運算。
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
ADD      EAX,BYTE +41        //EAX+0x41。
MOV      ECX,[EBP+10]        //EBP+0x10 的值送入ECX。
MOV      [ECX+01],AL          //AL 的值日送入 ECX+0x1 處。
MOVSX    EAX,BYTE [EBP+0C]    //查表。
MOV      ECX,03              //0x3 送入 ECX。
ADD      EAX,BYTE +09        //EAX+0x3。
CDQ   
IDIV    ECX                  //除以ECX。
MOV      EAX,[EBP+08]        //將使用者名稱送入EAX。
MOVSX    EAX,BYTE [EAX+02]    //取使用者名稱第三位。
ADD      EAX,EDX              //EAX+EDX。
CDQ   
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
AND      EAX,BYTE +07        //EAX 與 0x7 做與運算。
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
ADD      EAX,BYTE +32        //EAX+0x32。
MOV      ECX,[EBP+10]        //EBP+10 處的值送入 ECX。
MOV      [ECX+02],AL          //將 AL 的值送入 ECX+0x2 處。
MOVSX    EAX,BYTE [EBP+0C]    //查表。
ADD      EAX,BYTE +04        //EAX+0x4。
CDQ   
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
AND      EAX,BYTE +07        //EAX 與 0x7 做與運算。
XOR      EAX,EDX              //EAX 與 ECX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
MOV      ECX,[EBP+08]        //使用者名稱送入 ECX。
MOVSX    ECX,BYTE [ECX+03]    //取使用者名稱的第四位。
MOV      EBX,05              //將 Ox5 送入EBX。
LEA      EAX,[ECX+EAX+02]    //將 ECX+EAX+02 的值儲存到 EAX。
CDQ   
IDIV    EBX                  //除以 EBX。
LEA      EAX,[EDX+4A]        //EDX+0x4A 的值儲存到 EAX。
MOV      ECX,[EBP+10]        //EBP+10 處的值送入 ECX。
MOV      [ECX+03],AL          //將 AL 的值送入 ECX+03 處。
MOVSX    EAX,BYTE [EBP+0C]    //查表。
MOV      ECX,06              //將 0x6 送入 ECX。
ADD      EAX,BYTE +03        //EAX+0x3。
CDQ   
IDIV    ECX                  //除以ECX。
MOV      EAX,[EBP+08]        //使用者名稱送入 EAX。
MOVSX    EAX,BYTE [EAX+04]    //取使用者名稱的第五位。
MOV      ECX,0B              //將 0xB 送入 ECX。
LEA      EAX,[EAX+EDX+07]    //將 EAX+EDX+07 的值儲存到 EAX。
CDQ   
IDIV    ECX                  //除以 ECX。
LEA      EAX,[EDX+61]        //將 EDX+61 的值儲存到 EAX。
MOV      ECX,[EBP+10]        //將 EBP+10 的值送入 ECX。
MOV      [ECX+04],AL          //將 AL 送入 ECX+04 處。
MOVSX    EAX,BYTE [EBP+0C]    //查表。
ADD      EAX,BYTE +06        //EAX+0x6。
CDQ   
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
AND      EAX,BYTE +07        //EAX 與 0x7 做與運算。
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
MOV      ECX,[EBP+08]        //使用者名稱送入 ECX。
MOVSX    ECX,BYTE [ECX+05]    //取使用者名稱的第六位。
LEA      EAX,[ECX+EAX+07]    //將 ECX+EAX+07 的值儲存到 EAX。
CDQ   
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
AND      EAX,BYTE +07        //EAX 與0x7 做與運算。
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
ADD      EAX,BYTE +32        //EAX+0x32。
MOV      ECX,[EBP+10]        //將 EBP+10 處的值送入 ECX。
MOV      [ECX+05],AL          //將 AL 的值送入 ECX+05 處。
MOVSX    EAX,BYTE [EBP+0C]    //查表。 
ADD      EAX,BYTE +04        //EAX+0x4。
CDQ   
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
AND      EAX,BYTE +03        //EAX 與 0x3 做與運算。
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
MOV      ECX,[EBP+08]        //使用者名稱送入 ECX。
MOVSX    ECX,BYTE [ECX+06]    //取使用者名稱第七位。
LEA      EAX,[ECX+EAX+01]    //將 ECX+EAX+01 的值儲存到 EAX。 
CDQ   
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
AND      EAX,BYTE +01        //EAX 與0x1 做與運算。
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
ADD      EAX,BYTE +6D        //EAX+0x6D。
MOV      ECX,[EBP+10]        //將 EBP+10 出的值送入 ECX。
MOV      [ECX+06],AL          //將 AL 的值送入 ECX+06 處。
MOVSX    EAX,BYTE [EBP+0C]    //查表。
MOV      ECX,09              //0x9 送入 ECX。
ADD      EAX,BYTE +09        //EAX+0x9。
CDQ   
IDIV    ECX                  //除以 ECX。
MOV      EAX,[EBP+08]        //使用者名稱送入 EAX。
MOVSX    EAX,BYTE [EAX+07]    //取使用者名稱第八位。
LEA      EAX,[EAX+EDX+03]    //將 EAX+EDX+03 的值儲存到 EAX。
CDQ   
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
AND      EAX,BYTE +07        //EAX 與 0x7 做與運算。
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
ADD      EAX,BYTE +32        //EAX+0x32。
MOV      ECX,[EBP+10]        //將 EBP+10 處的值送入 ECX。
MOV      [ECX+07],AL          //將 AL 的值送入 ECX+07 處。
MOVSX    EAX,BYTE [EBP+0C]    //查表。
INC      EAX                  //EAX+1。
CDQ   
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
AND      EAX,BYTE +03        //EAX 與 0x3 做與運算。
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
MOV      ECX,[EBP+08]        //使用者名稱送入 ECX。
MOVSX    ECX,BYTE [ECX+08]    //取使用者名稱第九位。
LEA      EAX,[ECX+EAX+09]    //將 ECX+EAX+09 的值儲存到 EAX。
CDQ   
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
AND      EAX,BYTE +01        //EAX 與 0x1 做與運算。
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
ADD      EAX,BYTE +6D        //EAX+0x6D。
MOV      ECX,[EBP+10]        //將 EBP+10 處的值送入 ECX。
MOV      [ECX+08],AL          //將 AL 的值送入 ECX+08。
MOVSX    EAX,BYTE [EBP+0C]    //查表。
ADD      EAX,BYTE +08        //EAX+0x8。
CDQ   
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
AND      EAX,BYTE +01        //EAX 與 0x1 做與運算。
XOR      EAX,EDX              //EAX 與 EDX 做異或運算。
SUB      EAX,EDX              //EAX-EDX。
MOV      ECX,[EBP+08]        //使用者名稱送入 ECX。
MOVSX    ECX,BYTE [ECX+09]    //取使用者名稱第十位。
MOV      EBX,0B              //將 0xB 送入 EBX。
LEA      EAX,[ECX+EAX+0D]    //將 ECX+EAX+0D 的值儲存到 EAX。
CDQ   
IDIV    EBX                  //除以 EBX。
LEA      EAX,[EDX+50]        //將 EDX+0x50的值儲存到EAX。
MOV      ECX,[EBP+10]        //將 EBP+10 處的值送入 ECX。
MOV      [ECX+09],AL          //將 AL 的值送入 ECX+0x09 處。
MOV      EAX,[EBP+10]        //將 EBP+0x10 處值送入 EAX。
MOV      BYTE [EAX+0A],00
JMP      0041BB52
POP      EDI
POP      ESI
POP      EBX
LEAVE 
RET      0C                  //返回。(僅寫出關鍵部分,其餘程式碼略)


VB6 序號產生器原始碼:

Dim User_Name As String
Dim Base, CDQ, Mod_Number, SN_1, SN_2, SN_3, SN_4, SN_5, SN_6, SN_7, SN_8, SN_9, SN_10 As Integer

Private Sub Command1_Click()
  About_message = MsgBox("This keygen made by fengma(fengma@2911.net) !", 4096 + vbExclamation, "About...")
End Sub

Private Sub Command2_Click()
If Command2.Caption = "Get now !" Then

If Len(Text1.Text) = 0 Then
  message_enter_name = MsgBox("Use a name of at least 1 Char,please !", 4096 + vbExclamation, "Information")
  Exit Sub
End If

User_Name = Text1.Text

CDQ = 0

Base = 1

SN_1 = ((Base + 2) Mod 9 + Asc(Mid$(User_Name, 1)) + 8) Mod 11 + 112

Mod_Number = (Base + 9) Mod 5
If Mid$(User_Name, 2) <> "" Then
SN_2 = ((((((Asc(Mid$(User_Name, 2)) + Mod_Number + 44) Xor Mod_Number) - Mod_Number) And 7) Xor Mod_Number) - Mod_Number) + 65
Else
SN_2 = ((((((Mod_Number + 44) Xor Mod_Number) - Mod_Number) And 7) Xor Mod_Number) - Mod_Number) + 65
End If

Mod_Number = (Base + 9) Mod 3
If Mid$(User_Name, 3) <> "" Then
SN_3 = (((((Asc(Mid$(User_Name, 3)) + Mod_Number Xor CDQ) - CDQ) And 7) Xor CDQ) - CDQ) + 50
Else
SN_3 = (((((Mod_Number Xor CDQ) - CDQ) And 7) Xor CDQ) - CDQ) + 50
End If

Mod_Number = ((((((Base + 4) Xor CDQ) - CDQ) And 7) Xor CDQ) - CDQ)
If Mid$(User_Name, 4) <> "" Then
SN_4 = ((Asc(Mid$(User_Name, 4)) + Mod_Number + 2) Mod 5) + 74
Else
SN_4 = ((Mod_Number + 2) Mod 5) + 74
End If

If Mid$(User_Name, 5) <> "" Then
SN_5 = (Asc(Mid$(User_Name, 5)) + (Base + 3) Mod 6 + 7) Mod 11 + 97
Else
SN_5 = ((Base + 3) Mod 6 + 7) Mod 11 + 97
End If

Mod_Number = (((((Base + 6) Xor CDQ) - CDQ) And 7) Xor CDQ) - CDQ
If Mid$(User_Name, 6) <> "" Then
SN_6 = ((((((Asc(Mid$(User_Name, 6)) + Mod_Number + 7) Xor CDQ) - CDQ) And 7) Xor CDQ) - CDQ) + 50
Else
SN_6 = ((((((Mod_Number + 7) Xor CDQ) - CDQ) And 7) Xor CDQ) - CDQ) + 50
End If

Mod_Number = ((((Base + 4) Xor CDQ) - CDQ) And 3) Xor CDQ - CDQ
If Mid$(User_Name, 7) <> "" Then
SN_7 = ((((((Asc(Mid$(User_Name, 7)) + Mod_Number + 1) Xor CDQ) - CDQ) And 1) Xor CDQ) - CDQ) + 109
Else
SN_7 = ((((((Mod_Number + 1) Xor CDQ) - CDQ) And 1) Xor CDQ) - CDQ) + 109
End If

Mod_Number = (Base + 9) Mod 9
If Mid$(User_Name, 8) <> "" Then
SN_8 = ((((((Asc(Mid$(User_Name, 8)) + Mod_Number + 3) Xor CDQ) - CDQ) And 7) Xor CDQ) - CDQ) + 50
Else
SN_8 = ((((((Mod_Number + 3) Xor CDQ) - CDQ) And 7) Xor CDQ) - CDQ) + 50
End If

Mod_Number = (((((Base + 1) Xor CDQ) - CDQ) And 3) Xor CDQ) - CDQ
If Mid$(User_Name, 9) <> "" Then
SN_9 = ((((((Asc(Mid$(User_Name, 9)) + Mod_Number + 9) Xor CDQ) - CDQ) And 1) Xor CDQ) - CDQ) + 109
Else
SN_9 = ((((((Mod_Number + 9) Xor CDQ) - CDQ) And 1) Xor CDQ) - CDQ) + 109
End If

Mod_Number = (((((Base + 8) Xor CDQ) - CDQ) And 1) Xor CDQ) - CDQ
If Mid$(User_Name, 10) <> "" Then
SN_10 = ((Asc(Mid$(User_Name, 10)) + Mod_Number + 13) Mod 11) + 80
Else
SN_10 = ((Mod_Number + 13) Mod 11) + 80
End If

Text2.Text = Chr(SN_1) + Chr(SN_2) + Chr(SN_3) + Chr(SN_4) + Chr(SN_5) + Chr(SN_6) + Chr(SN_7) + Chr(SN_8) + Chr(SN_9) + Chr(SN_10)
With Command2
.SetFocus
.Font = Tahoma
.Caption = "Bye !"
End With

Else
End
End If

End Sub

小菜鳥,不足之處請高手指點!

相關文章