[질문] 다른 프로세스의 메모리값 고치기

psycoder의 이미지

'위니'라는 일본 p2p 프로그램이 있는데요..
이게 업로드 허용갯수를 사용자가 지정할수 없고 다만 사용자는 자신의 네트웍 대역폭만 지정할수 있습니다.
그럼 그 대역폭으로 위니에 하드코딩된 값으로 업로드 허용갯수가 설정되구요..
즉, 최소 업로드 허용갯수는 2이고 대역폭에 따라 위니가 자동 설정하므로 업로드를 않할 수가 없습니다.

근데 이걸 패치하는 툴이 있는데 업로드 허용갯수를 맘데로 설정할수 있습니다.
제가 궁금한게 업로드 허용갯수가 위니 자체에 하드코딩되 있는거 같은데(확실하진 않지만 아마두 그런것 같습니다.) 저 패치툴이 어떻게 값을 고치는가 입니다.
설령, 위니에 업로드값이 들어가있는 메모리 번지를 알고 그곳에 쓰기가 가능하다해도 어떻게 다른 프로세스에서 그곳에 접근이 가능할까요?

익명 사용자의 이미지

하드코딩이라면 메모리접근보다.. 바이너리를 손보거나

어셈수준에서 하는것이 더 쉬울것같네요..

IsExist의 이미지

실행파일을 리버스 엔지니어링으로 고쳤을거 같군요..

위니 실행시마다 실행해서 수정되게 한다면 실행중 메모리 공간을 수정해서 한거라 보여지지만 그게 아니라 한번 패치된후 계속 사용한다면 위니실행파일을 고쳤을 거라고 보여집니다.

---------
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

simpid의 이미지

'위니' 가 뭔지는 모르겠지만 Windows용 프로그램이라면 (제가 Linux는 잘몰라서 같은지 모르겠지만)

디버그 모드로 실행해서 특정 주소의 값을 바꿀 수 있습니다.

예를 들면 Visual Studio 로 프로그램 짜고 디버깅 하면서 변수값 확인하고 수정할 수 있는 이치입니다.

일반적으로 프로그램을 직접 고치거나(디스어셈블해서 분석하고 기계어 수준에서 수정), 디버깅 모드를 이용해서 조작을 합니다.

psycoder의 이미지

IsExist wrote:
실행파일을 리버스 엔지니어링으로 고쳤을거 같군요..

위니 실행시마다 실행해서 수정되게 한다면 실행중 메모리 공간을 수정해서 한거라 보여지지만 그게 아니라 한번 패치된후 계속 사용한다면 위니실행파일을 고쳤을 거라고 보여집니다.


패치하는 과정은 이렇습니다.
일단 위니를 실행시킨후 패치프로그램을 실행해서 업로드 값을 바꿔줍니다.
근데 위니를 종료후 다시 실행시키면 그값이 원래 값으로 바뀝니다.
즉, 위니 실행할때마다 패치 프로그램으로 다시 설정을 해줘야합니다.
그러므로 아마두 실행중 메모리값을 수정한게 맞겠지요?
simpid wrote:
'위니' 가 뭔지는 모르겠지만 Windows용 프로그램이라면 (제가 Linux는 잘몰라서 같은지 모르겠지만)

디버그 모드로 실행해서 특정 주소의 값을 바꿀 수 있습니다.

예를 들면 Visual Studio 로 프로그램 짜고 디버깅 하면서 변수값 확인하고 수정할 수 있는 이치입니다.

일반적으로 프로그램을 직접 고치거나(디스어셈블해서 분석하고 기계어 수준에서 수정), 디버깅 모드를 이용해서 조작을 합니다.


아..이런 방법도 있겠군요.. :D

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.