창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


질문게시판
- 반드시 검색을 하신 후 원하는 답변을 찾을 수 없을 때, 질문을 올려주세요.


LIST ALL
Posted by ps.이진백2004-09-10 07:58:23, Hit : 3686
DLL 함수 뿐 아니라 인자까지...
Homepage : http://gpro.ev7.net/
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=qna&no=910
인자를 알 수 있는 방법은 없나요?

DLL 함수명은 다 알 수 있지만
인자는 알기가 힘들더군요.

어떻게 찾나요?

지상현   2004-09-10 PM 7:24:58  
이건...매우 힘듭니다.
일단, DLL 함수명이란 것이 왜 있냐에 대해 알게 되면요...

이미지 디렉토리에서 함수 포인터를 쉽게 얻을 수 있는 일종의 식별자가 필요해서 ASCII 문자열로 된 문자열을 사용하는 겁니다. 때때로 서수를 사용하는 경우도 있죠. 어쨌든 함수 이름이란건 함수 실제 내용과 관계 없는, 그저 함수 주소를 알기 위한 식별자란 것일 뿐이란 거죠.

또한, 기계어에는 함수라는게 사실 없습니다. 실제로 함수 호출이라는 건 인자를 오른쪽것 부터 차례로 스택 메모리에 Push하고(대부분 오른쪽부터...왼쪽부터 일 수도 있습니다), 함수를 호출(함수가 있는 주소부터 실행하는)합니다.

그럼 함수를 호출 받는 측에선 스택에 넣어뒀던 메모리를 순서대로 Pop 해서 쓰는 겁니다.


-따라서-
i) 인자 갯수를 알기 위해선: DLL을 디스어셈블 하여 Pop 하는 갯수를 세어 봅니다.
ii) 인자 형식을 알기 위해선: 1 Byte 인지, 2 Byte 인지, 4 Byte 인지 정도밖에 알 수 없습니다. 어떤 레지스터를 쓰느냐를 보면 형식은 대충 나옵니다. 하지만 포인터나 문자열, 구조체(문자열, 구조체도 포인터니까) 같은것도 32비트 OS에선 그냥 4바이트 변수일 뿐이므로 어셈 소스를 보고 대충 짐작을 해야 할 것입니다.

하지만 인자 갯수만 알아도 노가다는 할 수 있죠...
지상현   2004-09-10 PM 7:26:03  
방금 말씀 드린건 C 형식 함수에서만 해당됩니다.

C++ 형식 함수는 오버로딩 때문에, 같은 이름의 함수를 export 할 경우 이름 충돌을 피하기 위해서 네임 맹글링을 해서 이름을 만들어 줍니다. 이 때 인자 형식과 갯수까지 저장하므로, 새 버전의 Depend로 볼 수 있습니다.
강현구   2004-09-11 PM 12:26:05  
지상현님이 계시면 CUGz가 따뜻해진다 (...)
지상현   2004-09-11 PM 1:58:29  
음...덧붙이자면, DLL의 함수를 알아내는 것보다
돌아다니는 문서를 구하는게 더 빠를것이라는 겁니다(..)
아니면, 다른 라이브러리를 구한다거나(...)
ps.이진백   2004-09-11 PM 2:36:27  
허허... 그렇군요 -_-;
LIST ALL               GO TO THE TOP


N
Category
   Subject
Posted by
Date
H
notice 창조   반드시 검색 후 질문을 올려주세요.<... 박종훈 2007/09/24  6114
notice 창조   단순 소스제작 부탁은 예고없이 삭제합니... [2] 손상진 2007/04/11  5944
notice 창조   답변소스 등록 관련 안내입니다. [7] 변혁수 2006/01/11  7806
2155 창조
   메모에서 마지막 글자 다음에 커서 이동
날아라KTX 2024/05/20  3
2154 창조
   메모장 자동 폭 가능할까요? [3]
날아라KTX 2024/04/29  45
2153 창조
   풍선말 글꼴, 크기
날아라KTX 2024/03/26  72
2152 창조
   네이버 증권페이지 가격 [2]
날아라KTX 2024/02/22  99
2151 창조
   문자창, 대화창 프로그램 가운데 출력하기
날아라KTX 2023/02/27  323
2150 창조
   리스트박스 질문드려요. [1]
날아라KTX 2022/10/25  386
2149 창조
   메모내용 코마를 구분으로 리스트박스에 정렬... [3]
날아라KTX 2022/10/02  399
2148 창조
   문자표 글꼴 색상 질문드려요
날아라KTX 2022/09/24  436
2147 창조
   멀티버튼이 마우스 따라다니기 [1]
날아라KTX 2022/09/17  427
2146 창조
   카카오톡 다중 접속기도 만들 수 있을까요?
김지훈 2022/04/19  620
2145 창조
   레지스트리...문제점이 뭘까요???? [3]
날아라KTX 2022/04/14  531
2144 창조
   자판을 뗄때 사건에서 띵띵소리 [1]
날아라KTX 2022/04/09  560
2143 창조
   메모 상단줄 질문드려요.
날아라KTX 2022/04/05  525
2142 창조
   폴더명추출 [1]
날아라KTX 2022/01/24  623
2141 창조
   문자표 질문드려요. [1]
날아라KTX 2021/10/19  595
2140 창조
   성인e님께서 도움주셨던 글자 찾아 색상바꾸... [5]
날아라KTX 2021/10/01  676
2139 창조
   리스트박스에 파일명+파일내용 추가하기 [3]
날아라KTX 2020/07/26  1323
2138 창조
   리스트박스 줄위치에 해당하는 버튼 클릭하기 [2]
날아라KTX 2020/03/11  1509
2137 창조
   에디트0 영역에 문자추가 삭제하기 [2]
날아라KTX 2019/10/15  1612
2136 창조
   이진읽어를 10진으로 바꾼다음에 1과 0만으로... [1]
박재성 2019/06/12  1804
2135 창조
   알파벳순서대로 정렬도 창조로 가능할까요?
날아라KTX 2019/05/12  1593
2134 창조
     [re] 알파벳순서대로 정렬도 창조로 가능할까요? [2]
성인e 2019/05/12  1894
LIST ALL   1 [2][3][4][5][6][7][8][9][10]..[87] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인