본문 바로가기

Research

CreateProcess BOOL WINAPI CreateProcess( _In_opt_ LPCTSTR lpApplicationName, _Inout_opt_ LPTSTR lpCommandLine, _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ BOOL bInheritHandles, _In_ DWORD dwCreationFlags, _In_opt_ LPVOID lpEnvironment, _In_opt_ LPCTSTR lpCurrentDirectory, _In_ LPSTARTUPINFO lpStartupInfo, _Out_ LPPROCESS_INFORMATION lpProcessInfo.. 더보기
[작성중] Reflective DLL injection Reflective XSS 도 있다는데. 더보기
[작성중] JMP Absolute | Relative E9 xxxxxxxxFF E0FF 25 E8 == > relative call absolute CALL FF 15 ==> 포인터 참조FF 16 __asm{call dword ptr [eax]} 이런 식의 구현에서 call dword ptr [eax] 는 FF 90 00000000 로 표현된다. FF 90 01000000 이었으면 call dword ptr [eax+1] 이고,절대 주소를 사용하지 않는다. jmp + label 형태로. __asm{push label2mov eax, 0x004030FC // call function addrmov eax, [eax]jmp eaxlabel2:add esp,8 } 여기선 label 2 때문에 절대 주소를 사용해야 한다. 004019CD 68 DB 19 40 00.. 더보기
[작성중] Inline Code Patch http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=35162 더보기
[작성중] BreakPoint :: INT 1 vs INT 3 더보기
[Source] Timep.c 1. 운영체제 종류 확인 2. Argument 패스용 함수 _SkipArg 3. 실행시간 측정 (GetSystemTime) #include #include LPTSTR _SkipArg(LPCTSTR targv) { LPTSTR p = (LPTSTR)targv; while( *p != '\0' && *p != '\t' && *p != 0x20 ) p++; while( *p != '\0' && ( *p == '\t' || *p == 0x20 ) ) p++; return p; } int _tmain(int argc, LPTSTR argv[]){ STARTUPINFO StartUp; PROCESS_INFORMATION ProcInfo; union{ LONGLONG li; FILETIME ft; } CreateT.. 더보기
Windows System Programming Windows System Programming(J M Hart 저)을 읽는 중이다.좋은 코드들이 많고, 평소에 쓸 수 있을 만한 API들이 몇 가지가 있다.기록 할 겸사겸사.. 한동안은 이 책에서 소스코드를 보고 분석하고 올려두고 다시보고 수정하고 기타등등..예정.원본은 저자의 홈페이지에 있으니 참조하도록 하좌. Source script Test int main(void) { puts ("Hello You!"); return 0; } 더보기