티스토리 뷰
728x90
Delphi - Byte 관련 Tip
function BytesToHex(aSource: TBytes): string; begin SetLength(Result, Length(aSource) * 2); if Length(aSource) > 0 then BinToHex(aSource[0], PChar(Result), Length(aSource)); end; procedure TForm1.Button1Click(Sender: TObject); const SetupLdrExeHeaderOffset = $01d204; A: Array[0..3] of Byte = ($EF, $BE, $AD, $DE); var HInstance: THandle; filename: String; FileStream: TFileStream; ArrayBytesHeader, ArrayBytesHeaderStr : TBytes; HeaderStr : String; begin // AbZipper1.FileName := 'C:\AAPlus4PC_server\ALZip861.exe'; filename := 'C:\AAPlus4PC_server\ALZip861.exe'; FileStream := TFileStream.Create(filename, fmOpenRead); try FileStream.Seek( SetupLdrExeHeaderOffset , soBeginning); SetLength( ArrayBytesHeader, 16 ); FileStream.ReadBuffer(ArrayBytesHeader, 16); if (CompareMem(ArrayBytesHeader, @A, 4)) then begin SetLength(ArrayBytesHeaderStr, 12); CopyMemory( ArrayBytesHeaderStr, @ArrayBytesHeader[4], 12 ); HeaderStr := TEncoding.ASCII.GetString(ArrayBytesHeaderStr); //Memo1.Lines.Add( BytesToHex(ArrayBytesHeader) ); //Memo1.Lines.Add( BytesToHex(ArrayBytesHeaderStr) + '/' + HeaderStr ); if HeaderStr='NullsoftInst' then begin Memo1.Lines.Add( 'ooooo' ); end else begin Memo1.Lines.Add( 'xxxxx - 2' ); end; end else begin Memo1.Lines.Add( 'xxxxx - 1' ); end; finally SetLength(ArrayBytesHeader, 0); SetLength(ArrayBytesHeaderStr, 0); FileStream.Free; end; end;
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Spring
- ubuntu
- Java
- 전예희
- NDK
- oracle
- Spring MVC
- sas2009
- JavaScript
- 튜닝쇼 2008
- 일본여행
- Mac
- 지스타2007
- ffmpeg
- 동경
- SAS
- 송주경
- BPI-M4
- koba2010
- Linux
- KOBA
- 서울오토살롱
- ble
- android
- Xcode
- Delphi
- 레이싱모델 익스트림 포토 페스티벌
- MySQL
- Delphi Tip
- flex
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함