开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 5913|回复: 25
收起左侧

[易语言纯源码] URL解码, 汇编版。 嗯 、 就这样

[复制链接]
发表于 2018-11-26 23:57:15 | 显示全部楼层 |阅读模式   湖北省武汉市
分享源码
界面截图: -
是否带模块: 纯源码
备注说明: -
本帖最后由 狸楚殇 于 2018-11-27 02:49 编辑

url.png

不多说了, 奶奶的纯手写,怼了一个多小时。有啥问题可以Q我。

老夫写完就大致测试了下。 也没测速啥的, 你们自己去整吧!

明天再怼下编码。 就这样吧, 晚上发的被广告顶沉底了, 你们就自求多福吧!

大神们有啥指教都可以怼!

尽量使用 WonderWall ,里面也有翻译的置入代码, 自行切换。
至于为啥都使用字节集,个人感觉方便。 可以自行修改文本啥的。

毕竟爬取网页返回字节集直接解码, 再返回字节集,方便直接utf8->ansi  老夫这样为了方便。

最后谁有啥算法想转为汇编的,可以直接贴代码,我有时间就帮你们转,代码格式限C/C++ 易语言 php

  
子程序名返回值类型公开备 注
SKURLDecode字节集 ASM URL解码 返回字节集 By.狸楚殇
参数名类 型参考可空数组备 注
urlText字节集url 字节集
变量名类 型静态数组备 注
Tmp整数型 
urlTextSize整数型 
result整数型 
resultSize整数型 
hHeap整数型 
lpurlText整数型 
Tmp = 0
urlTextSize = 0
result = 0
resultSize = 0
hHeap = 0
lpurlText = 0
' 置入代码 ({ 139, 69, 8, 139, 8, 133, 201, 116, 40, 139, 65, 4, 131, 248, 0, 126, 32, 131, 193, 8, 137, 77, 232, 137, 69, 248, 193, 224, 2, 137, 69, 240, 100, 161, 24, 0, 0, 0, 139, 64, 48, 139, 64, 24, 137, 69, 236, 235, 6, 49, 192, 201, 194, 4, 0 })
' _asm{
' label urlText at ebp+0x08
' label Tmp at ebp-0x04
' label urlTextSize at ebp-0x08
' label result at ebp-0x0C
' label resultSize at ebp-0x10
' label hHeap at ebp-0x14
' label lpurlText at ebp-0x18
' mov eax,dword [urlText]
' ; 未设置为空,无须判断
' mov ecx,dword [eax]
' ; 这里判断下,不管你参数啥属性,都最好判断下
' ; 像提供什么空变量啥的 直接就JJ了,所以不要偷懒
' test ecx,ecx
' je @tag1
' mov eax,dword [ecx+0x04]
' ; 判断下长度,免得它啥都往下怼
' cmp eax,0x00
' jle @tag1
' ; lpurlText = ecx + 8
' add ecx,0x08
' mov dword [lpurlText],ecx
' ; urlTextSize = eax
' mov dword [urlTextSize],eax
' ; resultSize = urlTextSize * 4
' shl eax,0x02
' mov dword [resultSize],eax
' ; GetProcessHeap
' mov eax,dword [fs:18h]
' mov eax,dword [eax+30h]
' mov eax,dword [eax+18h]
' ; hHeap = GetProcessHeap()
' mov dword [hHeap],eax
' jmp @tag2
' @tag1:
' xor eax,eax
' leave
' retn 0x04
' @tag2:
' }
RtlAllocateHeap (hHeap, 8, resultSize)
' 置入代码 ({131,248,0,15,142,220,0,0,0,137,194,131,194,8,137,85,244,139,77,248,199,69,252,2,0,0,0,86,87,49,246,49,255,80,139,69,232,138,4,6,60,37,116,17,60,43,15,133,151,0,0,0,198,4,23,32,233,145,0,0,0,57,77,252,15,141,133,0,0,0,139,93,232,138,76,30,1,141,81,208,128,250,9,118,32,141,81,159,128,250,5,119,7,128,233,87,136,202,235,17,141,81,191,128,250,5,119,7,128,233,55,136,202,235,2,178,48,138,76,30,2,141,89,208,128,251,9,119,4,136,217,235,28,141,89,159,128,251,5,119,5,128,233,87,235,15,141,89,191,128,251,5,119,5,128,233,55,235,2,177,48,128,250,48,116,31,128,249,48,116,26,139,69,244,192,226,4,8,202,139,77,248,136,20,7,71,131,198,2,131,69,252,2,137,194,235,10,139,85,244,139,77,248,136,4,23,71,255,69,252,70,57,206,15,140,71,255,255,255,88,254,0,137,120,4,95,94,235,2,49,192,201,194,4,0})
' _asm{
' label urlText at ebp+0x08
' label Tmp at ebp-0x04
' label urlTextSize at ebp-0x08
' label result at ebp-0x0C
' label resultSize at ebp-0x10
' label hHeap at ebp-0x14
' label lpurlText at ebp-0x18
' cmp eax,0x00
' jle @tag1
' ; 地址+8 赋值给edx和result
' mov edx,eax
' add edx,0x08
' mov dword [result],edx
' ; 取出文本长度赋值给ecx
' mov ecx,dword [urlTextSize]
' mov dword [Tmp],0x02
' ; 备份下要使用的 "非易失性寄存器"
' push esi
' push edi
' xor esi,esi
' xor edi,edi
' ; 备份下最后返回地址
' push eax
' @tag16:
' ; 开始怼数据,备注就过了
' mov eax,dword [lpurlText]
' mov al,byte [esi+eax]
' cmp al,0x25
' je @tag4
' cmp al,0x2B
' jne @tag5
' mov byte [edi+edx],0x20
' jmp @tag6
' @tag4:
' cmp dword [Tmp],ecx
' jnl @tag5
' mov ebx,dword [lpurlText]
' mov cl,byte [esi+ebx+0x01]
' lea edx,dword [ecx-0x30]
' cmp dl,0x09
' jbe @tag7
' lea edx,dword [ecx-0x61]
' cmp dl,0x05
' jnbe @tag8
' sub cl,0x57
' mov dl,cl
' jmp @tag7
' @tag8:
' lea edx,dword [ecx-0x41]
' cmp dl,0x05
' jnbe @tag9
' sub cl,0x37
' mov dl,cl
' jmp @tag7
' @tag9:
' mov dl,0x30
' @tag7:
' mov cl,byte [esi+ebx+0x02]
' lea ebx,dword [ecx-0x30]
' cmp bl,0x09
' jnbe @tag10
' mov cl,bl
' jmp @tag11
' @tag10:
' lea ebx,dword [ecx-0x61]
' cmp bl,0x05
' jnbe @tag12
' sub cl,0x57
' jmp @tag11
' @tag12:
' lea ebx,dword [ecx-0x41]
' cmp bl,0x05
' jnbe @tag13
' sub cl,0x37
' jmp @tag11
' @tag13:
' mov cl,0x30
' @tag11:
' cmp dl,0x30
' je @tag14
' cmp cl,0x30
' je @tag14
' mov eax,dword [result]
' shl dl,0x04
' or dl,cl
' mov ecx,dword [urlTextSize]
' mov byte [edi+eax],dl
' inc edi
' add esi,0x02
' add dword [Tmp],0x02
' mov edx,eax
' jmp @tag15
' @tag14:
' mov edx,dword [result]
' mov ecx,dword [urlTextSize]
' @tag5:
' mov byte [edi+edx],al
' @tag6:
' inc edi
' @tag15:
' inc dword [Tmp]
' inc esi
' cmp esi,ecx
' jl @tag16
' ; 数据折腾完毕  弹出备份的原始result地址
' pop eax
' ; 数组模式  这东西加了 才能使用  字节集[i] 取值  所以很重要
' inc byte [eax]
' ; 设置下新大小
' mov dword [eax+0x04],edi
' ; 还原 "非易失性寄存器" 注意顺序
' pop edi
' pop esi
' jmp @tag17
' @tag1:
' xor eax,eax
' @tag17:
' leave
' retn 0x04
' }
return ({  })


