首页
社区
课程
招聘
[求助]delphi编程时有没有不安全的函数?
发表于: 2014-4-21 10:12 3471

[求助]delphi编程时有没有不安全的函数?

2014-4-21 10:12
3471
请教各位,delphi有没有类似strcopy这种不安全的函数?或者可能导致漏洞的不安全函数?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 30050
活跃值: (2422)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
自己看代码不就知道了?

function StrCopy(Dest: PChar; const Source: PChar): PChar;
asm
        PUSH    EDI
        PUSH    ESI
        MOV     ESI,EAX
        MOV     EDI,EDX
        MOV     ECX,0FFFFFFFFH
        XOR     AL,AL
        REPNE   SCASB
        NOT     ECX
        MOV     EDI,ESI
        MOV     ESI,EDX
        MOV     EDX,ECX
        MOV     EAX,EDI
        SHR     ECX,2
        REP     MOVSD
        MOV     ECX,EDX
        AND     ECX,3
        REP     MOVSB
        POP     ESI
        POP     EDI
end;

    相对而言,delphi编译的东西溢出机会比较少,原因如下:
   
    borland(delphi)编译器自己定义了字符串类型和处理约定,(字符串常量不是放在数据段里面.而是放到所在函数的后面),此特性在很大程度上避免了读写缓冲区的溢出。

    剩下的就似乎只能挖掘指针型溢出,对于这个,由于delphi的VCL特性,大量的指针都是基于RTTI/MT表(虚拟内存表)来相对寻址的,会把人搞得死死的。

    当然,安全与否,跟写代码的人逻辑有更大关系。学到一定程度,你应该是直接十六位修改器就能看出PE的意图,而不会再执着于语言。
2014-4-22 02:33
0
游客
登录 | 注册 方可回帖
返回
//