22019, 1/1101 회원가입  로그인  
   백트랙
   쉘코드 분석

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=24127 [복사]


쉘코드를 분석해볼려고 하는데요.
우선 쉘코드를 만드는 방법이

c로 코딩을한후
gdb로 확인해서 기계어 코드로 만든다
끝.

쉘코드를 다시 c로 복구하고싶어서
우선
string로 쉘코드를 문자열로바꾼후
gdb로 열어보니 결과가..

(gdb) disass main
Dump of assembler code for function main:
   0x080483b4 <+0>:        push   %ebp
   0x080483b5 <+1>:        mov    %esp,%ebp
   0x080483b7 <+3>:        pop    %ebp
   0x080483b8 <+4>:        ret    
End of assembler dump.

이렇게 까지 밖에 안뜨는데
이걸 다시 c로 바꿀수있는건가요?..

  Hit : 6732     Date : 2012/07/21 01:03



    
백트랙 -------------수정-------
저걸 어떻게 하면 c로바꿀수있을까요?
2012/07/21  
qkrwncks96 직접 분석해서 C프로그램을 제작해야합니다. 2012/07/21  
supershop 완벽하게 c코드로 바꾸는 방법은 없습니다.
IDA Pro의 hex-ray를 쓰시면 높은 정확성으로 C코드로 바뀌긴 하지만
이것 역시 완벽하지 않죠.
세세하게 바꾸려면 직접 손으로 분석하셔야 합니다.
2012/07/21  
백트랙 그러면
저 어셈블리를 다 어느부분에 pop되고
push된다
이런걸로 알수있다는건가요?.
2012/07/21  
두루뭉술 쉘코드 스트링을 전역변수에다가 넣으셨나요? 그러면 그 전역변수를 봐야되요
2012/07/21  
cd80 printf()같은거에 인자로 그 변수명을 주셔서 gdb상에서 푸쉬되는 주소를 디레퍼런스 해보세요~~ 2012/07/21  
백트랙 ㄴcd80
그럼 그 쉘코드를 변수로 저장하고
printf로 출력하라는말씀이신가요?.;

ㄴ두루뭉술
쉘코드는 스트링에 전역변수에다 넜어요.

disass main 하면 모든 어셈이 보이는게아닌가요?ㅜ
2012/07/21