전체 글143 python - ROL, ROR python에서 ROL, ROR 연산이 없어서 아래와 같이 만들어놨다. def ROL(data, shift, size=32): shift %= size remains = data >> (size - shift) body = (data shift remains = (data 2013. 12. 14. RC4 알고리즘 - python RC4에서 key값은 256byte인 S배열을 permutation하는 역할 1. KSA(Key-Scheduling Algorithm)을 통해 256byte의 S배열을 permutation시킨다. 2. PRGA(Pseudo-Random Gerneration Algorithm)을 돌며 평문을 암호화한다. KSA(Key-Scheduling Algorithm) pseudo codde for i from 0 to 255 S[i] := i endfor j := 0 for i from 0 to 255 j := (j + S[i] + key[i mod keylength]) mod 256 swap values of S[i] and S[j] endfor PRGA(Pseudo-Random Gerneration Algorit.. 2013. 12. 14. IDA - 변수에 따른 데이터 영역 정리 전역변수 -ELF- 초기화[o] -> .data 영역초기화[x] -> .bss 영역raw String -> .rodata -PE- 초기화[o] -> .data 영역초기화[x] -> .data 영역 (변수명 : unk_)raw String -> .rdata 2013. 12. 14. API Hooking - [3] DLL Injection + Trampoline Code Hooking Trampoline Code Hooking은 후킹할 함수의 첫 부분에 jmp 코드로 후킹 함수로 실행 흐름이 이동하도록 한다. 이 때 jmp 코드로 덮어진 부분은 저장해 두었다가 후킹 함수에서 원래 함수를 정상적으로 처리할 수 있도록 해준다. 아래에 실습할 MessageBox를 조작하는 방법은 아래와 같다. 1. 원본코드의 첫 5바이트에 hook 코드로 점프하도록 패치2. hook코드로 넘어오면 원본코드 언훅 후 파라미터를 조작해서 호출3. 다시 원본코드에 후킹 설치 #include "stdio.h" #include "wchar.h" #include "windows.h" #define DEF_USER32"User32.dll" #define DEF_MBOX"MessageBoxA" typedef BOOL (.. 2013. 12. 7. 이전 1 ··· 12 13 14 15 16 17 18 ··· 36 다음