16进制高手请进!!(50分)

  • 主题发起人 主题发起人 OMM
  • 开始时间 开始时间
O

OMM

Unregistered / Unconfirmed
GUEST, unregistred user!
我捕获的局域网内数据包都是16进制的数据。。。。
怎么自己编程序 转成可以识别的普通文本???谢谢 分不够再加
 
用HexToInt函数
 
i:=StrToInt('$'+str);
 
楼上老大们 能不能详细点 来段源码看看
 
先把数据包转换成按字节的结构,如:array[1...1024] of byte
然后用以下的函数把BYTE转换为STRING;
function bytetohex(src: byte): string;
begin
setlength(result, 2);
asm
mov edi, [result]
mov edi, [edi]
mov al, src
mov ah, al // save to ah
shr al, 4 // output high 4 bits
add al, '0'
cmp al, '9'
jbe @@outcharlo
add al, 'a'-'9'-1
@@outcharlo:
and ah, $f
add ah, '0'
cmp ah, '9'
jbe @@outchar
add ah, 'a'-'9'-1
@@outchar:
stosw
end;
end;

这个函数的好处是可以直接显示16进制的数,strtoint($+str)只能显示10进制的16进制数
 
楼上:
文本能转换出来吗?
 
1.你捕获的包里16进制数据是字符还是数据格式?
2.如果是字符直接显示
3.如果是数字先转换成字符再显示
 
文本干吗还要转换啊?直接显示不行吗?
同意楼上说法
 
你截获的文本是用ASCII编码的吗?
 
各位
可能我没说明白
其实我是想知道我捕获的ip数据包 到底是什么内容??
11 02 80 A0 C0 A8 0E 66 | ..
 
老兄啊,数据你不都看到了吗,左边是16进制的数,
右边是ASCII码,关键是你不能理解数据本身的含义!
要看懂这个的话先学习一下TCP/IP协议中关于数据包结构的部分吧
 
HTTP/1.0 200 OK..Date: Tue, 13 Apr 2004 02:51:32 GMT..Server: Apache/2.0.48 (Unix)..Last-Modified: Tue, 13 Apr 2004 02:50:07 GMT..ETag: "1ec214-1319-eb68d5c0"..Accept-Ranges: bytes..Vary: Accept-Encoding..Content-Encoding: gzip..Cache-Control: max-age=120..Expires: Tue, 13 Apr 2004 02:53:32 GMT..Content-Length: 1233..Content-Type: text/html..Age: 71..X-Cache: HIT from sq153-182.sina.com.cn..Connection: close....?.......順跱G钳悃X?W恩鄻凂孩.T建T??岉)胭眍...笻.?.穛l獭...?.EH暁嫸?U晲Z躬詸]洭.撊憐?皖.?纣
 
懂了TCP/IP协议对你这个也用处不大吧。你要了解具体每个包的格式才能知道这个包说的是啥,不然的话全堆在一起你也就只能看到上面的东西了。你比如说,我发一个包,第一个字节代表后面字符串的长度,从第二个字节开始是字符串。放在一个包里就是一个字节流,你如果不知道我发包的格式,你怎么会看的懂呢?
 
那就是说 一般的ip包捕到也没意义啦?!
 
呵呵,当然有意义了,很多密码是明文传送的,你在一堆文件搜索下password,可能就弄到别人的邮箱密码了
 
后退
顶部