注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

且行且记录

点滴记录,行的更远!

 
 
 

日志

 
 

调试samlib里面的rc4  

2014-05-05 16:07:36|  分类: 一些练习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

samlib库里面有个函数SAMLIB!SampEncryptClearPasswordNew

里面有rc4的一个用例

71b78c5d lea     eax,[ebp-28h]
71b78c60 push    eax
71b78c61 push    10h
71b78c63 lea     eax,[ebp-184h]
71b78c69 push    eax
71b78c6a call    SAMLIB!rc4_key (71b74f96)
71b78c6f push    esi
71b78c70 push    204h
71b78c75 lea     eax,[ebp-184h]
71b78c7b push    eax
71b78c7c call    SAMLIB!rc4 (71b74e49)
从上面可以看到两个函数rc4_key和rc4,都是三个参数。

用之前的例子测试一下

c:\temp>rc4a
Input keystr:111
Input data:hello

=== Orign ===
68 65 6C 6C 6F
=== Encry ===
【08 7F AE 01 F8】
=== Decry ===
68 65 6C 6C 6F

再用一段windbg脚本测试上面的函数

*rc4.x

*.dvalloc /b 00d30000 1000
f 00d30000 l 1000 0
eza 00d30400 "111"
ed esp 00d30100 00000003 00d30400
p =71b78c6a
db 00d30400 l10
.echo ====
db 00d30100 l100
ed esp 00d30100 00000005 00d30500
eza 00d30500 "hello"
p =71b78c7c
db 00d30500 l10
.echo ====
db 00d30100 l100
然后导入调试脚本输出

0:000> $<c:\temp\dbg\rc4.x
0:000> *.dvalloc /b 00d30000 1000
0:000> f 00d30000 l 1000 0
Filled 0x1000 bytes
0:000> eza 00d30400 "111"
0:000> ed esp 00d30100 00000003 00d30400
0:000> p =71b78c6a
eax=00000015 ebx=0007ddd4 ecx=00000100 edx=00000004 esi=0007dbd0 edi=0000000
eip=71b78c6f esp=0007d8a8 ebp=0007d9f4 iopl=0         nv up ei pl zr na pe n
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=0000024
SAMLIB!SampEncryptClearPasswordNew+0xe1:
71b78c6f 56              push    esi
0:000> db 00d30400 l10
00d30400  31 31 31 00 00 00 00 00-00 00 00 00 00 00 00 00  111.............
0:000> .echo ====
====
0:000> db 00d30100 l100
00d30100  37 63 2c ca ff 35 6c a4-a0 0d 52 11 cb 17 48 28  7c,..5l...R...H(
00d30110  c9 8e 4e 92 94 1c 64 9e-42 00 7c c8 38 5b aa 1a  ..N...d.B.|.8[..
00d30120  4b 12 2e 2d cf d0 46 d1-7f 69 d2 6b 65 19 f0 5d  K..-..F..i.ke..]
00d30130  02 39 76 40 59 8f b1 6e-f8 c3 9c 80 a3 30 0a 6f  .9v@Y..n.....0.o
00d30140  3c 55 66 4a 13 56 ad ef-16 de 61 1e 49 dc 0e f5  <UfJ.V....a.I...
00d30150  e9 85 b2 f6 b0 91 b7 c2-89 8d 3a d7 df 0b 97 4c  ..........:....L
00d30160  b8 34 f9 88 e8 ab e7 da-a2 bc 05 4d 08 31 74 57  .4.........M.1tW
00d30170  83 2f 47 af 07 8a 71 ac-ed 7d a8 d4 a6 50 d3 7b  ./G...q..}...P.{
00d30180  d9 c4 90 43 3f d5 3b c0-6d b3 d8 5f fe 29 95 f3  ...C?.;.m.._.)..
00d30190  93 3d 24 ae c1 5c 6a bf-ea c5 01 e6 ee f4 b9 5e  .=$..\j........^
00d301a0  86 a7 ce cc 9f 58 e4 be-f7 bb f2 96 82 b6 fc 10  .....X..........
00d301b0  a9 53 1f 26 eb c6 36 44-bd 18 1b 62 e5 70 fd 98  .S.&..6D...b.p..
00d301c0  68 04 9b e2 14 e1 ba 1d-3e fa 33 22 75 e0 99 5a  h.......>.3"u..Z
00d301d0  72 ec 54 67 7a 8c 84 8b-db 2b 78 21 41 77 fb a1  r.Tgz....+x!Aw..
00d301e0  b5 cd 45 a5 0c 03 23 0f-32 73 27 60 81 f1 4f 7e  ..E...#.2s'`..O~
00d301f0  79 25 dd e3 51 87 b4 9a-c7 06 20 09 9d 2a d6 15  y%..Q..... ..*..

