找回密码
 加入
搜索
查看: 5605|回复: 5

[AU3基础] [已解决]验证码原始16进制数据如何转换为PNG图片?

  [复制链接]
发表于 2012-5-7 10:00:07 | 显示全部楼层 |阅读模式
本帖最后由 user11 于 2012-5-7 11:36 编辑

CODE代码中为网站返回的16进制验证码数据(UTF-8编码),理论上用_HexToString写入文件,就可以得到验证码图片,但是怎么试验都不成功,是不是跟编码有关,返回数据为UTF8编码,AU3处理的写入文件是ANSI,尝试转换也无法得到PNG图像,打开就提示图像编码错误,win7系统测试,用UE打开生成的PNG文件,查看PNG文件头之类 都是正确的 !

研究了一天了,,GOOGLE baidu 无数,发现其他程序如易语言都转换成功,AU3水平不到怎么试验都不成功,是不是UTF-8与 ANSI的关系,求大家帮助一下,非常感谢!

非常 感谢  afan   超版!!!!!解决方法看3楼!

估计这个难题解决了,非常开心,我发现 没有人用AU3写手机qq协议的挂机软件,鼓捣了一个,,可以登录了,识别好友,,现在验证码也要解决了。。



#include <String.au3>
$file = FileOpen(@DesktopDir & "YZM.png", 2+256);256 UTF8不成功,去掉用ANSI也不成功!!
        If @error Then Exit

$HEXCODE="" ;就是下面的代码段,
$png = StringReplace(String($HEXCODE),@CRLF,"") ;;;替换一下回车换行,不必要好像。。
;$png = _UNICODE2ANSI($png);;;;尝试转换编码不成功,依然无法还原png
$png = _HexToString(StringUpper ( $png));;;大写试试,依旧不可以
FileWrite($file,$png)

89504e470d0a1a0a0000000d4948445200000064000000280403000000fa56427000000030504c5445ffffff0f0f0fafafaf7f7f7f6f6f6fefefef9f9f9f3f3f3f1f1f1f4f4f4fcfcfcfbfbfbf8f8f8f2f2f2f5f5f5fdfdfdf92d83e62000001fd49444154388ddd94bd4fdb4018c6cf290e6dd2567948c1b644d2481d800525234bda488c0c410c74a443c55a964a1d2a356b55558499212313829d81b0b125ff4133b0a2303220f5b90fdba97467c3da93ecbbbc797ff77ef8b913e2ff1d783aa191779b8dc4e4ef371f41b48030615a38cc274ec0b1a496e5ad3230ca25ca50a3cbe53a8203c05d5ffcd736f09b8e4d519868181507e1c59b4db02c8ac0973524c3c178c6ee0397421c24ee3db85333f6822aa3a5dc8fe91fe28d9331618a08f8ee608ce8f34bc60810784e469b0bd14066174db0274a18120959a7a31c1dc69ff2f58051479614bd20c2449d2d48a2ef20ea0ef1c1bfae6db2160ce417b0a716376d8e0e611f7f564dd3f6849b31d679edf935ee725323d6d44c9839843de57b3be634d6baccaea6589d962473289e2952eb32bb697cce598e302a30be560469d35e01554e9f24f2d6ba7d1c246e9aecda02a73b892c642033615eeb1323b54265e78639e5ea396ad2b02d917a16a2c2aca02175a9f656b5049908c354819fe21ef851e0ef31328e4b1a86e33b9f3675b9ab8f58d7ea98ae3cad131eac7a9b539feb331b92302c5f1161a3afe6d11038b2a693320c43bdd79ae2a322a7e758b45790321e2a958bab016523c57223bc5fb64afe61bc447ea58d6fef7913da8119c679cc9d8c977139da9994781c6a2ed3bc6bd5c23c099965dc4e7f016381567074fd735b0000000049454e44ae426082
发表于 2012-5-7 10:19:59 | 显示全部楼层
发表于 2012-5-7 10:25:12 | 显示全部楼层
$hFO = FileOpen('test.png', 2 + 16)
FileWrite($hFO, '0x89504e470d0a1a0a0000000d4948445200000064000000280403000000fa56427000000030504c5445ffffff0f0f0fafafaf7f7f7f6f6f6fefefef9f9f9f3f3f3f1f1f1f4f4f4fcfcfcfbfbfbf8f8f8f2f2f2f5f5f5fdfdfdf92d83e62000001fd49444154388ddd94bd4fdb4018c6cf290e6dd2567948c1b644d2481d800525234bda488c0c410c74a443c55a964a1d2a356b55558499212313829d81b0b125ff4133b0a2303220f5b90fdba97467c3da93ecbbbc797ff77ef8b913e2ff1d783aa191779b8dc4e4ef371f41b48030615a38cc274ec0b1a496e5ad3230ca25ca50a3cbe53a8203c05d5ffcd736f09b8e4d519868181507e1c59b4db02c8ac0973524c3c178c6ee0397421c24ee3db85333f6822aa3a5dc8fe91fe28d9331618a08f8ee608ce8f34bc60810784e469b0bd14066174db0274a18120959a7a31c1dc69ff2f58051479614bd20c2449d2d48a2ef20ea0ef1c1bfae6db2160ce417b0a716376d8e0e611f7f564dd3f6849b31d679edf935ee725323d6d44c9839843de57b3be634d6baccaea6589d962473289e2952eb32bb697cce598e302a30be560469d35e01554e9f24f2d6ba7d1c246e9aecda02a73b892c642033615eeb1323b54265e78639e5ea396ad2b02d917a16a2c2aca02175a9f656b5049908c354819fe21ef851e0ef31328e4b1a86e33b9f3675b9ab8f58d7ea98ae3cad131eac7a9b539feb331b92302c5f1161a3afe6d11038b2a693320c43bdd79ae2a322a7e758b45790321e2a958bab016523c57223bc5fb64afe61bc447ea58d6fef7913da8119c679cc9d8c977139da9994781c6a2ed3bc6bd5c23c099965dc4e7f016381567074fd735b0000000049454e44ae426082')
FileClose($hFO)
发表于 2012-5-7 10:35:08 | 显示全部楼层
回复 1# user11

这个二进制的图片是啥样子的?传上来嘛

这个样子的?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-5-7 10:38:56 | 显示全部楼层
[img][/img]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2012-5-7 11:28:58 | 显示全部楼层
回复 3# afan


版主果然厉害,解决了,我摸索了一天了,晚上折腾到2点才睡,,非常感谢啊!!!

原来16进制0X识别可以直接以2进制写进去,又学了一招,我先转二进制再写也试过没成功,不过为什么_HexToString 写进去不行呢?》看了一下别的代码,是可以自己_HexToString写进去
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 18:33 , Processed in 0.079297 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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