避免复制出错, 还是提供一个e文件吧, 免得你们自己复制出错   怼我。 URLDecode.e (129.93 KB, 下载次数: 106)

评分

参与人数 2好评 +1 精币 +1 收起 理由
357341051 + 1 可有弄个JS里的转移符转换的么
揰掵佲 + 1 支持开源~!感谢分享

查看全部评分


发表于 2023-5-18 03:57:31 | 显示全部楼层   天津市天津市
66666666666666666666
回复 支持 反对

使用道具 举报

发表于 2022-2-10 12:00:38 | 显示全部楼层   广东省佛山市
大大大大大大d
回复 支持 反对

使用道具 举报

发表于 2022-2-10 11:57:53 | 显示全部楼层   广东省佛山市
大大大大大大大ddd
回复 支持 反对

使用道具 举报

发表于 2022-1-9 16:54:26 | 显示全部楼层   江苏省盐城市
不会用啊
回复 支持 反对

使用道具 举报

发表于 2021-4-10 11:54:21 | 显示全部楼层   河北省邢台市
喜欢这个东西!!!
回复 支持 反对

使用道具 举报

发表于 2021-4-10 11:54:07 | 显示全部楼层   河北省邢台市
支持原创,很需要!
回复 支持 反对

使用道具 举报

结帖率:94% (45/48)
发表于 2021-4-4 00:16:20 | 显示全部楼层   安徽省六安市
正需要啊
回复 支持 反对

使用道具 举报

结帖率:40% (4/10)

签到天数: 9 天

发表于 2019-7-22 13:06:19 | 显示全部楼层   广东省广州市
请问可否支持UTF-8呀?红包感谢
回复 支持 反对

使用道具 举报

结帖率:33% (1/3)
发表于 2019-5-12 07:56:58 | 显示全部楼层   河南省开封市
这么较真吗,一句简单的赋值效率几乎无差,强迫症的一句玩笑没有任何意思
我不该回帖,不好意思大神.

点评

啥叫简单的赋值,你所谓的简单赋值是啥?易语言变量复制防止他飘,调用赋值寄存器会变?ok.?   湖北省宜昌市  发表于 2019-5-12 12:14
回复 支持 反对

使用道具 举报

发表于 2018-12-3 21:25:51 | 显示全部楼层   四川省成都市
真好,6666,支持一下。反正也是闲着。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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