유돌이

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

Notice

2019. 10. 1. 16:19 델파이

델파이로 만든 실행파일이 자꾸 바이러스에 감염되었다고 한다.

 

검색하니 역시나 델파이4~7 만 걸리는 바이러스로 악성코드와 바이러스 둘다 걸리는 특이한 놈이라고 한다

 

다음은 현승현 님이 작성한 글을 퍼왔다

  

1. HKLM\Software\Borland\Delphi(4 ~ 7) 의 RootDir 키를 참조하여 델파이의 루트 경로를 구합니다.

2. 1. 에서 구한 경로를 기준으로 \source\rtl\sys\SysConst.pas 파일을 \lib\sysconst.pas 파일로 복사하면서...

소스파일 중간에 바이러스 코드를 집어넣습니다.

3. \lib 폴더의 기존의 SysConst.dcu 파일을 SysConst.bak 파일로 백업합니다.

4. dcc32.exe 이용하여 바이러스 코드가 심어진 sysconst.pas 를 새로 컴파일합니다. (새로운 SysConst.dcu 생성)

5. 새로운 SysConst.dcu 가 생성이 되면 감염된 소스코드 SysConst.pas 파일을 삭제합니다.

이후에 델파이에서 컴파일되는 실행파일들은 모두 바이러스 코드가 심어진 SysConst.dcu 가 적용되면서..

해당 실행파일에 바이러스 코드가 추가되는 방식입니다.

<< 복구방법 >>

델파이 라이브러리를 복구하기 위해서는 \lib 폴더의 SysConst.dcu 파일을 제거 후, SysConst.bak 파일을

SysConst.dcu 파일로 이름을 변경해주거나, \source\rtl\sys 폴더의 SysConst.pas 파일을 새로 컴파일해서...

해당 SysConst.dcu 파일을 덮어쓰면 됩니다.

이게 복잡하다 싶으시면, 델파이 삭제 후~ 재설치하는 방법도 있습니다 :D

감염된 파일 복구 방법은 아직 조금 더 봐야겠지만..

카스퍼스키의 경우, 해당 바이러스 코드 영역(대략 4080 바이트 정도)을 '00' 으로 덮어쓴 후,

바이러스 코드 영역을 호출하는 CALL 명령을 NOP(90) 으로 치환하는 방식이었습니다.

 

다행히 업체서버가 카스퍼스키라 아무 이상이 없는것 같다. 그러고보니 한번씩 랜덤하게 메모리 에러 나는것도 이놈때문이라 생각된다...현재는... 

posted by 유돌이