[질문] 다른 프로세스의 메모리값 고치기
글쓴이: psycoder / 작성시간: 금, 2004/09/17 - 10:21오후
'위니'라는 일본 p2p 프로그램이 있는데요..
이게 업로드 허용갯수를 사용자가 지정할수 없고 다만 사용자는 자신의 네트웍 대역폭만 지정할수 있습니다.
그럼 그 대역폭으로 위니에 하드코딩된 값으로 업로드 허용갯수가 설정되구요..
즉, 최소 업로드 허용갯수는 2이고 대역폭에 따라 위니가 자동 설정하므로 업로드를 않할 수가 없습니다.
근데 이걸 패치하는 툴이 있는데 업로드 허용갯수를 맘데로 설정할수 있습니다.
제가 궁금한게 업로드 허용갯수가 위니 자체에 하드코딩되 있는거 같은데(확실하진 않지만 아마두 그런것 같습니다.) 저 패치툴이 어떻게 값을 고치는가 입니다.
설령, 위니에 업로드값이 들어가있는 메모리 번지를 알고 그곳에 쓰기가 가능하다해도 어떻게 다른 프로세스에서 그곳에 접근이 가능할까요?
Forums:
하드코딩이라면 메모리접근보다.. 바이너리를 손보거나어셈수준에서 하
하드코딩이라면 메모리접근보다.. 바이너리를 손보거나
어셈수준에서 하는것이 더 쉬울것같네요..
실행파일을 리버스 엔지니어링으로 고쳤을거 같군요..위니 실행시마다
실행파일을 리버스 엔지니어링으로 고쳤을거 같군요..
위니 실행시마다 실행해서 수정되게 한다면 실행중 메모리 공간을 수정해서 한거라 보여지지만 그게 아니라 한번 패치된후 계속 사용한다면 위니실행파일을 고쳤을 거라고 보여집니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
'위니' 가 뭔지는 모르겠지만 Windows용 프로그램이라면 (제가 Li
'위니' 가 뭔지는 모르겠지만 Windows용 프로그램이라면 (제가 Linux는 잘몰라서 같은지 모르겠지만)
디버그 모드로 실행해서 특정 주소의 값을 바꿀 수 있습니다.
예를 들면 Visual Studio 로 프로그램 짜고 디버깅 하면서 변수값 확인하고 수정할 수 있는 이치입니다.
일반적으로 프로그램을 직접 고치거나(디스어셈블해서 분석하고 기계어 수준에서 수정), 디버깅 모드를 이용해서 조작을 합니다.
[quote="IsExist"]실행파일을 리버스 엔지니어링으로 고쳤을거
패치하는 과정은 이렇습니다.
일단 위니를 실행시킨후 패치프로그램을 실행해서 업로드 값을 바꿔줍니다.
근데 위니를 종료후 다시 실행시키면 그값이 원래 값으로 바뀝니다.
즉, 위니 실행할때마다 패치 프로그램으로 다시 설정을 해줘야합니다.
그러므로 아마두 실행중 메모리값을 수정한게 맞겠지요?
아..이런 방법도 있겠군요.. :D
댓글 달기