SecurityCode
leony.egloos.com
이글루스 | 로그인

security
by codexb
카테고리
전체
News
Ring0
System
SeLinux
[x86]assem
php.code
Web
Network
Perl
Etc..
advisory
DataBase_security
미분류
이전 블로그
2008년 04월
2008년 03월
2008년 02월
2007년 12월
2007년 11월
2007년 09월
2007년 08월
2007년 06월
2007년 05월
2006년 11월
2006년 08월
2006년 07월
2006년 06월
2006년 05월
2006년 04월
2006년 03월
2006년 02월
2006년 01월
2005년 12월
2005년 11월
2005년 10월
2005년 09월
2005년 08월
2005년 07월
이글루 링크
최근 등록된 덧글
아. 그렇군요.. .dtor..
by 미친감자 at 05/21
미친감자님.. 스택 확보..
by fullc0de at 05/09
좋네요..LEA EDI,DW..
by 미친감자 at 05/09
퍼갑니다
by 미친감자 at 04/25
퍼갑니다
by 미친감자 at 04/25
디버깅 환경이 쉽게 제..
by codexb at 03/21
아닌데요. 부트루트는 ..
by mat at 03/13
eye 의 bootroot 얘기..
by somma at 02/20
Powered by egloos
rss

skin by 이글루스
2008년 04월 28일
New olly bug

올리의 새로운 버그가 발견됐다는 소식입니다.

올리 디버거로 SEH/VEH 기반 프로그램을 디버깅하여 트레이싱시킬 때

새로운 버그가 발견됐다고 하는데.....

포럼에 윈도우 자체 취약점이라는 걸로 의견이 분분합니다.

그런데 결국 올리 제작자가 취약점이 맞다고 해서 이 버그는 제거될거라고 전했습니다.

 

테크니컬 디테일즈:

xor eax, eax  ---> eax = 0x00000000 

mov eax,[eax]

이 두 어셈 명령은 eax가 0의 주소를 참조하여 exception을 발생시키는데 이때 커널은 

TRAP FLAG 와 같은 레지스터 콘텍스트를 저장하고 제어권을 NTDLL.DLL!KiUserExceptionDispatcher

에게 넘긴다. 이 함수는 exception 이 발생할 때의 처음의 유저레벨 함수이다.

올리는 보통 NTDLL.DLL!KiUserExceptionDispatcher 함수를 브레이킹하고
 
shift+f7/f8/f9 키로 다음의 코드로 넘길 수 있다. 제어가 다시 exception이 일어난 곳으로

오면 trap flag 가 클리어 되어야 하는데 올리는 이것을 잊어버린다고 나온다. TF-bit가 셋팅

되어 있기 때문에 새로운 exception이 발생하고 또 다시 SEH-VEH 핸들러를 호출한다.

이것이 반복되어 exception이 누구의 소유인지 모르게되어 SEH-VEH 핸들러는 트레이스의

부당한 요구를 처리하는 걸 기대할 수 없게 된다. 바로 정의되지 않는 행동이여 크래쉬된다고

전하고 있다.

또 다른 디버깅 툴인 w32dasm와 비교해봤을 때 디버깅해보면 exception이 한번 발생하고

제어권을 코드로 넘기기 때문에 이것은 올리의 버그인걸 확인할 수 있다. 

reference : a)http://nezumi.org.ru/olly-bug-776.zip
                  b)
https://www.openrce.org/forums/posts/775




# by codexb | 2008/04/28 10:43 | [x86]assem | 트랙백
2008년 03월 14일
javascript obfuscation

다른 난잡화 기술과 비슷하게 분석가가 자바스크립트 코드를 이해하기 어렵게 하고
간단한 시그내처를 우회하기 위해 코드를 패킹시킨다.

예제의 자바스크립트 코드를 base62인코딩 옵션으로 콤프레셔하면 obfuscation 코드를 얻을 수 있다.

Ex)
<script>
function getValue()
{
var x=document.getElementById("id");
alert(x.innerHTML);
}
</script>

Compressor code)
eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('<0>2 3(){4 1=5.6("7");8(1.9)}</0>',10,10,'script|x|function|getValue|var|document|getElementById|id|alert|innerHTML'.split('|'),0,{}))

Ref site:  
http://dean.edwards.name/packer/
# by codexb | 2008/03/14 13:40 | Web | 트랙백(1)
2008년 02월 16일
New Book - Reverse Engineering Code with IDA Pro

개인적으로 ollydbg 을 자주 사용하지만 리버싱 분야에서의 몇 안되는 책에서
IDA Pro 툴을 이용한 분석법에 대해 다루고 있어 손이 가는 책이다.

Table of contents of this book

………………………………………………………………………………….

Chapter 1: Introduction to IDA Pro

Chapter 2: Installing IDA Pro on Windows, OS X, and Linux

Chapter 3: Learning the IDA Pro Interface

Chapter 4: Analyzing Worms, Viruses, and Trojans

Chapter 5: IDA Pro as a Disassembler

Chapter 6: IDA Pro as a Debugger

Chapter 7: Breaking Hostile Code Armor

Chapter 8: Reversing Obfuscation in Hostile Code

Chapter 9: Automating IDA Pro with Macros

Chapter 10: Writing your Own Exploits

# by codexb | 2008/02/16 00:29 | [x86]assem | 트랙백(1)
◀ 이전 페이지 다음 페이지 ▶