新云软件园:请安心下载,绿色无病毒!

软件提交最近更新热门排行
您现在的位置:首页››编程教学››.NET编程››.NET基础

google pagerank checksum算法

2005-06-16 01:53作者:佚名来源:本站整理浏览:774 评论:0
原来网上早就有了checksum的相关破解,下面试checksum的汇编代码和vb版的破解。

目前我所用的就是vb版的checksum代码。



checksum的汇编代码:

GOOGLECHECK proc near

var_8 = dword ptr -8
var_4 = dword ptr -4
url_offset = dword ptr  8
url_length = dword ptr  0Ch
magic_dword = dword ptr  10h

push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+url_length]
cmp eax, 0Ch
push ebx
push esi
mov esi, [ebp+magic_dword] ; = 0xE6359A60
push edi
mov edi, 9E3779B9h ; derived from the golden number, hi TEA ;)
mov ebx, edi
mov [ebp+var_4], eax
jb jump_1
push 0Ch
pop ecx
xor edx, edx
div ecx
mov ecx, [ebp+url_offset]
mov [ebp+var_8], eax

loop_1:
movzx eax, byte ptr [ecx+7]
movzx edx, byte ptr [ecx+6]
shl eax, 8
add eax, edx
movzx edx, byte ptr [ecx+5]
shl eax, 8
add eax, edx
movzx edx, byte ptr [ecx+4]
add edx, edi
shl eax, 8
lea edi, [edx+eax]
movzx eax, byte ptr [ecx+0Bh]
movzx edx, byte ptr [ecx+0Ah]
shl eax, 8
add eax, edx
movzx edx, byte ptr [ecx+9]
shl eax, 8
add eax, edx
movzx edx, byte ptr [ecx+8]
add edx, esi
shl eax, 8
lea esi, [edx+eax]
movzx edx, byte ptr [ecx+3]
movzx eax, byte ptr [ecx+2]
shl edx, 8
add edx, eax
movzx eax, byte ptr [ecx+1]
shl edx, 8
add edx, eax
movzx eax, byte ptr [ecx]
shl edx, 8
add edx, eax
sub edx, edi
sub edx, esi
mov eax, esi
shr eax, 0Dh
add edx, ebx
xor edx, eax
sub edi, edx
sub edi, esi
mov eax, edx
shl eax, 8
xor edi, eax
sub esi, edi
sub esi, edx
mov eax, edi
shr eax, 0Dh
xor esi, eax
sub edx, edi
sub edx, esi
mov eax, esi
shr eax, 0Ch
xor edx, eax
sub edi, edx
sub edi, esi
mov eax, edx
shl eax, 10h
xor edi, eax
sub esi, edi
sub [ebp+var_4], 0Ch
sub esi, edx
mov eax, edi
shr eax, 5
xor esi, eax
sub edx, edi
mov eax, esi
shr eax, 3
sub edx, esi
xor edx, eax
mov ebx, edx
sub edi, ebx
sub edi, esi
mov eax, ebx
shl eax, 0Ah
xor edi, eax
sub esi, edi
mov eax, edi
sub esi, ebx
shr eax, 0Fh
xor esi, eax
add ecx, 0Ch
dec [ebp+var_8]
jnz loop_1
jmp short jump_2

jump_1:
mov ecx, [ebp+url_offset]

jump_2:
add esi, [ebp+url_length]
mov eax, [ebp+var_4]
dec eax
cmp eax, 0Ah ; switch 11 cases
ja defaultswitch ; default
jmp ds:off_100307EA[eax*4] ; switch jump

switch_10:
movzx eax, byte ptr [ecx+0Ah] ; case 0xA
shl eax, 18h
add esi, eax

switch_9:
movzx eax, byte ptr [ecx+9] ; case 0x9
shl eax, 10h
add esi, eax

switch_8:
movzx eax, byte ptr [ecx+8] ; case 0x8
shl eax, 8
add esi, eax

switch_7:
movzx eax, byte ptr [ecx+7] ; case 0x7
movzx edx, byte ptr [ecx+6]
shl eax, 8
add eax, edx
movzx edx, byte ptr [ecx+5]
shl eax, 8
add eax, edx
movzx edx, byte ptr [ecx+4]
shl eax, 8
add edx, edi
lea edi, [edx+eax]
jmp short switch_3 ; case 0x3

