c#
- c++의 연산력 + Visual Basic의 편의성
- 객체지향 프로그래밍언어
- 넷 프레임워크에 최적화
namespace란?
관련 구조체, 클래스, 델리게이트, 인터페이스 등을 그룹화 한 것
class : C# 프로그램을 구성하는 기본 단위
- field : 정적인 상태
- method : 동적인 기능
c#
namespace란?
관련 구조체, 클래스, 델리게이트, 인터페이스 등을 그룹화 한 것
class : C# 프로그램을 구성하는 기본 단위
- field : 정적인 상태
- method : 동적인 기능
android:orientation="vertical" 줄바꿈
# LinearLayout은 한가지 방향으로만 출력할 수 있다. 방향을 바꾸고 싶다면, 중첩하여 사용하면 된다.
android:text="Color Test" 텍스트 내용
android:textSize="30sp" 텍스트 크기# dp, in, mm, pt, px, sp의 단위가 있다.
android:textColor="#5c355c" 텍스트 색상
# html 색상 코드를 사용한다.
android:textStyle="bold|italic"/> 텍스트 스타일
코드를 보니 RET 제외한 스택을 전부 0으로 초기화 시킨다.
아무리 봐도 모르겠어서 예전에도 한번 여기서 막혀서 일단 다른사람이 어떻게 풀었는지 참조하면서 공부했다.
찾아보니 LD_PRELOAD 라는 것을 사용해서 푸는 것이라고 한다.
LD_PRELOAD는 dynamic linker 가 해당 경로의 so 파일을 공유 라이브러리로 무조건 선적재함.
라고 정의 되어있지만, 간단히 말해 프로그램이 시작될때 참조하는 것이라고 기억해두었다.
다음과 같은 코드를 짠 후
* stdio.h를 포함하지 말아야한다.
컴파일 옵션을 저렇게 주고, LD_PRELOAD를 등록 시킨 후
실행 시키면 놀랍게도 이렇게 쉘이 따인다.
그대로 golem에 적용시켜보려고 했더니 이렇게 먹히질 않는다.
아마도 실행되는 권한이 바뀌면서 LD_PRELOAD가 먹히지 않는 것이라고 생각하였다
혹시나 하고 다른 여러가지 실험을 해보았다.
먼저 /bin/my-pass의 권한에 setuid 비트가 걸려있는지 확인을 해보았다.
걸려있지 않았다 my-pass는 geteuid를 호출할때 setuid비트가 걸린 계정의 암호를 보여주기 때문에 setuid비트를 걸지 못한다.
이렇게 훨씬 상위의 비밀번호도 알아낼수 있었다.
일단 이렇게 아무동작도 안하는 프로그램을 하나 생성해서 이름을 쉘코드로 만들어 컴파일 해준다.
[LOB] vampire (0) | 2016.07.23 |
---|---|
[LOB] troll (0) | 2016.07.17 |
[LOB] orge (0) | 2016.07.17 |
[LOB] darkelf (0) | 2016.07.17 |
[LOB] wolfman (0) | 2016.07.17 |