본문 바로가기

프로그래밍/리서치결과

NSIS (배포프로그램) CUSTOM 대화상자 띄우기 + 시리얼넘버(serial number) 적용



NSIS를 다운받아서 설치한 상태에서... 다운주소 : http://nsis.sourceforge.net/Main_Page 

NSIS의 Example폴더에 포함되어있는 많은 예제들을 볼 수 있다.

원하는 시리얼넘버 대화상자를 위해서 추가적인 예제물이 필요했다.
공개홈페이지에서 다음과 같은 파일을 구했다.

PassDialog.zip 를 압축해제하고 각 폴더에 맞게 자료를 복사해주면 되겠다.
그리고 PassDialog은 6가지 예제를 포함하고 있다.

이 예제들을 포함해서 여타다른 예쩨들또한 모든게 스크립트를 작성하여 만들게 되는데, 처음본 입장에서 난해했고 지금도 난해하다 ㅡㅡ;

 하지만 대략적인 방법으로 시리얼넘버를 셋팅하고 받는과정은 알 수 있을것이다.

여기서 내가 원했던 방식은 EncryptWithMD5, EncryptionUserPass이었다.
즉 시리얼넘버를 스크립트상에서 정하고 비밀번호 알아맞춰보세요?~ 가 아니라
무엇인가 상용프로그램 설치할때 묻는 그런 시리얼방식말이다.
이 두가지 예제중 EncryptWithMD5만 봐도 그러한 방식을 얼추 비슷하게 구현해보여서 이놈을 타겟으로 봤다.


이 예제는 string값을 입력하면 md5 checksum이라고 표기한 값이 나와 괴상한 코드가 나오게되는데.
string부를 R1 , md5 checksum으로 나오는 값을 R2로 정해놨다.
R1이 어떻게 string쪽이고 R2가 어떻게 checksum인지 아마 위에 다이얼로그 관련 함수를 거치면서 그렇게 정의된것같기도 하지만 이부분을 뚫어져라봤는데 그건 중요치않았다.


코드내에   
md5dll::GetMD5String $R1
 Pop $R2 
가장 중요하다.

즉 R1(string)에 입력된 값으로 md5dll쪽으로 보내서 R2(md5 checksum)으로 보여주었던 것이다.

따로 Pop &R3도 선언(?) 해주고...

이걸 살짝 바꿔서
md5dll::GetMD5String $R1
 Pop $R3

strCmp &R2 &R3 +3    

이런 코드를 작성하여 md5값이 들어있는 R3값과 내가 코드를 써넣은 두번째 텍스트창 R2값이 일치하는 가를 보고 일치하면 3라인을 아래로 이동하여 코드가 진행토록 하면되겠다.

이와 관련된 작업을 끝마치고 실질적으로 가장 셋업할때 필요한 파일을 셋업하는 그 과정을 넣어야하는데
이 스크립트를 잘몰라도 쉽게 작성할 수 있는 HM NIS Edit라는 프로그램으로 몇번 버튼을 누르고 누르고하면 되겠다. 

위에 nisedit2.0.3 으로 스크립트마법사를 진행한후 다이얼로그+md5관련 코드를 넣으니까 작동이 잘되더라..


아~ 이름과 시리얼넘버는 다음 프로그램으로 알 수 있다 마치 키젠같지만;;;