switch_6:
movzx eax, byte ptr [ecx+6] ; case 0x6
shl eax, 10h
add edi, eax

switch_5:
movzx eax, byte ptr [ecx+5] ; case 0x5
shl eax, 8
add edi, eax

switch_4:
movzx eax, byte ptr [ecx+4] ; case 0x4
add edi, eax

switch_3:
movzx eax, byte ptr [ecx+3] ; case 0x3
movzx edx, byte ptr [ecx+2]
shl eax, 8
add eax, edx
movzx edx, byte ptr [ecx+1]
movzx ecx, byte ptr [ecx]
shl eax, 8
add eax, edx
shl eax, 8
add ecx, ebx
lea ebx, [ecx+eax]
jmp short defaultswitch ; default

switch_2:
movzx eax, byte ptr [ecx+2] ; case 0x2
shl eax, 10h
add ebx, eax

switch_1:
movzx eax, byte ptr [ecx+1] ; case 0x1
shl eax, 8
add ebx, eax

switch_0:
movzx eax, byte ptr [ecx] ; case 0x0
add ebx, eax

defaultswitch:
sub ebx, edi ; default
sub ebx, esi
mov eax, esi
shr eax, 0Dh
xor ebx, eax
sub edi, ebx
sub edi, esi
mov eax, ebx
shl eax, 8
xor edi, eax
sub esi, edi
sub esi, ebx
mov eax, edi
shr eax, 0Dh
xor esi, eax
sub ebx, edi
sub ebx, esi
mov eax, esi
shr eax, 0Ch
xor ebx, eax
sub edi, ebx
sub edi, esi
mov eax, ebx
shl eax, 10h
xor edi, eax
sub esi, edi
mov eax, edi
sub esi, ebx
shr eax, 5
xor esi, eax
sub ebx, edi
mov eax, esi
mov ecx, eax
sub ebx, eax
shr ecx, 3
xor ebx, ecx
sub edi, ebx
sub edi, eax
mov ecx, ebx
shl ecx, 0Ah
xor edi, ecx
sub eax, edi
sub eax, ebx
shr edi, 0Fh
xor eax, edi
pop edi
pop esi
pop ebx
leave
retn
GOOGLECHECK endp

; Switch table
off_100307EA
dd offset switch_0
dd offset switch_1
dd offset switch_2
dd offset switch_3
dd offset switch_4
dd offset switch_5
dd offset switch_6
dd offset switch_7
dd offset switch_8
dd offset switch_9
dd offset switch_10
checksum的vb代码:

'=========================================================
' functions for the checksum:
'
' Function sl(ByVal x, ByVal n)
' Function sr(ByVal x, ByVal n)
' Function zeroFill(ByVal a, ByVal b)
' Private Function uadd(ByVal L1, ByVal L2)
' Private Function usub(ByVal L1, ByVal L2)
' Function mix(ByVal ia, ByVal ib, ByVal ic)
' Function gc(ByVal s, ByVal i)
' function GoogleCH(ByVal sURL)
' Function CalculateChecksum(sURL)
'=========================================================
Function sl(ByVal x, ByVal n)
   If n = 0 Then
       sl = x
   Else
       Dim k
       k = CLng(2 ^ (32 - n - 1))
       Dim d
       d = x And (k - 1)
       Dim c
       c = d * CLng(2 ^ n)
       If x And k Then
           c = c Or &H80000000
       End If
       sl = c
   End If
End Function

Function sr(ByVal x, ByVal n)
   If n = 0 Then
       sr = x
   Else
       Dim y
       y = x And &H7FFFFFFF
       Dim z
       If n = 32 - 1 Then
           z = 0
       Else
           z = y \ CLng(2 ^ n)
       End If
       If y <> x Then
           z = z Or CLng(2 ^ (32 - n - 1))
       End If
       sr = z
   End If
End Function

Function zeroFill(ByVal a, ByVal b)  
Dim x
if (&H80000000 AND a) then
 x = sr(a,1)
 x = x AND (NOT &H80000000)
 x = x OR &H40000000
       x = sr(x,b-1)
