用了AlphaControl皮肤组件,原理很简单,就是CSDN的一个漏洞。我主要是使用WinInet来获取相关信息,然后从里面分析出真实的下载URL,同时我也是用了AES加密。
function GetWebPage(const Url: string):string;
var
  Session,
  Httpfile:HINTERNET;
  szSizeBuffer:Pointer;
  dwLengthSizeBuffer:DWord;
  dwReserved:DWord;
  dwFileSize:DWord;
  dwBytesRead:DWord;
  Contents:PChar;
begin
  Session:=InternetOpen('',0,niL,niL,0);
  Httpfile:=InternetOpenUrl(Session,PChar(Url),niL,0,0,0);
  dwLengthSizeBuffer:=1024;
  HttpQueryInfo(HttpFile,5,szSizeBuffer,dwLengthSizeBuffer,dwReserved);
  GetMem(Contents,dwFileSize);
  InternetReadFile(HttpFile,Contents,dwFileSize,dwBytesRead);
  InternetCloseHandle(HttpFile);
  InternetCloseHandle(Session);
  Result:=StrPas(Contents);
  FreeMem(Contents);
end;

function GetStr(StrSource, StrBegin, StrEnd: string): string;
var
  stStart,stEnd:integer;
begin
  stStart:=AnsiPos(strbegin,strsource)+length(strbegin);
  stEnd:=AnsiPos(strend,strsource);
  result:=copy(strsource,stStart,stEnd-stStart);
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  AdWord = '3E000000B51B13E4074D1118B04E7693AA69E83500D5BED19BE728446313287450D8D279FDDBD96622EB0F9827AE165B7596037A36C815C3AD86AD5D1D6B7B6116ACD237';
  AdDes = 'www.51dev.net';
var
  Csdn: string;
  CsdnId: string;
  Html: string;
  IE: Variant;