从上面可以看出

初始化密钥函数:rc4_key(S, key_len, key);


0:000> ed esp 00d30100 00000005 00d30500
0:000> eza 00d30500 "hello"
0:000> p =71b78c7c
eax=00d30200 ebx=0007ddd4 ecx=00000005 edx=0000008d esi=0007dbd0 edi=0000000
eip=71b78c81 esp=0007d8b4 ebp=0007d9f4 iopl=0         nv up ei pl zr na pe n
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=0000024
SAMLIB!SampEncryptClearPasswordNew+0xf3:
71b78c81 5e              pop     esi
0:000> db 00d30500 l10
00d30500  【08 7f ae 01 f8 】00 00 00-00 00 00 00 00 00 00 00  ................
0:000> .echo ====
====
0:000> db 00d30100 l100
00d30100  37 88 f3 8d 89 29 6c a4-a0 0d 52 11 cb 17 48 28  7....)l...R...H(
00d30110  c9 8e 4e 92 94 1c 64 9e-42 00 7c c8 38 5b aa 1a  ..N...d.B.|.8[..
00d30120  4b 12 2e 2d cf d0 46 d1-7f 69 d2 6b 65 19 f0 5d  K..-..F..i.ke..]
00d30130  02 39 76 40 59 8f b1 6e-f8 c3 9c 80 a3 30 0a 6f  .9v@Y..n.....0.o
00d30140  3c 55 66 4a 13 56 ad ef-16 de 61 1e 49 dc 0e f5  <UfJ.V....a.I...
00d30150  e9 85 b2 f6 b0 91 b7 c2-ff ca 3a d7 df 0b 97 4c  ..........:....L
00d30160  b8 34 f9 63 e8 ab e7 da-a2 bc 05 4d 08 31 74 57  .4.c.......M.1tW
00d30170  83 2f 47 af 07 8a 71 ac-ed 7d a8 d4 a6 50 d3 7b  ./G...q..}...P.{
00d30180  d9 c4 90 43 3f d5 3b c0-6d b3 d8 5f fe 35 95 2c  ...C?.;.m.._.5.,
00d30190  93 3d 24 ae c1 5c 6a bf-ea c5 01 e6 ee f4 b9 5e  .=$..\j........^
00d301a0  86 a7 ce cc 9f 58 e4 be-f7 bb f2 96 82 b6 fc 10  .....X..........
00d301b0  a9 53 1f 26 eb c6 36 44-bd 18 1b 62 e5 70 fd 98  .S.&..6D...b.p..
00d301c0  68 04 9b e2 14 e1 ba 1d-3e fa 33 22 75 e0 99 5a  h.......>.3"u..Z
00d301d0  72 ec 54 67 7a 8c 84 8b-db 2b 78 21 41 77 fb a1  r.Tgz....+x!Aw..
00d301e0  b5 cd 45 a5 0c 03 23 0f-32 73 27 60 81 f1 4f 7e  ..E...#.2s'`..O~
00d301f0  79 25 dd e3 51 87 b4 9a-c7 06 20 09 9d 2a d6 15  y%..Q..... ..*..

从上面可以得出

加密数据函数:rc4(S, data_len, data);

  评论这张
 
阅读(143)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017