Linux 동적 라이브러리에서 상수 값을 변경하는 방법은 무엇입니까?

젤리 보바 7

64 비트 Linux 용 동적 라이브러리가 있으며 C ++ 코드에서 컴파일 된 많은 함수가 포함되어 있습니다. 코드는 오픈 소스가 아니지만 기능 중 하나가 어떻게 생겼는지 알고 있습니다. 여기에는 수학적 표현이 포함되어 있으며이 표현의 상수 중 하나를 변경하고 싶습니다.

나는 약간의 프로그래밍 기술을 가지고 있지만 컴파일 된 객체와 실행 파일을 살펴본 적이 없습니다. objdump -RDC명령어로 얻은 어셈블리 코드의 관련 부분 은 다음과 같습니다. 관심 상수는 유형이어야하며 double줄에서 곱하기 명령에 사용되는 것 같습니다 7e1cc.

7e1b8:  00 
7e1b9:  f2 0f 59 74 24 78       mulsd  0x78(%rsp),%xmm6
7e1bf:  f2 41 0f 59 f0          mulsd  %xmm8,%xmm6
7e1c4:  f2 0f 58 ce             addsd  %xmm6,%xmm1
7e1c8:  f2 0f 58 ca             addsd  %xmm2,%xmm1
7e1cc:  f2 0f 59 0d fc 0e 0c    mulsd  0xc0efc(%rip),%xmm1        # 13f0d0 <typeinfo name for RestorableCreator<Model>+0x90>
7e1d3:  00 
7e1d4:  48 81 c4 88 00 00 00    add    $0x88,%rsp
7e1db:  66 0f 28 c1             movapd %xmm1,%xmm0
7e1df:  c3                      retq   

파일에서이 상수의 위치를 ​​찾고, 상수를 16 진수 형식으로 변환하고, 파일의 값을 16 진수 값으로 바꾸는 방법을 알고 싶습니다. 아무도 이것을하는 방법을 설명 할 수 있습니까? 또한 적절한 도구에 대한 제안도 정말 가치가있을 것입니다.

광대

상수는 주소입니다 의미, 다음 명령어의 주소입니다 . 따라서 주소는 다음과 같습니다. (objdump는이를 인쇄합니다). 이제를 사용하여 바이너리의 헤더를 검사합니다 . 그러면 가상 주소 및 파일 오프셋과 함께 모든 섹션이 나열됩니다. 주소가 속한 섹션을 찾아 해당 섹션에서 얼마나 멀리 있는지 계산 한 다음 파일 오프셋을 추가합니다. 이제 16 진수 편집기를 사용하여 해당 오프셋에서 double을 나타내는 8 바이트를 가져옵니다. 예를 들어 바이트 배열을 이중으로 캐스팅하고 인쇄하는 간단한 C 프로그램과 같이 원하는 방법으로 사람이 읽을 수있는 형식으로 변환합니다.0xc0efc(%rip)%rip0x7e1d40xc0efc + 0x7e1d4 = 0x13F0D0objdump -h

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Linux에서 C 라이브러리 함수 목록을 보는 방법은 무엇입니까?

분류에서Dev

외부 라이브러리에서 WPF를 사용하여 동적으로 변경 가능한 스타일을 만드는 방법은 무엇입니까?

분류에서Dev

내 PC에서 정상적으로 작동하는 Linux 커널을 찾는 방법은 무엇입니까?

분류에서Dev

jQuery Mobile에서 링크 텍스트 색상을 동적으로 변경하는 방법은 무엇입니까?

분류에서Dev

변수 이름을 동적으로 변경하는 방법은 무엇입니까?

분류에서Dev

변수에 값을 동적으로 할당하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

JdbcTemplate 쿼리에 매개 변수 값을 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

컨트롤러 작업에서 동적 매개 변수 양을 처리하는 방법은 무엇입니까?

분류에서Dev

전단지 맵 / R에서 발산 색상을 수동으로 변경하는 방법은 무엇입니까?

분류에서Dev

클래스 라이브러리 이름을 영구적으로 변경하는 방법은 무엇입니까?

분류에서Dev

Linux (C 프로그래밍)에서 동적 및 정적 라이브러리를 만들고 사용하는 방법은 무엇입니까?

분류에서Dev

Perl에서 라이브러리 함수의 출력을 리디렉션하는 방법은 무엇입니까?

분류에서Dev

Eigen3 라이브러리에서 복잡한 행렬의 실수 / 허수 부분을 효율적으로 추출하는 방법은 무엇입니까?

분류에서Dev

파일에서 변수 값을 변경하는 방법은 무엇입니까?

분류에서Dev

C 라이브러리에서 함수 이름 충돌을 피하는 방법은 무엇입니까?

분류에서Dev

SQL Server : 열 이름을 동적 변수의 값으로 설정하는 방법은 무엇입니까?

분류에서Dev

동적 SQL의 값을 변수에 저장하는 방법은 무엇입니까?

분류에서Dev

