Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error in getRawOffset #24

Closed
cha512 opened this issue Jul 19, 2019 · 2 comments
Closed

Error in getRawOffset #24

cha512 opened this issue Jul 19, 2019 · 2 comments
Assignees
Labels
bug Something isn't working will handle This issue will be handled by us

Comments

@cha512
Copy link

cha512 commented Jul 19, 2019

Describe the bug
특정 파일을 파싱하는 과정에서 getRawOffset 이 제대로 동작하지 않습니다.

Traceback (most recent call last):
  File "b2r2.py", line 31, in <module>
IndexError: 인덱스가 배열 범위를 벗어났습니다.

To Reproduce

이전에 올렸던 이슈에서 사용된 코드와 동일하고 파일만 다릅니다.

다운로드

Environment (please complete the following information):

  • OS: Windows7
  • .NET Core version: 2.2.204
  • B2R2 version: latest from github

Additional context
이 버그는 B2R2의 버그라기 보다는 PE파일의 괴랄한점(각 섹션의 VirtualSize는 PE파일을 로딩하는데 사용되지 않습니다. 그래서 VirtualSize가 설령 이런식의 형태를 띄고있다 할지라도 멀정하게 동작합니다. )과 .NET Core의GetContainingSectionIndex 구현에 기인합니다.

위 사진은 .net core의 GetContainingSectionIndex 구현인데, 이 파일의 경우 모든 섹션의 VA가 0인 괴랄한 형태입니다. 따라서 -1을 리턴하게 되고, b2r2가 제대로 동작하지 않습니다.

b2r2사용에 영향을 줄 수 있는 만큼, 현재섹션(i)의 VA와 다음섹션(i+1)의 VirtualAddress 사이에 변환하는것을 원하는 RVA값이 있는지 확인하는식으로, b2r2에서 자체적으로 구현하는게 어떻습니까?

@cha512 cha512 added the bug Something isn't working label Jul 19, 2019
@sangkilc
Copy link
Member

훌륭한 리포트 감사합니다.

현재섹션(i)의 VA와 다음섹션(i+1)의 VirtualAddress 사이에 변환하는것을 원하는 RVA값이 있는지 확인하는식으로, b2r2에서 자체적으로 구현하는게 어떻습니까?

이 부분은 방향성은 나쁘지 않지만 영향을 받는 다른 코드들이 있을수 있기 때문에 조금 고민을 한 뒤에 고쳐야 할 것 같습니다.

@sangkilc sangkilc added the will handle This issue will be handled by us label Jul 19, 2019
@sangkilc sangkilc self-assigned this Jul 19, 2019
@sangkilc
Copy link
Member

We found that this is more a general problem of using GetContainingSectionIndex, and made a wrapper function to handle this problem.

Fixed in 7b8a233

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working will handle This issue will be handled by us
Projects
None yet
Development

No branches or pull requests

2 participants