전체170 [Python] AES 예제 import base64 from Crypto.Cipher import AES from Crypto import Random pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS) unpad = lambda s : s[:-ord(s[len(s)-1:])] class AESCipher: def __init__( self, key ): self.key = key def encrypt( self, raw ): raw = pad(raw) iv = Random.new().read( AES.block_size ) cipher = AES.new( self.key, AES.MODE_CBC, iv ) return base64.b64encode( iv + ciphe.. 2018. 2. 6. WinDBG 명령어 정리 WinDbg:10.0.15063.468 AMD64 버전으로 WDK 같은거 설치할 시간이 없는 PC일경우 단일 파일로 실행가능하다. Symbol 설정법 메뉴 [File] - [Symbol File Path] 에서 srv*E:\WebSymbols*http://msdl.microsoft.com/download/symbols 를 입력하고 Reload에 체크한다. 심볼이 저장될 경로는 적절히 수정하면 되고, Reload에 체크하지 못했다면 디버깅할 때 .reload 명령어를 입력함 ( 드라이버를 올렸는데도 lm k 인가 lm m으로 보이지 않을 경우 .reload 하고 난후에는 잘댐 ) 명령어 lm 로딩된 모듈 보여줌 ln [Address] 특정 주소가 어느 심볼에 속하는지 dt [Struct] [Address].. 2018. 2. 5. [kernel] PsSetLoadImageNotifyRoutine 와 PsSetCreateProcessNotifyRoutine PsSetLoadImageNotifyRoutine 와 PsSetCreateProcessNotifyRoutine 는 비슷하지만 차이가 존재한다. PsSetCreateProcessNotifyRoutine는 프로세스가 생성되거나 소멸될때 호출되는 반면에, PsSetLoadImageNotifyRoutine는 프로세스에 이미지가 새로 로드되는 순간마다 호출된다. 프로세스는 여러 DLL을 동적로딩하여 사용하므로 여러번 호출된다. 우리는 어떠한 상황으로 나누어 두개를 이용할까?? 프로세스가 생성이나 소멸되는 순간을 필요로한다면 당연히 PsSetCreateProcessNotifyRoutine 일것이다. 하지만 특정한 모듈이 올라왔을 때, 원하는 동작을 실행하고 싶다면 PsSetLoadImageNotifyRoutine .. 2018. 2. 1. 메모리 에디터 개발 https://github.com/Empier/MemoryEditor C# + C + Kernel 를 이용해 치트엔진을 만들고 있다. 프로젝트니 누구나 참여가능! 2017. 2. 24. 이전 1 ··· 11 12 13 14 15 16 17 ··· 43 다음 반응형