posted by 블르샤이닝 2012. 6. 28. 12:59
728x90

아놔 createfile 인자값을 16진수로 된거 찾는데 왜이리 힘들어...ㅡㅡ;;;;기본이지만 알아두어야 좋은점.


CreateFile

ファイル等のオブジェクトを作成またはオープン

Cの宣言
HANDLE CreateFileA(
    LPCTSTR lpFileName,
    DWORD dwDesiredAccess,
    DWORD dwShareMode,
    LPSECURITY_ATTRIBUTES lpSecurityAttributes,
    DWORD dwCreationDisposition,
    DWORD dwFlagsAndAttributes,
    HANDLE hTemplateFile
);
HSPの宣言
#func global CreateFile "CreateFileA" sptr,sptr,sptr,sptr,sptr,sptr,sptr
なでしこの宣言
●CreateFile(p1,p2,p3,p4,p5,p6,p7)=DLL("kernel32.dll","HANDLE CreateFileA(
    LPCTSTR lpFileName,
    DWORD dwDesiredAccess,
    DWORD dwShareMode,
    LPSECURITY_ATTRIBUTES lpSecurityAttributes,
    DWORD dwCreationDisposition,
    DWORD dwFlagsAndAttributes,
    HANDLE hTemplateFile
)")
引数
lpFileName
ファイル等のオブジェクト名
dwDesiredAccess
アクセスモード
以下の定数を組み合わせて指定します。

定数意味
--0デバイスへはアクセスせずに属性だけを問い合わせる
GENERIC_READ0x80000000ファイルから読み取りができる
GENERIC_WRITE0x40000000ファイルへの書き込みができる
dwShareMode
他プロセスのアクセス共有モード
以下の定数を組み合わせて指定します。

定数意味
--0共有なし
FILE_SHARE_READ0x00000001他プロセスからの読み取りアクセスを許可
FILE_SHARE_WRITE0x00000002他プロセスからの書き込みアクセスを許可
lpSecurityAttributes
子プロセスにハンドルを継承するかどうかを決めるSECURITY_ATTRIBUTES構造体のポインタを指定。 
継承しない場合はNULLでよい。
dwCreationDisposition
ファイルが存在する場合、しない場合の処理
以下の定数のいずれかを指定します。

定数意味
CREATE_NEW1新しいファイルを作成します。既に存在する場合はエラーとなります。
CREATE_ALWAYS2新しいファイルを作成します。既に存在する場合は上書きします。
OPEN_EXISTING3ファイルをオープンします。ファイルが存在しない場合はエラーとなります。
OPEN_ALWAYS4ファイルをオープンします。ファイルが存在しない場合は新たに作成します。
TRUNCATE_EXISTING5ファイルサイズを0にしてオープンします。
dwDesiredAccessにGENERIC_WRITEが指定されている場合のみ有効。
dwFlagsAndAttributes
ファイル属性とフラグ
以下の定数を組み合わせて指定します。
ただしFILE_ATTRIBUTE_NORMALは単独でのみ有効です。

[属性]
定数意味
FILE_ATTRIBUTE_ARCHIVE0x00000020アーカイブ
FILE_ATTRIBUTE_HIDDEN0x00000002隠しファイル
FILE_ATTRIBUTE_NORMAL0x00000080これといった指定はない。単独でのみ有効。
FILE_ATTRIBUTE_READONLY0x00000001読み取り専用
FILE_ATTRIBUTE_SYSTEM0x00000004システムファイル
FILE_ATTRIBUTE_TEMPORARY0x00000100一時ファイル

[フラグ]
定数意味
FILE_FLAG_WRITE_THROUGH0x80000000キャッシュに貯めず直接ディスクへ書き込む
FILE_FLAG_OVERLAPPED0x40000000オーバーラップ
FILE_FLAG_NO_BUFFERING0x20000000バッファリングせずにファイルをオープンする
FILE_FLAG_RANDOM_ACCESS0x10000000ランダムアクセス
FILE_FLAG_SEQUENTIAL_SCAN0x8000000シーケンシャルアクセス
FILE_FLAG_DELETE_ON_CLOSE0x4000000ハンドルをクローズしたときファイルを削除する
FILE_FLAG_POSIX_SEMANTICS0x1000000POSIX準拠
FILE_FLAG_OPEN_REPARSE_POINT0x200000NTFSの再解析を禁止
hTemplateFile
テンプレートファイルのハンドル。通常は0かNULLでよい。

728x90

'리버싱' 카테고리의 다른 글

파일들의 매직넘버  (0) 2012.09.25
안티리버싱[옛날자료]  (0) 2012.09.03
Anti-Reversing Techniques  (0) 2011.12.15
From ROP to JOP  (0) 2011.12.15
How to bypass antivirus with Metasploit  (0) 2011.12.15