找回密码
 加入
搜索
查看: 149|回复: 15

[AU3基础] 关于filewriteline记录日志格式出错的问题

[复制链接]
发表于 2024-6-16 09:20:01 | 显示全部楼层 |阅读模式
做了个网络服务程序,不时就总被一群坏种扫描漏洞,想着记录下到底发送的是啥,结果文件编码格式被弄坏,想请教各位有经验的朋友如何解决?
我用的是默认utf8格式,看了下帮助好象可以使用fileopen指定编码格式,请有经验的朋友指点下修改编码模式可以避免此类问题吗?

日志记录代码
FileWriteLine($LogFile,@YEAR&'-'&@MON&'-'&@MDAY&' '&@HOUR&":"&@MIN&":"&@SEC&" _Rev DATA ---> "& $sReceivedString)

日志文件内容 如下,当记录了这个扫描的内容后文件就不能自动换行了,而且字符间还出现了空格
2024-06-16 02:22:04 _Rev DATA --->   /*�     Cookie: mstshash=Administr
     
2 0 2 4 - 0 6 - 1 6   0 5 : 1 5 : 2 3   _ R e v   D A T A   E r r o r

2024-06-16 05:15:23 _Rev DATA --->   /*?     Cookie: mstshash=Administr
     2024-06-16 08:46:23 _Rev TCPRecv ---> Empty Data , Close Socket.2024-06-16 08:46:23 _Rev
发表于 2024-6-16 10:04:59 | 显示全部楼层
$hFile = FileOpen($LogFile, 1 + 512)
FileWriteLine($hFile, ...
 楼主| 发表于 2024-6-16 10:16:15 | 显示全部楼层
afan 发表于 2024-6-16 10:04
$hFile = FileOpen($LogFile, 1 + 512)
FileWriteLine($hFile, ...

感谢回复,这就去试试
 楼主| 发表于 2024-6-16 10:20:11 | 显示全部楼层
继续等坏种们扫描,回头反馈结果。
 楼主| 发表于 2024-6-16 15:50:53 | 显示全部楼层
$hFile = FileOpen($LogFile, 1 + 512)  好象没有效果

2024-06-16 15:22:37 _Rev DATA --->   /*�     Cookie: mstshash=Administr
     
2024-06-16 15:51:15 _Rev TCPRecv ---> Empty Data , Close Socket.2024-06-16 15:51:15 _Rev
发表于 2024-6-16 15:54:40 | 显示全部楼层
anythinging 发表于 2024-6-16 15:50
$hFile = FileOpen($LogFile, 1 + 512)  好象没有效果

2024-06-16 15:22:37 _Rev DATA --->    /*�     Co ...

那就是源头 $sReceivedString 问题了
 楼主| 发表于 2024-6-16 16:04:45 | 显示全部楼层
afan 发表于 2024-6-16 15:54
那就是源头 $sReceivedString 问题了

下面的代码,您看有需要修改的地方吗?
目前比较恼人的是存了扫描的代码后,之后 filewriteline 保存的内容就不换行了。
Do
  $Socket = TCPAccept($iListenSocket)
Until $Socket <> -1
  $sReceived = TCPRecv($Socket, 2048, 1)
  $sReceivedString = BinaryToString($sReceived, 4)
  FileWriteLine($LogFile,@YEAR&'-'&@MON&'-'&@MDAY&' '&@HOUR&":"&@MIN&":"&@SEC&" _Rev DATA ---> "& $sReceivedString)
 楼主| 发表于 2024-6-16 16:07:47 | 显示全部楼层
刚发现$sReceivedString = BinaryToString($sReceived, 4)是转换成utf8了,我换成ansi试试
 楼主| 发表于 2024-6-16 16:14:43 | 显示全部楼层
afan 发表于 2024-6-16 15:54
那就是源头 $sReceivedString 问题了

我刚把接收端改成BinaryToString($sReceived, 1)后,发送端没改居然没问题,TCPSend($Socket, StringToBinary($SendToClientText, 4)),请教a版,是否可行?

有点忘了为什么当初没有使用默认ansi格式,不会是中文支持方面有问题吧?
发表于 2024-6-16 16:27:48 | 显示全部楼层
anythinging 发表于 2024-6-16 16:14
我刚把接收端改成BinaryToString($sReceived, 1)后,发送端没改居然没问题,TCPSend($Socket, StringToBi ...

一般是要两端一致的,避免双子节字符乱码问题
 楼主| 发表于 2024-6-16 17:00:06 | 显示全部楼层
afan 发表于 2024-6-16 16:27
一般是要两端一致的,避免双子节字符乱码问题

a版,我有个想法,如果能得到对方的ip,将其直接加入黑名单,下次它再连直接关闭socket。
请教获得对方ip的方法?
发表于 2024-6-16 17:16:41 | 显示全部楼层
本帖最后由 afan 于 2024-6-16 19:39 编辑
anythinging 发表于 2024-6-16 17:00
a版,我有个想法,如果能得到对方的ip,将其直接加入黑名单,下次它再连直接关闭socket。
请教获得对方ip ...

没搞过,不清楚~ 不过帮助文档 TCPAccept 有例子
 楼主| 发表于 2024-6-16 22:48:11 | 显示全部楼层
afan 发表于 2024-6-16 17:16
没搞过,不清楚~ 不过帮助文档 TCPAccept 有例子

感谢指点,完成了黑名单功能。
日志混乱的问题还在测试中。
 楼主| 发表于 2024-6-18 07:38:14 | 显示全部楼层
到目前为止,经测试ansi也没得到解决,与utf8一样。
2024-06-18 00:50:42 _Rev DATA  --->   /*?     Cookie: mstshash=Administr
     
2 0 2 4 - 0 6 - 1 8   0 0 : 5 0 : 4 2   _ R e v   D A T A   N u m   E r r o r   S a v e   I P B l o c k   7 9 . 1 2 4 . 5 6 . 2 0 2   - - - >   1 4 7 . 1 8 5 . 1 3 2 . 2 0 2 & 7 9 . 1 2 4 . 5 6 . 2 0 2
 楼主| 发表于 2024-6-18 08:32:50 | 显示全部楼层
这个坏种发的数据就比较规矩,一点也不添乱
2024-06-17 05:09:49 _Rev DATA ---> SSH-2.0-ZGrab ZGrab SSH Survey
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-26 07:16 , Processed in 0.079716 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表