全球第一免费源码下载基地!
首 页文章中心下载中心繁體中文
首页 ASP源码 | PHP源码 | CGI源码 | JSP源码 | .NET源码 | flash源码 | 其它源码 | 网页模板 | 常用软件 | 字体下载 | 视频教程
站长学院 | 网络编程 | 网页设计 | 图形图像 | 操作系统 | 数据库 | 多媒体 | 黑客攻防 | 编程开发 | Seo专区 | 小说连载
您当前的位置:中文源码之家 -> 编程开发 -> 文章内容 退出登录 用户管理
栏目导航
· 站长学院 · 网络编程
· 网页设计 · 图形图像
· 操作系统 · 数据库
· 多媒体 · 黑客攻防
· 编程开发 · Seo专区
· 小说连载 · 网络学院
热门文章
· [推荐] 卡巴斯基v6.0..
· [新闻] 超级解霸3500..
· [推荐] 冰点还原精灵..
· [组图] 一键GHOST硬盘..
· [组图] PQMagic──硬..
· [图文] 一键GHOST 优..
· [推荐] 征途小宝外挂..
· [新闻] 2006年世界顶..
· 自己做QQ密码破解器..
· [新闻] 下载:IE 7 简..
相关文章
· Linux和Unix系统最常..
· [推荐] 照片处理 Pho..
· [推荐] 总结:CSS常用..
· [推荐] 恢复Cisco路由..
· [推荐] ASP常用代码收..
· Javascript常用运算..
· [推荐] 常用PHP编辑器..
· [推荐] PHP初学者:常..
· [推荐] web标准化设计..
· 常用ASP自定义函数集..
精彩激情游戏推荐
常用ShellCode Hash算法-Delphi内镶BASM
作者:不详  来源:www.chcodes.com/  发布时间:2008-2-13 13:29:19  发布人:hncj

减小字体 增大字体

看到北极星GG~发布了这么多代码/..小弟自感惭愧..
最近精神好一点..也捣鼓了一点点东西...
看了一下ShellCode
发现有许多不同的字符串Hash..感觉蛮有意思的
在这里发出来一下

ShellCode 中应用最多的hash算法...

1.ror 13算法--刚开始用Pascal写.发现里面居然没有循环移位.指令唉~~

代码:--------------------------------------------------------------------------------
//与$D作循环移位计算
function GetRORHashEx(StrAPI:Pchar):DWORD;
var
  I:Integer;
begin
  Result := 0;
  for I:= 0 to Length(StrAPI)-1 do
  begin
    asm
      ror Result,$D
    end;
    Result := Result + ord(StrAPI[I]);
  end;
end;
--------------------------------------------------------------------------------



PEID不知道是什么原理居然可以扫描出来算法..Poly Crc32?

2.Crc32b算法---小弟只在Coban2k的Hash Unit中看到过~Crc32a算法
但是感觉差不多~估计是因为有重复Hash出现所以开发了b算法
一下代码是..从zhengxin的 病毒代码中提取出来的

这里抱怨一下...BASM真难用..字符串赋值老是出错...
估计可能是..我用的Delphi 6的问题..郁闷的说

代码:--------------------------------------------------------------------------------
//Crc32b算法
function GetCrc32bHash(StrAPI:PChar):DWORD;
asm
  mov     esi, eax//算法太经典了~
  xor     eax, eax
  dec     eax
  mov     edx, esi
@@1:
  cmp     byte ptr [edx], 0//判断字符串是否是00..是的话就结束
  je      @@4
  xor     al, [edx]
  mov     bl, 8
@@2:
  shr     eax, 1
  jnc     @@3
  xor     eax, 0EDB88320h//太熟悉了~~
@@3:
  dec     bl
  jnz     @@2
  inc     edx
  jmp     @@1
@@4:
  not     eax
  mov     Result,eax
end;
--------------------------------------------------------------------------------



3.xCrc32算法--一种Crc32b的变型算法...这个算法是从
z0mbie的 Crc算法库中提取出来的..自己加工了一下..
..呵呵~~不知道为什么在Delphi 10下就可以象我想的这么跑了
但是不知道为什么Delphi 6 就不正常了~~居然会把
第二个参数放在edx中??哪位高手能告诉我为什么会这样??

代码:--------------------------------------------------------------------------------
//xCrc32算法
function GetxCrc32Hash(StrAPI:PChar;StrSize:Integer):DWORD;
asm
  mov     ecx, edx            //将数据长度保存在ECX中
  add     ecx, 1              //由于char *是以00结束的所以这里多循环一次
  mov     edx, StrAPI         //将StrAPI指针保存在edx中...不知道为什么汇编参数不好用~
  jecxz   @@4                 //是否循环完毕~ecx为0就.跳!
  xor     eax, eax            //EAX清0
  not     eax                 //翻转EAX---EAX=$FFFFFFFF
@@1:
  xor     al, [edx]
  inc     edx
  mov     bl, 8
@@2:
  shr     eax, 1
  jnc     @@3
  xor     eax, 0EDB88320h
@@3:
  dec     bl
  jnz     @@2
  loop    @@1
  not     eax
@@4:
  mov     Result,eax
end;
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright 2005-2006 Chcodes.Com.中文源码之家 All Rights Reserved .
Powered by:NewAsp SiteManageSystem Version 2.1 SP1 1030