목록분류 전체보기 (143)
난 정말 최고야 멋있어
mov가 튜링 완전하다는 Stephen Dolan의 논문으로 부터 시작한다 포인터의 겹쳐쓰기,더미 데이터 코드,관련 배열을 만들어서 처리, 코드 세그먼트의 직접 조작 등의 기상 천외한 방법들로 mov로 구현하기 어렵다고 생각되었던 조건문, 점프, 각종 논리 연산, 예외까지 구현 한다 ㅋㅋㅋㅋ;; 물론 매번 이 많은 것을 하기 위해 그때그때 만들기보다는 함수나 매크로를 만들어서 쓴다고 한다 굉장히 재밌게 보았다.. 안티 리버싱 기법으로 쓰인다면.. 리버서 입장에서는 정말 고통일 것 같다 ㅋㅋ https://github.com/xoreaxeaxeax/movfuscator xoreaxeaxeax/movfuscator The single instruction C compiler. Contribute to xor..
Qt 에디터에서는 한글이 잘 나오는데 왜 그런지는 모르겠지만 코드상에서 한글을 쓰니 한글이 안나왔다 QString::fromLocal8Bit("쓰고싶은한국말"); 요렇게 해줘서 넘겨주니까 아주 잘됬다 굿굿 *fromUtf8() 로 해도 한글이 깨진다... 아무래도 euc-kr 인코딩을 쓰나보다
Qt 이벤트 핸들링 방식 : 시그널 & 슬롯 특정 이벤트가 발생하면 ? 시그널이 생김 (시그널은 이벤트와 거의 같다고 생각하면 됨) 시그널이 생기면 그에 배정된 슬롯이 작동 함! (슬롯은 콜백 함수와 거의 같다고 생각하면 됨) 이때 이 시그널과 슬롯을 이어주는 함수가 connect 함수 connect(센더, 시그널, 리시버, 슬롯); 이렇게 호출해주면 된다 시그널과 슬롯은 SIGNAL(),SLOT()이라는 매크로로 감싸주면 되고, 센더는 이벤트를 일으키는 대상 (버튼을 클릭한다는 이벤트에서는 버튼이 센더) 리시버는 this 를 그냥 주면 되는듯하다. 아마 슬롯이 정의되어있는 클래스면 암거나 주면 되는것 같다 아 그리고 시그널은 직접 정의해서 쓸수 도 있지만 그러기 너무 귀찮으면 공식 레퍼런스 보고 베껴쓰..
32비트 프로그램이 64비트에서 돌아갈때... 사실 WOW64를 통해 돌아간다는건 모두 알고있을거에요 좀 쉽게 말하자면 32비트 에뮬레이터로 32비트 프로그램을 실행한다는 소리죠 (에뮬레이터는 64비트) 이때 에뮬레이터는 64비트라는 점을 이용해 32비트에서 64비트의 코드를 돌리는 기술이 헤븐즈 게이트입니다 근데 그러면 어떻게 에뮬레이터에서 벗어날까요? 그러기 위해서는 어떻게 해서 x86 에뮬레이터 영역과 64비트 프로세스 영역이 구분되는지 알아야하는데요 코드 세그먼트 23 인 경우에는 WOW64 영역으로 취급되고요 코드 세그먼트 33 인 경우에는 64비트 프로세스 영역으로 취급됩니다 **참고로 TEB의 0xC0 부근에 64비트 프로세스로 점프하는 코드가 있습니다 (fs 읍읍..) https://ko...
def makeSieve(n): isPrime=[True]*(n+1) for i in range(2,int(n**0.5)+1): if isPrime[i]: for j in range(2*i,n+1,i): isPrime[j]=False return [p for p in range(2,n+1) if isPrime[p]] 훠훠훠
vs installer에 들어가 유니티 관련 구성요소를 설치해주고 유니티를 재실행해주면 된다