else
 x = sr(a,b)
end if
zeroFill = x
End Function

Private Function uadd(ByVal L1, ByVal L2)
   Dim L11, L12, L21, L22, L31, L32
   L11 = L1 And &HFFFFFF
   L12 = (L1 And &H7F000000) \ &H1000000
   If L1 < 0 Then L12 = L12 Or &H80
   L21 = L2 And &HFFFFFF
   L22 = (L2 And &H7F000000) \ &H1000000
   If L2 < 0 Then L22 = L22 Or &H80
   L32 = L12 + L22
   L31 = L11 + L21
   If (L31 And &H1000000) Then L32 = L32 + 1
   uadd = (L31 And &HFFFFFF) + (L32 And &H7F) * &H1000000
   If L32 And &H80 Then uadd = uadd Or &H80000000
End Function

Private Function usub(ByVal L1, ByVal L2)
   Dim L11, L12, L21, L22, L31, L32
   L11 = L1 And &HFFFFFF
   L12 = (L1 And &H7F000000) \ &H1000000
   If L1 < 0 Then L12 = L12 Or &H80
   L21 = L2 And &HFFFFFF
   L22 = (L2 And &H7F000000) \ &H1000000
   If L2 < 0 Then L22 = L22 Or &H80
   L32 = L12 - L22
   L31 = L11 - L21
   If L31 < 0 Then
       L32 = L32 - 1
       L31 = L31 + &H1000000
   End If
   usub = L31 + (L32 And &H7F) * &H1000000
   If L32 And &H80 Then usub = usub Or &H80000000
End Function

Function mix(ByVal ia, ByVal ib, ByVal ic)
Dim a, b, c
a = ia
b = ib
c = ic

a = usub(a,b)
a = usub(a,c)
a = a XOR zeroFill(c,13)

b = usub(b,c)
b = usub(b,a)
b = b XOR sl(a,8)

c = usub(c,a)
c = usub(c,b)
c = c XOR zeroFill(b,13)

a = usub(a,b)
a = usub(a,c)
a = a XOR zeroFill(c,12)

b = usub(b,c)
b = usub(b,a)
b = b XOR sl(a,16)

c = usub(c,a)
c = usub(c,b)
c = c XOR zeroFill(b,5)

a = usub(a,b)
a = usub(a,c)
a = a XOR zeroFill(c,3)

b = usub(b,c)
b = usub(b,a)
b = b XOR sl(a,10)

c = usub(c,a)
c = usub(c,b)
c = c XOR zeroFill(b,15)

Dim ret(3)
 
ret(0) = a
ret(1) = b
ret(2) = c

mix = ret
End Function

Function gc(ByVal s, ByVal i)
gc = Asc(Mid(s,i+1,1))
End Function

function GoogleCH(ByVal sURL)
Dim iLength, a, b, c, k, iLen, m
iLength = Len(sURL)

