首页
社区
课程
招聘
[原创]一个很有趣的小实验
发表于: 2009-1-29 01:40 9229

[原创]一个很有趣的小实验

2009-1-29 01:40
9229

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type

  THello = function: Pchar;

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function Hello: pchar;
asm
    Call @1;
@1:
    Pop EAX;
    JMP @2;
    DB  'ElementClient';
    DB  0;
@2:  ADD EAX, 3;
    MOV Byte PTR [EAX], '_';
end;

procedure TForm1.Button1Click(Sender: TObject);
var newHello: PChar;
begin
  GetMem(newHello, 300);
  Move(Hello, NewHello^, 300);
  ShowMessage(THello(newHello));
  FreeMem(NewHello, 300);
end;

end.

貌似在直接注入的时候有些用处。比其他的处理字符串的方法要简单一些


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (13)
雪    币: 229
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
[QUOTE=;]...[/QUOTE]
不错的想法!!
2009-1-29 22:31
0
雪    币: 603
活跃值: (40)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
3
汗,不懂delphi啊
2009-1-30 13:23
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
4
将常见的代码自身定位技巧用于数据重定位,是这个意思不?不知道我看得对不对。
2009-1-30 13:45
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5

楼上的是专家,就是你说的那个意思,表达得很专业!偶表达得太业余了。。。。。
2009-1-30 14:20
0
雪    币: 137
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
有点晕,学习一下!!!
2009-1-30 14:48
0
雪    币: 152
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
很多以前的SHELLCODE都用了这样的技术了。。。。。
2009-1-30 16:31
0
雪    币: 208
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
THello(newHello) ,想了一会才明白这样用的语法和妙处,高。
不过delphi这样做函数引用,的确容易让人感到迷惑,以为括号里面是参数。
2009-1-31 15:19
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
9
学习一下....
2009-2-1 01:39
0
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
好东西,测试了下,果然牛
2009-2-6 16:36
0
雪    币: 251
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
11
不懂delphi
2009-2-8 19:02
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
严重不懂delphi!!!
2009-2-8 21:35
0
雪    币: 225
活跃值: (188)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
直接调用出错了!
procedure TForm1.Button2Click(Sender: TObject);

begin

  ShowMessage(Hello);
end;
2009-2-9 17:13
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
真出错了 谁有空帮忙DEBUG一下?
2009-2-10 21:31
0
游客
登录 | 注册 方可回帖
返回
//