begin
  if Edit1.Text = '' then
  begin
    ShowMessage('ID不能为空!');
    Exit;
    Edit1.SetFocus;
  end;
  Csdn := GY.DeEncrypt_text(AdWord, AdDes);
  CsdnId := Csdn + Trim(Edit1.Text);
  Html := GetWebPage(CsdnId);
  Html := StringReplace(Html, '\', '', [rfReplaceAll]);
  Html := StringReplace(Html, '"', '', [rfReplaceAll]);
  Html := GetStr(Html, 'url:', '}');
  //ShowMessage(Html);
  IE := CreateOleObject('InternetExplorer.Application');
  IE.Visible := True;
  IE.left := 0;
  IE.top := 0;
  IE.width := 260;
  IE.Height := 200;
  IE.Navigate(Html);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Web.Navigate('http://www.lsworks.net/Ad');
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not(Key in ['0'..'9']) then
  begin
    ShowMessage('您输入的不是数字,请输入数字!');
    Key := #0;
    Edit1.SetFocus;
  end;
end;

http://www.lsworks.net/article/10.html

以前用Delphi写的CSDN免积分下载器的更多相关文章

  1. CSDN 免积分下载

    你可能不相信这个标题,那么打开下面的链接试试吧 ↓↓↓ Github项目 最新功能 ↓↓↓ 0积分资源搜索 0积分资源搜索(备用地址) CSDN资源导出 CSDN资源下载体验群 (每日可免费下载一次) ...

  2. 9款极具创意的HTML5/CSS3进度条动画(免积分下载)

    尊重原创,原文地址:http://www.cnblogs.com/html5tricks/p/3622918.html 免积分打包下载地址:http://download.csdn.net/detai ...

  3. android-support-v4.jar 免积分下载

    资源名称:android扩展插件 android-support-v4.jar 资源大小:137KB 上传日期:2012-10-08 资源积分:1 下载次数:136 电信下载地址:http://www ...

  4. 我的CSDN原创高质量免积分下载资源列表(持续更新)

    最近几个月,我在CSDN平台,发表了大量原创高质量的项目,并给出了相应的源码.文档等相关资源. 为了方便CSDN用户或潜在需求者,下载到自己想要的资源,特分类整理出来,欢迎大家下载. 我的原则:原创高 ...

  5. 2014年最新的辛星html、css教程打包公布了,免积分,纯PDF(还有PHP奥)

    首先说一下,这个教程是我的全部的博客的精华,我整理了两天之后才做出的这个pdf文档,累死我了,以下免积分给大家,希望大家可以不吝指正,提出它的一些不足什么的,谢谢啦: 以下就是它的下载地址了:2014 ...

  6. 用delphi写多屏幕程序

    http://blog.csdn.net/zyyjc/article/details/6530728 别现在有些POS机是双屏幕的(比如卡西瓦POS机),一个屏幕可以当顾客显示屏用,当闲时也可以显示一 ...

  7. 如何获取CSDN的积分?

    个人感觉就是写博客就给积分 具体给多少? CSDN应该有自己的积分规则 总之一句话:写博客涨积分

  8. Delphi写的DLL,OCX中多线程一个同步问题

    Delphi写的DLL,OCX中如果使用了TThread.Synchronze(Proc),可能导致线程死锁,原因是无法唤醒EXE中主线程, Synchronze并不会进入EXE主线程消息队列. 下面 ...

  9. Eclipse插件开发 学习笔记 PDF 第一篇到第四篇 免分下载 开发基础 核心技术 高级进阶 综合实例

    <<Eclipse插件开发 学习笔记>>,本书由浅入深.有重点.有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章.第一篇介绍Eclipse平台界面开发的基础知识 ...

随机推荐

  1. AJAX防重复提交的办法总结

    最近的维护公司的一个代理商平台的时候,客服人员一直反映说的统计信息的时候有重复数据,平台一直都很正常,这个功能是最近新进的一个实习生同事写的功能,然后就排查问题人所在,发现新的这个模块的AJAX提交数 ...

  2. mac10.9 设置vim tab

    vimrc系统文件目录 /usr/share/vim 在vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格)s ...

  3. Lifting the Stone(hdoj1115)

    Lifting the Stone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  4. PHP中的错误处理

    程序只要在运行,就免不了会出现错误!或早或晚,只是时间问题罢了. 错误很常见,比如Notice,Warning等等.此时一般使用set_error_handler来处理: <?php set_e ...

  5. vs2005的MFC程序在64位机上不能运行

    出现上述错误大多因为该机上没有安装vs2005程序,vs2005要运行需要一些必要的文件,没有添加到你发布的可执行文件目录下,所以程序不能运行. 解决方法: 安装目录\Microsoft Visual ...

  6. [置顶] Oracle GoldenGate 系列:使用 Oracle ASM API DBLOGREADER 时遇 ora-01031 错误

    今天在自己新搭建的 Oracle ACFS 文件系统上测试 GoldenGate ,启动 extract 进程报如下错误: 2013-08-27 14:58:39  ERROR   OGG-00446 ...

  7. Singleton 单例模式 泛型 窗体控制

    MDI子窗体 控制单例 /// <summary> /// 单例提供者 /// </summary> /// <typeparam name="T"& ...

  8. linux文件属性

    在Linux中,文件的属性是一个很重要的概念,用户或者用户组对一个文件所拥有的权限,都可以 从文件的属性得知.我们可以通过ls -al命令,列出某个文件夹下面的所有文件(包括以.开头的隐藏 文件).下 ...

  9. 【C++】大数的+-*/四则运算

    所谓大数,则指数值特别大的数,可能会有99位,100位,远远超过了long long表示的范围. 这样的数作四则运算,需要用到字符串.用字符串通过每一位的字符的四则运算来模拟. 废话少说,上代码: # ...

  10. android分割线

    http://blog.csdn.net/dekunchenivan/article/details/6640804 在Android布局文件layout中设置水平分割线: <View      ...