2011-04-25 5 views
1

에서 조작하십시오.) 로드, 편집 및 저장 바이너리 하이브 파일은 C#의 레지스트리에 저장됩니까?레지스트리 하이브 파일을 C#

이 Win32 API를 발견했습니다. http://msdn.microsoft.com/en-us/library/ee210770%28VS.85%29.aspx

이 사람은 바이너리 하이브 파일의 내용을 텍스트로 덤프하는 코드를 공유했습니다. 하이브 파일을 조작하는 것 외에도 http://www.codeproject.com/KB/recipes/RegistryDumper.aspx

2) , 나는 또한 하이브는 하이브 및 하이브 언로드는 파일 많은에게에 명령로드와 유사한 C#을 를 (사용하여 런타임에 레지스트리에 파일을로드하는 방법을 검색 regedit를)에서

은/감사

답변

1

당신은 Microsoft.Win32의 레지스트리 및 RegistryKey 클래스 봤어? 당신이 하이브 파일을 읽고하거나 대기열 즉시 해당 레지스트리를 변경하기 위해 자신 만의 표현을 만들어야 할 수도 있습니다처럼

http://msdn.microsoft.com/en-us/library/microsoft.win32.aspx

는 소리가 난다. 마찬가지로 자신의 변환기를 디스크에 다시 작성해야합니다.

1

아래 문서에서는 WinAPI (advapi32.dll)를 사용하지 않고 레지스트리 파일을 분석하는 방법에 대해 설명합니다.

http://volatile-minds.blogspot.com/2011/01/analyzing-windows-nt-registry-without.html

using (FileStream fs = File.OpenRead (path)) { 
var data = new byte[checked((int)fs.Length)]; 
int i = 0; 
int read; 

using (var ms = new MemoryStream (checked((int)fs.Length))) { 

    while ((read = fs.Read (data, 0, data.Length)) > 0) { 
    ms.Write (data, 0, read); 
    i += read; 
    } 

    byte[] hive = ms.ToArray(); 
    char[] cList = new char[fs.Length]; 

    i = 0; 
    foreach (byte b in hive) 
    cList[i++] = (char)b; 

     string d = new string (cList); 


    int all = 0; 

    foreach (Match mx in lf.Matches (d)) { //you can change out the regex you want here. 
    byte[] bb = new byte[mx.Value.Length]; 
    char[] cb = new char[mx.Value.Length]; 

    for (int k = 0; k < mx.Value.Length; k++) { 
    bb[k] = (byte)mx.Value[k]; 
    cb[k] = (char)bb[k]; 

    } 

    all++; 

    //Console.WriteLine (new string (cb)); 
    } 

    Console.WriteLine (all.ToString()); 
    all = 0; 
} 
} 
+0

위의 코드를 실제로 작성했습니다. 이것이 내 블로그입니다. 그 코드는 정말 오줌 싸다. 나는 그것을 사용하는 것을 권장하지 않는다. 나는 [Ruby에서 라이브러리를 읽는 실제 오프라인 레지스트리] (https://github.com/brandonprry/ntreg-ruby)를 작성했으며이를 사용하는 도구는 Metasploit 프레임 워크 (tools/reg.rb)에 있습니다. 결국 나는 C#에서도이 라이브러리를 구현할 예정이지만 곧 어느 때라도 사용할 수 없습니다. –

+2

@ user1577946 : 4 년 후. 끝난? –

-2

를 참조하십시오 :이 특별한 경우에 사람은 모노를 사용 https://github.com/brandonprry/volatile_reader

그것은 GTK 인터페이스 C#에서 오프라인 두드러기를 읽습니다. 아직 쓰기 지원이 없습니다.

+1

그래서 ... 서면 지원이 없다면 질문에 대한 대답이 아닌 것처럼 보일 것입니다. * "편집하고 저장하십시오"라고 명시되어 있기 때문입니다. –

+0

나는 이것이 답이라고 말하지 않았다. 그러나 나는이 부분에 대해 적극적으로 노력하고 있습니다. –

관련 문제