用了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. python运维开发(十五)----JavaScript

    内容目录: HTML补充 javascript HTML补充 1.display标签 display的inline-block 属性会自动带3px的宽度 <span style="di ...

  2. Cable master--hdu1551(二分法)

    Cable master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  3. nginx模块开发获取post参数

    > 您好!>     我想请问下nginx模块里面怎么获取post参数,能有具体的代码更好!谢谢> 对于 "application/x-www-form-urlencode ...

  4. 解决nginx上传模块nginx_upload_module传递GET参数

    解决nginx上传模块nginx_upload_module传递GET参数的方法总结 最近用户反映我们的系统只能上传50M大小的文件, 希望能够支持上传更大的文件. 很显然PHP无法轻易实现大文件上传 ...

  5. Oracle EBS-SQL (MRP-3):检查例外信息查询_建议取消_采购订单.sql

    select msi.segment1                                    编码 ,msi.description                           ...

  6. QT中嵌入SDL

    原地址:http://www.qtcn.org/bbs/read.php?tid=23926 前段时间在做一个音视频编码板卡的PC跨平台程序,使用QT框架,其中有块功能是往QT里嵌入SDL,来播放YU ...

  7. Android Studio中获取sha1证书指纹数据的方法

    高德地图开发申请KEY的时候需要开发者提供SHA1证书指纹数据,在eclipse很容易就找到了,但是Android Studio很久也没找到,只能使用在网上看到的方法了,在Android Studio ...

  8. 【DSA MOOC】起泡排序的原理及常数优化

    根据学堂在线TsinghuaX: 30240184X 数据结构(2015秋)这门课的内容,对bubblesort做了一些总结. 1. bubblesort(起泡排序),原理来自这样一个观察规律:若序列 ...

  9. 使用Flask 生成中文图片验证码

    因最近要用到验证码,上网搜了下,发现什么验证码感觉都能被攻破,连最近疯传的变态的12306的验证码居然有人一天就攻破了,所以,综合考虑,还是使用汉字: web框架是Flask,然后使用python的I ...

  10. Android工程师面试准备知识点

    听+7哥说,把下面的全弄懂,面试必过,所以我就试着去把所有题目补充了一下,各位能耐的网友们,如果有吐槽或者补充的尽管给我留言,在这里谢过大家了. 1.   android的多线程如何通信 答:Andr ...