- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
function Unescape(const s: AnsiString): widestring;
var
i: Integer;
j: Integer;
c: Integer;
begin
// Make result at least large enough. This prevents too many reallocs
SetLength(Result, Length(s));
i := 1;
j := 1;
while i <= Length(s) do begin
if s[i] = '\' then begin
if i < Length(s) then begin
// escaped backslash?
if s[i + 1] = '\' then begin
Result[j] := '\';
inc(i, 2);
end
// convert hex number to WideChar
else if (s[i + 1] = 'u') and (i + 1 + 4 <= Length(s))
and TryStrToInt('$' + string(Copy(s, i + 2, 4)), c) then begin
inc(i, 6);
Result[j] := WideChar(c);
end else begin
raise Exception.CreateFmt('Invalid code at position %d', [i]);
end;
end else begin
raise Exception.Create('Unexpected end of string');
end;
end else begin
Result[j] := WideChar(s[i]);
inc(i);
end;
inc(j);
end;
// Trim result in case we reserved too much space
SetLength(Result, j - 1);
end;
Это не вирус. Просто в Delphi 7 не завезли JSon.
Ура! Страйкер нас услышал.
Отчего ж ты всё ещё на плаву? Почему не забанен?
Обходится известным маневром - https://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html
Следующий код уронит интерпретатор:
Выполнить произвольный код сложнее, поскольку для выполнения code objects тоже используются имена __builtins__. Тут уже надо искать завалявшуюся ссылку на этот модуль.
Так что не велосипедим, а
@invalid address [email protected]
Сука, забанил-таки доктора.
Хм, в конце же должен знак нижнего подчёркивания стоять.
А он и стоит, ага.
Я давно подозревал что он дырявый, а вот и доказательство.
https://www.youtube.com/watch?v=NCIf2WgLM7c
>> нижнего
А бывает верхнее подчёркивание?
Invalid address: [email protected]_You must provide at least one recipient email address.
ведь не было ни одного разрыва, почему над «м» то блять