Linux, 일시적인 충돌 후 ReadOnly에서 HDD 상태를 변경하는 방법은 무엇입니까?

분류에서Dev

jwplayer 라이브러리에서 자동 회전을 비활성화하는 방법은 무엇입니까?

분류에서Dev

라이브러리에서 수명이 긴 변수 / 상태를 구현하는 방법은 무엇입니까?

분류에서Dev

동적으로 생성 된 값의 텍스트 색상을 변경하는 방법은 무엇입니까? -PHP

분류에서Dev

C ++, gcrypt 라이브러리에서 gcry_cipher_encrypt의 반환 값을 변수에 복사하는 방법은 무엇입니까?

분류에서Dev

Kali Linux의 Wireshark에서 옵션 색상을 변경하는 방법은 무엇입니까?

분류에서Dev

Laravel : 환경 변수를 기반으로하는 routes.php에서 동적 라우팅을 구현하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

수은에 대한 변경 사항을 "적절하게"적용하지 않는 방법은 무엇입니까?

분류에서Dev

Excel VBA 용 상수 라이브러리를 만드는 이상적인 방법은 무엇입니까?

분류에서Dev

단위 테스트에서 상수 값을 변경하는 방법은 무엇입니까?

분류에서Dev

변수가 변경 될 때 동적 테이블을 만드는 방법은 무엇입니까?

분류에서Dev

파이썬을 사용하여 여러 float 값에 동일한 문자열 상수를 적용하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Linux에서 C 라이브러리 함수 목록을 보는 방법은 무엇입니까?

  2. 2

    외부 라이브러리에서 WPF를 사용하여 동적으로 변경 가능한 스타일을 만드는 방법은 무엇입니까?

  3. 3

    내 PC에서 정상적으로 작동하는 Linux 커널을 찾는 방법은 무엇입니까?

  4. 4

    jQuery Mobile에서 링크 텍스트 색상을 동적으로 변경하는 방법은 무엇입니까?

  5. 5

    변수 이름을 동적으로 변경하는 방법은 무엇입니까?

  6. 6

    변수에 값을 동적으로 할당하는 가장 좋은 방법은 무엇입니까?

  7. 7

    JdbcTemplate 쿼리에 매개 변수 값을 동적으로 추가하는 방법은 무엇입니까?

  8. 8

    컨트롤러 작업에서 동적 매개 변수 양을 처리하는 방법은 무엇입니까?

  9. 9

    전단지 맵 / R에서 발산 색상을 수동으로 변경하는 방법은 무엇입니까?

  10. 10

    클래스 라이브러리 이름을 영구적으로 변경하는 방법은 무엇입니까?

  11. 11

    Linux (C 프로그래밍)에서 동적 및 정적 라이브러리를 만들고 사용하는 방법은 무엇입니까?

  12. 12

    Perl에서 라이브러리 함수의 출력을 리디렉션하는 방법은 무엇입니까?

  13. 13

    Eigen3 라이브러리에서 복잡한 행렬의 실수 / 허수 부분을 효율적으로 추출하는 방법은 무엇입니까?

  14. 14

    파일에서 변수 값을 변경하는 방법은 무엇입니까?

  15. 15

    C 라이브러리에서 함수 이름 충돌을 피하는 방법은 무엇입니까?

  16. 16

    SQL Server : 열 이름을 동적 변수의 값으로 설정하는 방법은 무엇입니까?

  17. 17

    동적 SQL의 값을 변수에 저장하는 방법은 무엇입니까?

  18. 18

    Linux, 일시적인 충돌 후 ReadOnly에서 HDD 상태를 변경하는 방법은 무엇입니까?

  19. 19

    jwplayer 라이브러리에서 자동 회전을 비활성화하는 방법은 무엇입니까?

  20. 20

    라이브러리에서 수명이 긴 변수 / 상태를 구현하는 방법은 무엇입니까?

  21. 21

    동적으로 생성 된 값의 텍스트 색상을 변경하는 방법은 무엇입니까? -PHP

  22. 22

    C ++, gcrypt 라이브러리에서 gcry_cipher_encrypt의 반환 값을 변수에 복사하는 방법은 무엇입니까?

  23. 23

    Kali Linux의 Wireshark에서 옵션 색상을 변경하는 방법은 무엇입니까?

  24. 24

    Laravel : 환경 변수를 기반으로하는 routes.php에서 동적 라우팅을 구현하는 가장 좋은 방법은 무엇입니까?

  25. 25

    수은에 대한 변경 사항을 "적절하게"적용하지 않는 방법은 무엇입니까?

  26. 26

    Excel VBA 용 상수 라이브러리를 만드는 이상적인 방법은 무엇입니까?

  27. 27

    단위 테스트에서 상수 값을 변경하는 방법은 무엇입니까?

  28. 28

    변수가 변경 될 때 동적 테이블을 만드는 방법은 무엇입니까?

  29. 29

    파이썬을 사용하여 여러 float 값에 동일한 문자열 상수를 적용하는 방법은 무엇입니까?

뜨겁다태그

보관