a = &H9E3779B9
b = &H9E3779B9
c = GOOGLE_MAGIC
k = 0
   
   iLen = iLength
   do while iLen >= 12
       a = uadd(a,(uadd(gc(sURL,k+0),uadd(sl(gc(sURL,k+1),8),uadd(sl(gc(sURL,k+2),16),sl(gc(sURL,k+3),24))))))
       b = uadd(b,(uadd(gc(sURL,k+4),uadd(sl(gc(sURL,k+5),8),uadd(sl(gc(sURL,k+6),16),sl(gc(sURL,k+7),24))))))
       c = uadd(c,(uadd(gc(sURL,k+8),uadd(sl(gc(sURL,k+9),8),uadd(sl(gc(sURL,k+10),16),sl(gc(sURL,k+11),24))))))

 m = mix(a,b,c)
 
       a = m(0)
       b = m(1)
       c = m(2)
       
       k = k + 12

       iLen = iLen - 12
   loop

   c = uadd(c,iLength)

   select case iLen ' all the case statements fall through
       case 11
  c = uadd(c,sl(gc(sURL,k+10),24))
  c = uadd(c,sl(gc(sURL,k+9),16))
  c = uadd(c,sl(gc(sURL,k+8),8))
  b = uadd(b,sl(gc(sURL,k+7),24))
  b = uadd(b,sl(gc(sURL,k+6),16))
  b = uadd(b,sl(gc(sURL,k+5),8))
  b = uadd(b,gc(sURL,k+4))
  a = uadd(a,sl(gc(sURL,k+3),24))
  a = uadd(a,sl(gc(sURL,k+2),16))
  a = uadd(a,sl(gc(sURL,k+1),8))
  a = uadd(a,gc(sURL,k+0))
       case 10
  c = uadd(c,sl(gc(sURL,k+9),16))
  c = uadd(c,sl(gc(sURL,k+8),8))
  b = uadd(b,sl(gc(sURL,k+7),24))
  b = uadd(b,sl(gc(sURL,k+6),16))
  b = uadd(b,sl(gc(sURL,k+5),8))
  b = uadd(b,gc(sURL,k+4))
  a = uadd(a,sl(gc(sURL,k+3),24))
  a = uadd(a,sl(gc(sURL,k+2),16))
  a = uadd(a,sl(gc(sURL,k+1),8))
  a = uadd(a,gc(sURL,k+0))
       case 9
  c = uadd(c,sl(gc(sURL,k+8),8))
  b = uadd(b,sl(gc(sURL,k+7),24))
  b = uadd(b,sl(gc(sURL,k+6),16))
  b = uadd(b,sl(gc(sURL,k+5),8))
  b = uadd(b,gc(sURL,k+4))
  a = uadd(a,sl(gc(sURL,k+3),24))
  a = uadd(a,sl(gc(sURL,k+2),16))
  a = uadd(a,sl(gc(sURL,k+1),8))
  a = uadd(a,gc(sURL,k+0))
       case 8
  b = uadd(b,sl(gc(sURL,k+7),24))
  b = uadd(b,sl(gc(sURL,k+6),16))
  b = uadd(b,sl(gc(sURL,k+5),8))
  b = uadd(b,gc(sURL,k+4))
  a = uadd(a,sl(gc(sURL,k+3),24))
  a = uadd(a,sl(gc(sURL,k+2),16))
  a = uadd(a,sl(gc(sURL,k+1),8))
  a = uadd(a,gc(sURL,k+0))
       case 7
  b = uadd(b,sl(gc(sURL,k+6),16))
  b = uadd(b,sl(gc(sURL,k+5),8))
  b = uadd(b,gc(sURL,k+4))
  a = uadd(a,sl(gc(sURL,k+3),24))
  a = uadd(a,sl(gc(sURL,k+2),16))
  a = uadd(a,sl(gc(sURL,k+1),8))
  a = uadd(a,gc(sURL,k+0))
       case 6
  b = uadd(b,sl(gc(sURL,k+5),8))
  b = uadd(b,gc(sURL,k+4))
  a = uadd(a,sl(gc(sURL,k+3),24))
  a = uadd(a,sl(gc(sURL,k+2),16))
  a = uadd(a,sl(gc(sURL,k+1),8))
  a = uadd(a,gc(sURL,k+0))
       case 5
  b = uadd(b,gc(sURL,k+4))
  a = uadd(a,sl(gc(sURL,k+3),24))
  a = uadd(a,sl(gc(sURL,k+2),16))
  a = uadd(a,sl(gc(sURL,k+1),8))
  a = uadd(a,gc(sURL,k+0))
       case 4
  a = uadd(a,sl(gc(sURL,k+3),24))
  a = uadd(a,sl(gc(sURL,k+2),16))
  a = uadd(a,sl(gc(sURL,k+1),8))
  a = uadd(a,gc(sURL,k+0))
       case 3
  a = uadd(a,sl(gc(sURL,k+2),16))
  a = uadd(a,sl(gc(sURL,k+1),8))
  a = uadd(a,gc(sURL,k+0))
       case 2
  a = uadd(a,sl(gc(sURL,k+1),8))
  a = uadd(a,gc(sURL,k+0))
       case 1
  a = uadd(a,gc(sURL,k+0))
   End Select
   
   m = mix(a,b,c)
   
   GoogleCH = m(2)
End Function

Function CalculateChecksum(sURL)
CalculateChecksum = "6" & CStr(GoogleCH("info:" & sURL) AND &H7FFFFFFF)
End Function
Tags:责任编辑:cvery
顶一下(55)
91.67%
    1. 谷歌浏览器谷歌浏览器合集

      本篇集中了几款谷歌浏览器相关软件,以方便大家使用。

    1. 浏览器软件排行榜2019浏览器软件排行榜2019

      浏览器下载排行榜专区收集了多种实用方便并且功能强大、运行速度最快的浏览器免费下载。

    1. IE浏览器IE浏览器

      IE浏览器下载专区提供了IE9中文版下载和IE8中文版下载以及IE浏览器所有版本免费下载。

    文章评论 新云下载QQ群:① 7551827使用手机微信搜索 微信号:xinyunshouyou 关注我们 有更多惊喜!!

    请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!
      验证码:     登录   注册
    网友评论

    关注新云安卓游戏网

    旺彩彩票 www.770528.com-福彩三d字谜今天| www.851158.com-福彩体彩今日开奖号| www.939573.com-福彩快三代玩骗局| www.sr19.com-台湾时时彩骗局揭秘| www.539277.com-彩票销售业主总结| www.664356.com-彩之家是骗人的吗| www.4292.vip-双彩论坛的双彩图| www.31129.cc-哪家彩票app正规| www.060048.com-爱彩乐专业数据网站| www.42qr.com-随州论坛快三论剑| www.2337.in-七彩云南翡翠手链| www.200573.com-彩票易网手机版| www.69qh.com-红菜苔彩票可靠吗| www.7627.cn-今天彩民乐图是什么| www.33935.cc-体彩七位数中奖号| www.87703.com-超级彩票下载安装| www.057965.com-体育彩票销售提成| www.154466.com-随时赚彩票苹果版| www.238047.com-3d福利彩票下载| www.314214.com-玩重庆时时彩的心态| www.395488.com-重庆全天彩-| www.503392.com-鸿彩灯光维修| www.579011.com-甘肃体彩中奖新闻| www.651115.com-陈流水彩示范| www.gf13.com-怀表每天快三秒| www.zz27.cc-太原体彩店如何申请| www.46zv.com-彩票3d幸运码| www.0684.me-106官方彩票网站| www.7418.vip-竞彩店址查询| www.31572.cc-足球竞彩购买| www.75688.cc-申航彩票网站| www.027064.com-078彩票代打| www.103599.com-广东彩妆进货| www.174055.com-一分快三网址| www.240003.com-彩神8下载手机版| www.311259.com-80彩票下载-| www.381387.com-彩票周五开什么奖| www.477251.com-7星彩每周开奖时间| www.558264.com-1分时时彩真假| www.627477.com-乐米彩票吧-| www.698049.com-浙江省体彩中心| www.775946.com-3分彩是哪里的彩种| www.845788.com-福彩单是什么意思| www.912739.com-广西福彩快3下载| www.974476.com-腾讯分分彩新手玩法| www.az83.com-快三平台骗局| www.st86.com-长期盈利时时彩秘诀| www.01pl.com-福彩选四开奖查询| www.71pz.com-如何科学预测彩票| www.1398.bid-彩票奖金池-| www.7080.cn-银燕七彩艺校| www.40311.com-eg彩票平台注册| www.87904.com-澳门三分彩开奖记录| www.040658.com-怎样玩体育博彩| www.135098.com-绿好彩香烟-| www.260820.com-河北福彩快三预测| www.336384.com-彩票中了不能提现| www.425455.com-宝赢彩票软件苹果版| www.529234.com-七乐彩免费预测网| www.391091.com-天下彩今晚开奖直播| www.567147.com-福利双色球彩票下载| www.654422.com-彩票店销售假彩票| www.725762.com-a3彩色打印机| www.797109.com-澳门福乐彩官方网站| www.887160.com-彩票代玩真的嘛| www.987089.com-彩吧vip是骗局么| www.iq02.com-首页新彩票走势网| www.24vb.com-华彩的含义-| www.2484.cn-湖北福彩网双色球| www.9009.date-越乐彩-| www.022841.com-河南派彩-| www.095108.com-双彩图3d双彩图| www.188653.com-快三屠龙和跟龙| www.263617.com-3d新彩吧网-| www.46593.com-韩国彩票怎么玩法| www.015834.com-乐彩彩票网官网是啥| www.092235.com-3分彩-| www.169698.com-彩票入门基础知识| www.241818.cc-人人彩票下载| www.307378.com-足彩亚洲杯-| www.376798.com-福彩36选7南粤| www.477602.com-彩神通免费版双色球| www.551031.com-合买彩票中了人跑了| www.618714.com-永久彩票下载| www.754474.com-双彩在哪下载| www.cai0955.com安徽彩票快3走势图| www.02rc.com-手机买彩票世界杯| www.1877.in-今日彩客户端| www.8895.live-竞彩半全场中奖图片| www.62756.cc-今天体彩排列3开奖| www.029913.com-彩票大赢家专家预测| www.137028.com-滨州福彩-| www.230094.com-购彩大厅手机版| www.297536.com-网购彩票-| www.362596.com-中国彩票趋势图| www.748963.com-人人买彩票提现不了| 亿彩www.6832h.com| www.xs07.com-彩票中奖被冒领| www.51ip.com-福彩刮奖青蛙过河| www.0244.win-竞彩足球混合过关| www.5828.in-如何买竞彩-| www.788313.com-竞彩赛事公告| www.892452.com-雅玛彩票游戏| www.cp30.com-广西快三开奖遇漏| www.55fc.cc-福利彩票公众号全称| www.790901.com-青海福彩双色球开奖| www.875044.cc-福彩3d水果图正版| www.947404.com-快三多久开一次新区| 众乐彩票www.389344.com| www.v34.me-网上可以买时时彩吗| www.047057.com-用六十甲子推算彩票| www.de09.com-秒速快三网上投注| www.024813.cc-七星彩中奖表| www.227920.com-江苏快三有假| www.312192.com-自带长龙助手的快三| www.417545.com-兴业彩票-| www.603773.com-彩刷是什么-| www.069737.com-一分彩规律破解教程| www.188318.com-福彩3d玩彩老头| www.332324.com-彩票输的倾家荡产| www.554645.com-彩票是怎么开出来的| www.679333.com-怎么戒掉彩票瘾| www.841064.com-中国福利彩票发展| 大赢家彩票平台www.702572.com| www.wi04.com-七星彩小说免费阅读| www.93qs.com-中国第一张彩色相片| www.6596.xyz-彩坛达人福彩杀五码| www.525980.com-福彩3d选号公式| www.699171.com-我在华夏彩票输了| www.801095.com-福彩频道-| www.917100.com-亚洲彩票平台靠谱吗| www.714.cm-私彩代理结构| www.6968.me-极速赛车彩票的规律| www.30199.cc-中国彩票七星彩| www.4890.vip-新手如何玩足彩| www.31636.cc-彩票易彩快3| www.75521.com-三d福彩专家独胆王| www.019751.com-凯里市福彩兑奖中心| www.099869.com-首充彩票-| www.165345.com-创富彩票靠谱嘛| www.343456.cc-彩票在线试玩app| www.406062.com-七星彩500特| www.500877.com-彩色底照片-| www.563488.cc-搜狗彩票走势彩经网| www.622272.com-五福彩票是真的吗| www.680192.com-乐彩3d折线图| www.747187.com-天天爱彩票安装| www.806877.com-山东彩票下载安装| www.881954.com-正规的彩票合买源码| www.987814.com-福利彩票29选七| www.ei3.com-快三跨度玩法| www.lu26.com-彩票有一分快三吗| www.17.com-网友带我玩福彩| www.6240.in-台湾威力彩开奖号码| www.907398.com-彩票机有几种玩法| www.3080.cn-彩票一期必中计划| www.400294.com-中国福彩中奖金额| www.941969.com-彩票店未来会取消吗| www.819431.com-好彩票官网更新公告| 双赢彩票www.sytg7.com| www.090118.com-福彩双色球历史数据| www.146733.com-福建即乐彩中奖规则| www.ga20.com-天天中彩票骗局| www.6ki.com-彩票算法编程|