텍스트 에디트는 세이브 데이터를 조작하는 에디트 방식중에서 가장 쉬운 방법이다. 그러나 이러한 방식으로 에디트가 가능한 게임은 얼마 되지 않는다.

에디트를 할 수치가 무엇인지를 먼저 결정하자.

Array
여기서는 은하영웅전설V를 예로 들었다.

우주전함의 수를 예로 들어 에디트를 해보겠다. 먼저 위의 수치들을 메모지 등에 적어둔 뒤(2000, 1200, 800…) 게임에서 세이브(저장)을 하고 윈도우로 잠시 빠져 나온다.

에디트의 시작은 세이브 데이터를 여는 것으로 시작되는데, 초보자들이 에디트를 시작할 때 제일 애먹는 부분이 바로 이 부분이다. 세이브 데이터는 게임이 설치된 디렉토리에 보통 확장명이나 파일명이 sav 이거나 Save의 약자가 포함되어있기도 하고, 아니면 세이브 데이터 폴더가 따로 있기도 한다. 어떤 게임(ex : 전사 라이안, 은하영웅전설4 EX)은 세이브 데이터의 이름을 직접 지정하므로 이런 경우는 별 어려움은 없을 것이다. Save 의 약자가 포함되어있는 파일도 없고, 세이브 데이터 폴더가 따로 있지도 않으면, 감으로 찍는수박에 없다. 이럴 때 숫자가 붙어있는 경우 대부분 세이브데이터가 맞다.

Array
은하영웅전설5의 경우 이렇게 세이브 데이터 폴더가 존재하고, 그 안에 세이브 데이터가 있다.

Array
세이브 데이터를 메모장으로 드래그 앤 드롬(Drag and drop;끌어놓기) 하면 열린다.

Array

세이브 데이터를 메모장으로 열어본다. 우리는 아까 뮈젤함대의 전함수를 수정하려고 했다. 메모장의 찾기 기능으로 바꾸고자 하는 수치인 2000을 찾아본다.

Array

이제 2000을 찾았다. 그러나 이것이 뮈젤함대의 통솔력이 맞는지는 아직 장담할 수 없다. 다른 어떤 능력치에 2000이 있을 수도 있기 때문이다. 이런 경우 근처에 뮈젤함대의 다른 수치들도 있는지를 알아보면 된다. 스테이터스(첫 그림)에서 뮈젤함대의 고속전함은 1200, 공격항모는 800이였다. 그렇다면 주위에 1200, 800이 있는지 알아본다.

Array

근처에 고속전함수치인 1200과 공격함모수치인 800이 있으므로 이 수치가 뮈젤함대의 우주전함 수치가 맞는다는 것을 알 수 있다.

Array
이 수치를 9999로 바꿔주고 저장한다.

이제 게임에서 세이브 데이터를 로드하여 수치가 재대로 바뀌었는지 확인해보자. 만약 에디트가 잘못 되었다면, 이 부분을 다시 2000으로 바꿔주어야 한다.

Array

수치가 재대로 바뀌었다. 마찬가지로 고속전함의 숫자도 바꿔보자.

Array

이번에는 찾을 필요 없이 바로 옆의 고속전함 수치인 1200을 바꿔주고 저장하면 된다. 이렇게 해서 우주전함 수치와 고속전함 수치를 9999 로 바꾸어보았다.

 

 

출처 : http://savant2.com.ne.kr/

신고

'Application > Debug' 카테고리의 다른 글

Cheat O'Matic  (0) 2008.02.17
Hex 방식의 에디트  (0) 2008.02.17
Text 방식의 에디트  (0) 2008.02.17
W32/Parite.B  (0) 2008.02.15
Goodcode(?) 정보  (0) 2007.11.10
Good Code(?) 정보.  (0) 2007.08.28

PE_PARITE.A (Trend) W32.Pinfi (Symantec) W32/Parite-B (Sophos) Win32.Pinfi.A (CA) W32/Parite.B (F-Prot) W32/Parite.B (Panda) Win32.Parite.b (AVP)

Type: Win32 polymorphic fileinfector virus
Affects: Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP

Upon infection the virus adds a new section (this section is randomly named with 3 letters followed by the ASC-II character 07) to the host file, which contains the main viral code in encrypted form. This file is later dropped as a randomly named temp-file into the TEMP folder using windows API function to retrieve this path.

The temp-file (around 172Kb in size) is injected into Windows Explorer. This means that if Explorer runs, the virus stays active in memory.

The virus takes the Original Entry Point (OEP) from the infected file out of the Fileheader, encrypts the old Entry Point with a randomly generated 32bit value, and stores this calculated entrypoint value in the encrypted last section of the file, where the virus writes itself.

It needs the original entry point to execute an infected file after the viral code has been executed - otherwise infected programs would not be able to run after the virus runs.

Note: In the following text, %windir% denotes Windows directory (e.g. C:WINDOWS) and %system% denotes Windows System directory (e.g. C:WINDOWSSYSTEM32) as they differ on various versions of Microsoft Windows.

The virus creates the following Registry key:

HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerPINF

Parite uses 2 different, randomly generated, 32bit values, at 2 random addresses in the original host file, and it overwrites these addresses if the file does not run.
If the infected file is active, the virus restores this data out of the encrypted section into the program code. This is a special mechanism to make the cleaning of infected files more difficult.
The virus enumerates and scans all network shares and tries to infect all Windows32 executables and screensaver files.

Other Details

The polymorphic Dropper is written using TASM, and the virus part itself is written with Borland C++ and packed with UPX, a executable file compressor.

 

 

V3로 치료되지 않는다(고 한다. 본인은 V3를 사용하지 않고 NOD32를 사용한다). 2008년 2월 14일. 그러나 그 이후는 잘 모르겠다.

Kaspersky와 NOD32는 확실히 잡아내는것 같다.

신고

'Application > Debug' 카테고리의 다른 글

Hex 방식의 에디트  (0) 2008.02.17
Text 방식의 에디트  (0) 2008.02.17
W32/Parite.B  (0) 2008.02.15
Goodcode(?) 정보  (0) 2007.11.10
Good Code(?) 정보.  (0) 2007.08.28
SearchFree라는 프로그램은..  (0) 2007.07.16
□ 개요

o 국내외 1,000 여개 홈페이지를 해킹하여 홈페이지 방문 PC를 감염시키는 사례가
확인되어 개인 사용자 및 웹서버 관리자의 주의가 필요함

□ 설명

o MS 보안취약점인 MS06-014에 대한 보안패치를 적용하지 않은 인터넷 사용자가
악성코드 경유사이트로 이용된 1,000여개 홈페이지를 방문할 경우 자동으로
트로이목마 프로그램이 설치됨

o 해당 트로이목마는 국내 온라인게임인 한게임과 메이플스토리의 접속 ID 및 패스워드를
해외 공격자에게 유출시킴

□ 예방책

o 개인 PC 사용자 예방책
- 해당 취약점(MS06-014)에 대한 마이크로소프트사의 보안패치 적용
(http://www.microsoft.com/technet/security/bulletin/MS06-014.mspx)

- 보호나라의 PC 자동 보안 업데이트 프로그램 설치
(http://download.pcsmile.co.kr/pcsmile/PCSmileInstaller.exe)

- 최신 바이러스 백신을 이용한 주기적인 점검

o 웹서버 보안 관리 대책
- 안전한 웹 프로그램 개발
* 웹 어플리케이션 보안 템플릿 :
http://www.krcert.or.kr/cyberSecureManual/webapp.jsp
* 홈페이지 개발보안 가이드 :
http://www.krcert.or.kr/cyberSecureManual/hpdev.jsp

- 공개 웹 방화벽을 이용한 웹 보안 강화
* 공개 웹 방화벽 다운로드 :
http://www.krcert.or.kr/cyberSecureManual/pre_firewall.jsp

- 웹 취약점 점검
* 원격 점검 서비스 신청 :
http://webcheck.krcert.or.kr/index.html

- ARP Spoofing 예방 및 탐지
* 게이트웨이에서 동적 ARP Table 대신 정적 ARP Table 사용
* arpwatch(http://ee.lbl.gov) 등 도구를 이용한 ARP cache 모니터링

- 웹 해킹 사고 발생시 분석 절차
* 침해사고 분석절차 가이드 :
http://www.krcert.or.kr/docDown.jsp?dn=10


□ 개인 PC 감염 시 수동 치료 방법
※ 2007년 2월 7일 현재 대부분의 바이러스 백신에서 해당 악성코드의 탐지 및 치료가
가능하며, 바이러스 백신이 없을 경우 아래의 치료방법 사용을 권장함

▷ 감염 시 치료 절차 요약
① 안전모드로 부팅 → ② 악성코드 alg.exe 삭제 →
③ 악성코드에 의하여 손상된 Winsock 복구 →
④ 악성코드 okviewer4.dll 삭제 → 재 부팅


▷ 상세 치료 절차

① 안전모드로 부팅
윈도우를 다시 시작하여 안전 모드로 부팅한다.(부팅시 F8을 누른 후 안전모드 선택)

② 악성코드 alg.exe 삭제
트로이목마가 윈도우 폴더(Windows NT/2000의 경우 c:winnt, Windows XP의 경우
c:windows)에 생성한 alg.exe를 삭제한 후 재부팅 한다.

※ 주의 : 정상적인 alg.exe는 시스템 폴더(Windows NT/2000의 경우 c:winntsystem32,
Windows XP의 경우 c:windowssystem32)에 있으며 이 파일을 삭제해서는 않됨

③ 악성코드에 의하여 손상된 Winsock 복구(MS社 권장 Winsock 복구방법)

※ 주의 : Winsock 복구 후, 바이러스 백신의 인터넷 감시기능, 개인방화벽 또는
프록시 클라이언트 등 인터넷에 액세스하거나 인터넷을 모니터링하는 프로그램들이
올바르게 작동하지 않을 수 있으며, 이러한 문제 발생 시에는 해당 프로그램을
다시 설치하여 기능을 복원하여야 함

▶ 윈도우 XP SP2 일 경우의 Winsock 복구방법
[Step1] 시작 → 실행 → cmd.exe 를 입력 후 확인

[Step2] netsh winsock reset 명령 실행

[Step3] 재 부팅

▶ 윈도우 XP SP1 일 경우의 Winsock 복구방법

[Step1] 시작 → 실행 → regedit 를 입력 후 확인

레지스트리 편집기에서 아래 경로의 키를 찾아 마우스 오른쪽 버튼을 눌러 삭제
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesWinsock
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesWinsock2


[Step2] TCP/IP 설치
시작 → 제어판 → 네트워크 및 인터넷 연결 → 네트워크 연결
→ 로컬영역 연결(마우스 오른쪽 버튼 클릭하여 속성 선택)
→ 설치 클릭 → 프로토콜 선택 후 추가 → 디스크 있음
→ c:Windowsinf 를 입력한 다음 확인 을 클릭

[Step3] 인터넷 프로토콜(TCP/IP) 선택 후 확인 클릭

[Step4] 재 부팅

▶ 윈도우 2000 일 경우의 Winsock 복구방법

[Step1] 인터넷 프로토콜(TCP/IP) 제거
시작 → 설정 → 제어판 → 네트워크 및 전화접속 → 로컬영역 연결(마우스 오른쪽
버튼 클릭하여 등록정보 선택) → 인터넷프로토콜 (TCP/IP) 선택한 후
제거 메뉴 클릭

[Step2] 재 부팅

[Step3] 인터넷 프로토콜(TCP/IP) 재 설치
시작 → 설정 → 제어판 → 네트워크 및 전화접속 → 로컬영역 연결(마우스 오른쪽
버튼 클릭하여 등록정보 선택) → 설치 클릭 → 프로토콜 선택 후 추가
→ 인터넷 프로토콜(TCP/IP) 선택 후 확인

④ 악성코드 okviewer4.dll 삭제
[Step1] 악성코드 okviewer.dll 삭제
윈도우 시스템 폴더(Windows NT/2000의 경우 c:winntsystem32,
Windows XP의 경우 c:windowssystem32)에 생성된 okviewer4.dll를 삭제

[Step2] 재 부팅
신고

'Application > Debug' 카테고리의 다른 글

Text 방식의 에디트  (0) 2008.02.17
W32/Parite.B  (0) 2008.02.15
Goodcode(?) 정보  (0) 2007.11.10
Good Code(?) 정보.  (0) 2007.08.28
SearchFree라는 프로그램은..  (0) 2007.07.16
[해킹] 테트리스 블럭 조작 기법  (0) 2007.07.11
컴이 부쩍 느려졌다 싶어 프로세스를 확인해 보니까 요런게 있더군요.

C:program FilesCommon FilesGRETECHEnginev12gretech12.exe 194560byte 190kb
C:program FilesCommon FilesMacromedianvdiavb.exe 194560byte 190kb
C:program FilesCommon FilesInstallShieldEngine2iexplore.exe 194560byte 190kb
C:program FilesDirectXbinv12directx12.exe 194560byte 190kb

파일 크기가 완전히 같고, 여기저기 숨겨놓은 것을 보아 바이러스나 악성코드로 추정됩니다.
또한 msconfig의 서비스 란에 enginev12, lsass_b라는 정체불명의 서비스를 등록합니다.

이 파일들은 삭제해도 부팅시마다 계속 생성됩니다.
이상한 점은

C:Program Filesmicrosoft frontpageversion2.0binlsass.exe 171008byte 167kb

요런 파일이 존재하고 있더란 겁니다. 저는 frontpage를 깐적이 없습니다. -- ;
안전모드(명령 프롬프트)로 부팅해서 del 명령으로 지워주면 그 다음 부팅부터는 위 파일들이 생성되지 않았습니다 ' '


이 파일들에 대해서는 아무것도 못찾았습니다. 무슨 일을 하는 건지, 어느 경로로 침입한건지도 모르겠고.. 근데 뭔가 찜찜해서 말이죠 -_-;

신뢰할만한 자료가 나오거나 혹은 단순히 제 착각이었거나 하는게 밝혀지면 이 포스팅은 방법하도록 하겠습니다

출처 : http://com0021.oranc.co.kr/tt/entry/enginev12-%EB%B0%94%EC%9D%B4%EB%9F%AC%EC%8A%A4?(구글 검색)
신고

'Application > Debug' 카테고리의 다른 글

W32/Parite.B  (0) 2008.02.15
Goodcode(?) 정보  (0) 2007.11.10
Good Code(?) 정보.  (0) 2007.08.28
SearchFree라는 프로그램은..  (0) 2007.07.16
[해킹] 테트리스 블럭 조작 기법  (0) 2007.07.11
악성코드 만들기.. -ㅅ-;;  (0) 2007.07.07
MuFree라는 프로그램을 설치했을 때 같이 설치되는 것으로 알고있다..

시간이 남을때 뮤프리라는 것에 대해 좀 연구를 해야할 것 같다.

이놈이 어디서 어떻게 설치되는지, 같이 설치되는 프로그램은 무엇인지, System 폴더에 들어가는 dll은 무엇인지, 시작프로그램에 등록되는 프로그램은 어떤것이 있는지.

나중에 이 포스트에서 MuFree라는 프로그램의 Diet 버전을 배포하게 될지도 모르겠다.

사실, 광고를 본다는건 이미 "Free"가 아니거든.

SearchFree. 이미 검색은 무료가 아니다.

네이버 공짜 아니냐고? ...무슨 헛소릴.. 광고가 보이지 않는가..

아무튼, 서치프리라는놈은 지워도 제대로 지워지지 않도록 일부러 설계했을 것이다.

어려운건 이런 놈들이 한둘이 아니라는 얘기지.

뮤프리.. 가끔 내가 아르바이트 하는 PC방에 놀러오는 중고딩 녀석들이 많이 설치하더군..

서치프리를 일단은 Add or Remove Program(프로그램 추가/제거)에서 지워지긴 하더라..

깨끗하게 지우는 방법은 연구중.

현재 개발중인 "악성코드"(나의 네이밍 센스때문에 욕 많이 먹었다. '결제를 요구하는 악성코드 제거 프로그램을 차단하는 프로그램'인데..)에 서치프리는 필수 제거 아이템으로 들어가 있으니 곧 좋은 소식이 있을것이다..
신고

'Application > Debug' 카테고리의 다른 글

Goodcode(?) 정보  (0) 2007.11.10
Good Code(?) 정보.  (0) 2007.08.28
SearchFree라는 프로그램은..  (0) 2007.07.16
[해킹] 테트리스 블럭 조작 기법  (0) 2007.07.11
악성코드 만들기.. -ㅅ-;;  (0) 2007.07.07
New Project : BadCode  (0) 2007.07.06
이 글들을 읽을땐 C나 Asm에 대한 약간의 지식이나 API에 대한 사전 지식은 도움이 됩니다.


테트리스 블럭 조작 기법
Written by A #Dual_Root




서론

이 글에서는 테트리스 게임의
블럭 조작 기법을 소개합니다.






필요한 도구들

- Olly Dbg






대상 프로그램 링크

저작권상의 이유로 링크할순 없습니다. - 넷마블 테트리스+




본문




1.테트리스?
안녕하세요~ Dual입니다. ;) 홈페이지에서 왠만하면 GameHacking기법에 대해선 다루지 않으려고 했지만, 왠지 하나쯤은 있어도 괞찮겠다는 생각이 들어서 글을 쓰게 되었습니다. ;) 그리고 이글에서는 노가다적인 Memory Finding을 쓰면서 하는것이 아닌, 테트리스 게임에 대한 분석을 통해서 얻어낼수 있는 사항들을 가지고 디버거 툴을 가지고 패치하는 법에 대해서 다루도록 해보겠습니다. ;p 예~! 본격적인 패치 작업을 시작하기 전에 블럭 조작을 위해서 필요한 사항이 무엇인지 파악하는것이 중요합니다. 먼저, 테트리스의 블럭(모양)수는 몇개일까요? 위에서의 그림 처럼, 블럭의 갯수는 7개 입니다. ;p (이것을 미리 알아두는 것은 아주 중요합니다.) Tetris게임은 블럭을 Random적으로 생성해내어, 이값을 배열에 저장해두고, 배열의 값을 하나씩 읽어와서 그 해당 블럭을 출력하는 방법을 취하고 있습니다. (미리 블럭 배열을 생성 해두는 이유는 게임의 속도 떄문일것입니다.) 여기서 의문점이 생길수 있습니다. 과연 Random적으로 블럭의 값을 생성해내는 방법은? 어떤 함수를 이용하는 것일까? 라는 의문점이죠. Random Number를 우리 나라 말로 하면 난수가 됩니다. 난수란 어떤 규식성이 없이 무작위로 발생한 수를 말하는 것이죠. 그리고 이 난수를 발생시키는 함수는 VC 내장 함수인 rand() 함수입니다. rand() 함수를 이용하여 블럭의 갯수(=7개)만큼의 난수를 발생시킬떈 밑에와 같이씁니다. rnd = rand() % 7; 아무리 큰수가 되더라도 7로 나눈 나머지(mod연산)을 구하면 7이하의 값이 되게 됩니다. 이를 어셈블리어로 표시해보면 밑에와 같을 것입니다. call rand //rand함수를 호출한다. cdq xor eax,edx //eax와 edx를 xor 연산한다. mov ecx,7 //나누는 수는 ecx에 저장한다. sub eax,edx //eax에서 edx를 뺸다. cdq idiv ecx //eax의 값을 ecx 나눈다. 우리는 이와 같은 형태의 부분을 찾으면 되는 것입니다. ;p 이제 이론적인 부분을 알게 되었으니, 남은 일은 OllyDbg를 이용하여 실제로 저거와 비슷한 부분을 찾아내면 되는것 입니다. ;) OllyDbg를 키고 대상 프로그램으로 넷마블 테트리스+ 를 지정합니다. (Attach) 올리디버거 메뉴 상단의 E<=버튼을 클릭하여 모듈 목록을 띄운후에, Tetrisplus.exe를 마우스 오른쪽 버튼으로 클릭하면 뜨는 메뉴중, View Names 메뉴를 클릭해서 함수목록을 띄웁니다. 함수 목록이 떳다면, rand()함수가 있는지 찾아봅니다. 역시 우리의 기대를 져버리지 않고, rand()함수가 존재하는것을 볼수 있습니다. ;) rand 함수를 마우스 오른쪽 버튼으로 클릭하여 뜨는 메뉴중 Find References 라는 메뉴를 클릭하여 rand()함수를 호출하는 주소들을 볼수 있습니다. 정말 많은곳에서 rand()함수를 호출해다가 쓰는곳을 볼수 있습니다. 이것을 하나씩 Follow In Disassembler 하여 보는 것은 엄청난 노가다 작업이 될듯함으로 ;) Set Break On Every Command 메뉴를 이용해서 모두 브레이크 포인트를 건후, 게임을 시작할떄 브레이크 포인트가 걸리는것중 우리가 찾는 부분과 비슷한것이 있는지 찾아 보는 형식으로 해보겠습니다. ;) 첫번쨰 브레이크 포인트가 걸린지점은, 00442103 E8 A2B40700 CALL TetrisPl._rand 00442108 99 CDQ 00442109 B9 32000000 MOV ECX,32 0044210E 8B1D 20895400 MOV EBX,DWORD PTR DS:[<&WINMM.timeGetTim>; WINMM.timeGetTime 00442114 F7F9 IDIV ECX 우리가 찾는 값은 7인데 여기선 32임으로 아니니, 브레이크 포인트를 해제하고 넘어갑니다. 0044213E E8 67B40700 CALL TetrisPl._rand 00442143 8B8E B8010000 MOV ECX,DWORD PTR DS:[ESI+1B8] 00442149 89BE F4010000 MOV DWORD PTR DS:[ESI+1F4],EDI 0044214F 85C9 TEST ECX,ECX 00442151 74 07 JE SHORT TetrisPl.0044215A 두번째 브레이크 포인트가 걸린 지점역시 아닌듯 합니다. 브레이크 포인틀르 해제하고 넘아갑니다. 00442197 E8 0EB40700 CALL TetrisPl._rand 0044219C 8B86 F0010000 MOV EAX,DWORD PTR DS:[ESI+1F0] 004421A2 85C0 TEST EAX,EAX 004421A4 74 09 JE SHORT TetrisPl.004421AF 004421A6 50 PUSH EAX 004421A7 E8 33E30D00 CALL TetrisPl.??3@YAXPAX@Z 세번쨰 지점 역시 아닌듯 합니다. ;) 00442221 E8 84B30700 CALL TetrisPl._rand 00442226 89BE A8010000 MOV DWORD PTR DS:[ESI+1A8],EDI 0044222C 8B76 0C MOV ESI,DWORD PTR DS:[ESI+C] 0044222F 85F6 TEST ESI,ESI 네번쨰 역시도 아닙니다 T.T 004410EB E8 BAC40700 CALL TetrisPl._rand 004410F0 99 CDQ 004410F1 B9 32000000 MOV ECX,32 다섯번쨰 역시 아닙니다. 00441146 E8 5FC40700 CALL TetrisPl._rand 0044114B 99 CDQ 0044114C B9 0A000000 MOV ECX,0A 00441151 F7F9 IDIV ECX 여섯번쨰 지점은 상당히 흡사하여 보이지만, 우리가 찾는것은 0xA가 아닌 0x7임으로 넘어갑니다. 004339FD E8 A89B0800 CALL TetrisPl._rand 00433A02 99 CDQ 00433A03 B9 0A000000 MOV ECX,0A 00433A08 F7F9 IDIV ECX 일곱번쨰 역시 우리가 찾는 부분이 아닙니다. 004393DC E8 C9410800 CALL TetrisPl._rand 004393E1 99 CDQ 004393E2 33C2 XOR EAX,EDX 004393E4 B9 07000000 MOV ECX,7 004393E9 2BC2 SUB EAX,EDX 004393EB 99 CDQ 004393EC F7F9 IDIV ECX 8번쨰에 우리가 찾던 부분을 찾을수 있었습니다. ;p 아직 확실하지 않음으로 몇번더 OllyDbg를 돌립니다. ;0 00439406 E8 9F410800 CALL TetrisPl._rand 0043940B 99 CDQ 0043940C 33C2 XOR EAX,EDX 0043940E B9 07000000 MOV ECX,7 00439413 2BC2 SUB EAX,EDX 00439415 99 CDQ 00439416 F7F9 IDIV ECX 9번쨰 브레이크 포인트가 걸린지점은 8번쨰 부분과 똑같이 생겼으며, 8번쨰 포인트 바로 아래부분에 있는것으로 보아 넷마블 테트리스+의 프로그래머 분께서 블럭 체크를 위해 같은 부분을 두곳만들어 둔것이 아닌가 생각됩니다. ;) 우리는 패치해야할 주소를 알아낸 것입니다. 이제 패치하는 방법에는 두가지 방법이 있습니다. ------------------------------------------------ ① ecx의 값을 수정하여 범위를 좁아지게 만든다. ② eax의 값을 수정하여 무조건 어떤 블럭이 나오도록 만든다. ------------------------------------------------ 2번쨰 방법은 넷마블 테트리스+의 경우 같은 블럭이 연속으로 여러번 떨어질 경우 잘못된 패킷이라 간주하고, 방에서 접속이 끊어짐으로 첫번쨰 방법을 사용 하도록 해보겠습니다. ;) 8번쨰와 9번쨰 부분의, 004393E4 B9 07000000 MOV ECX,7 0043940E B9 07000000 MOV ECX,7 를 각각 MOV ECX,2로 바꾸었습니다. ;) 이제 테트리스에서 패치가 적용되었는지 확인해 보겠습니다. ;) 이제 어디 부분을 패치해줘야 되는지 알았음으로 Memory Patch식으로 만들거나(추천), 실행 파일에 직접 수정을 가해줄수 있겠습니다. (이방법 쓰면 게임이 재미없어지겠죠) 우리는 테트리스의 블럭의 계수가 7개이며, 난수를 발생시키는 함수는 rand() 함수였다는 사실을 통해 rand()함수에 브레이크 포인트를 걸고 적절한 부분을 찾는 방법을 통해 성공적으로 패치 해낼수 있었습니다. ;) 이것은 테트리스 만의 것이 아님으로 여러가지 게임에 응용해 볼수 있을것입니다. ;) 간단한 예로 지뢰찾기 같은 프로그램 부터 시작해서 N뭐 게임사의 MxxxxxSxxxy 같은 게임에서 초기 스텟을 주사위로 정하는거 같은 게임까지 말이죠 ;) 그럼 오늘 글도 여러분에게 많은 도움이 됬었길 바라며, 오늘도 즐거운 밤입니다. 출처: http://dualpage.muz.ro/
신고

'Application > Debug' 카테고리의 다른 글

Good Code(?) 정보.  (0) 2007.08.28
SearchFree라는 프로그램은..  (0) 2007.07.16
[해킹] 테트리스 블럭 조작 기법  (0) 2007.07.11
악성코드 만들기.. -ㅅ-;;  (0) 2007.07.07
New Project : BadCode  (0) 2007.07.06
awvvu.dll, nnnonlk.dll 이것들이!!  (0) 2007.06.28
요즘 Active-X로 이루어진 사이트 몇번 들락거리다 보면 보안 세팅 다시 해주게 되고..

나도 모르는 어느새에 이상한 프로그램이 설치되어 버린다..

어떤 넘은 아예 Explorer.EXE에 붙어서 떨어지지 않는 넘도 있고..

PC방 같은곳에 가면.. 스누핑 프로그램같지도 않은 악성코드 치료프로그램(?)에 내 개인정보가 유출될것 같았다..

그래서.. 간단한 스크립트를 이용해서 "악성코드"를 만들기로 결심했다..

코드네임 : "악성코드 ; Badcode"

기능 : 악성코드 제거 프로그램을 제거함 -_-

악성코드라는게 뭔지 모호해서 그냥 프로그램 이름을 "악성코드"라고 했다....

모든 액션은 사용자가 직접 클릭해야 하지만..

프로그램이 설치되어 있는지 여부는 프로그램이 판단할 수 있도록 했다..

나같은 컴퓨터 초보자도 쉽게 사용할 수 있도록 만들었다 -_-

NSIS라는 스크립트 기반 프로그램이 정말 좋더군..

엑셀에서 스크립트로 게임을 만들듯, NSIS로도 게임을 만들 수 있을것 같았다...... ㅋㅋ

아무튼, 곧 공개될 예정이므로.. 필요한 사람은 받아서 쓰도록 하자..

덧을 붙이자면.. 누구나 스크립트 정도는 쓸 수 있지만, 시도를 안하는것 뿐이라고 생각한다.

고등학교 졸업한 실력 정도면 누구나 프로그래머가 될수 있다고 생각한다..

단지 일반인과 프로그래머의 차이라면, 얼마나 흥미를 가지고, 또 포기하지 않고 노력을 했는지 차이일 것이다..

사실 모든 일이 마찬가지겠지만..

본인은 낙천적인 성격이라서 이런 프로그램도 만들 수 있지만..

성격이 급하신 분들에겐 어려울 것 같다..

뭐든 생각했던대로 안되면 자기 자신이 아닌 누군가를 닥달하는 대한민국 사람들..

다들 잘못 알고있는 상식 한가지..

컴퓨터도 거짓말을 안한다?

컴퓨터 역시도 거짓말 잘한다.

왜냐하면 누군가가 시키기 때문에 ^^
신고








NSIS Script코드입니다.

;NSIS Modern User Interface
;Start Menu Folder Selection Example Script
;Written by Joost Verburg;--------------------------------
;Include Modern UI

!include "MUI.nsh"
!include Sections.nsh

;--------------------------------
;General

;Name and file
Name "악성코드"
OutFile "Badcode.exe"

;Default installation folder
InstallDir "$PROGRAMFILESBad Code"

;Get installation folder from registry if available
InstallDirRegKey HKCU "SoftwareBadcode" ""

;Vista redirects $SMPROGRAMS to all users without this
RequestExecutionLevel admin

;--------------------------------
;Variables

Var MUI_TEMP
Var STARTMENU_FOLDER
Var File01
Var File02
Var File03
Var File04
Var File05
Var File06
Var File07
Var File08
Var File09
Var File10
Var File11

;--------------------------------
;Interface Settings

!define MUI_ABORTWARNING

;--------------------------------
;Pages

!insertmacro MUI_PAGE_LICENSE "License.txt"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY

;Start Menu Folder Page Configuration
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "SoftwareBadcode"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"

; !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER

; !insertmacro MUI_PAGE_INSTFILES

; !insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES

;--------------------------------
;Languages

!insertmacro MUI_LANGUAGE "Korean"

;--------------------------------
;Installer Sections

Section /o "시작할때마다 바탕화면정리" Sec00

SetOutPath "$INSTDIR"

;ADD YOUR OWN FILES HERE...

;Store installation folder
WriteRegStr HKCU "SoftwareBadcode" "" $INSTDIR

;Create uninstaller
WriteUninstaller "$INSTDIRUninstall.exe"

;Create shortcuts
CreateDirectory "$SMPROGRAMS$STARTMENU_FOLDER"
CreateShortCut "$SMPROGRAMS$STARTMENU_FOLDERUninstall.lnk" "$INSTDIRUninstall.exe"

SectionEnd

Section /o "이지캐치 제거" Sec01
ExecWait "C:WINDOWSezcatch_uninstaller.exe"

SectionEnd

Section /o "아프리카 플레이어 제거" Sec02
ExecWait "C:Program FilesafreecaUninstall.exe"
RmDir /r "C:Program Filesafreeca"

SectionEnd

Section /o "K-Defense 키보드보안 제거" Sec03
ExecWait "regsvr32 /u /s “C:WINDOWSDownloaded Program Fileskdfense8.ocx”"

SectionEnd

Section /o "nProtect KeyCrypt 제거" Sec04
ExecWait "C:WINDOWSsystem32npkuninst.exe"

SectionEnd

Section /o "nProtect Netizen 제거" Sec05
ExecWait "C:WINDOWSsystem32npnuninst.exe"

SectionEnd

Section /o "PCHealth 제거" Sec06
ExecWait "rundll32.exe setupapi.dll,InstallHinfSection DefaultUninstall 132 C:WINDOWSINFPCHealth.inf"

SectionEnd

Section /o "SoftCamp Secure KeyStroke" Sec07
ExecWait "C:WINDOWSsystem32UnSCSK.exe"

SectionEnd

Section /o "Nexon Plug" Sec08
ExecWait "C:Documents and SettingsAll UsersApplication DataNexonNGMNGM.exe -mode:uninstall -dll:platform.nx.com/NGM/Bin/NGMDll.dll -game:65538 -locale:KR"

SectionEnd

Section /o "아이템베이 안전툴바 제거" Sec09
ExecWait "C:Program FilesItemBayIBBarIBBar_setup.exe -u"
RmDir /r "C:Program FilesItemBay"

SectionEnd

Section /o "야후 툴바 제거" Sec10
ExecWait "C:PROGRA~1Yahoo!Commonunyt.exe"
RmDir /r "C:Program FilesYahoo!"

SectionEnd

Section /o "한글인터넷주소도우미 라이트 제거" Sec11
ExecWait "regsvr32 /u /s C:WINDOWSsystem32KoreanAdd.dll"
Delete "C:Windowssystem32KoreanAdd.dll"

SectionEnd

;--------------------------------
;Descriptions

;Language strings
LangString DESC_Sec00 ${LANG_ENGLISH} "시작할때마다 게임을 찾아서 '게임'이라는 폴더에 넣어줍니다.."
LangString DESC_Sec01 ${LANG_ENGLISH} "바이러스도 못잡으면서 돈만 밝히는.."
LangString DESC_Sec02 ${LANG_ENGLISH} "웹사이트 돌다보면 어디선가 설치되는 이상한놈."
LangString DESC_Sec03 ${LANG_ENGLISH} "되기나 하는지 -_-.."
LangString DESC_Sec04 ${LANG_ENGLISH} "겜좀 하다보면 깔린다.. 속도 잡아먹는 주범.."
LangString DESC_Sec05 ${LANG_ENGLISH} "도대체 왜 두개나 까는지...."
LangString DESC_Sec06 ${LANG_ENGLISH} "너때문에 건강이 더 나빠지고 있다.."
LangString DESC_Sec07 ${LANG_ENGLISH} "아주 컴터 안에 캠프를 지어라.."
LangString DESC_Sec08 ${LANG_ENGLISH} "기본값이 처음시작할때 Silence모드가 기본으로 되어있기만 해도 안지운다.."
LangString DESC_Sec09 ${LANG_ENGLISH} "안전하게 좀 지워져라.."
LangString DESC_Sec10 ${LANG_ENGLISH} "아주 오래된 툴바.."
LangString DESC_Sec11 ${LANG_ENGLISH} "한글인터넷주소를 쓴다면 놔두시길.. 본인은 안티 넷피아라서 꼭 지운다.."

;Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Sec00} $(DESC_Sec00)
!insertmacro MUI_DESCRIPTION_TEXT ${Sec01} $(DESC_Sec01)
!insertmacro MUI_DESCRIPTION_TEXT ${Sec02} $(DESC_Sec02)
!insertmacro MUI_DESCRIPTION_TEXT ${Sec03} $(DESC_Sec03)
!insertmacro MUI_DESCRIPTION_TEXT ${Sec04} $(DESC_Sec04)
!insertmacro MUI_DESCRIPTION_TEXT ${Sec05} $(DESC_Sec05)
!insertmacro MUI_DESCRIPTION_TEXT ${Sec06} $(DESC_Sec06)
!insertmacro MUI_DESCRIPTION_TEXT ${Sec07} $(DESC_Sec07)
!insertmacro MUI_DESCRIPTION_TEXT ${Sec08} $(DESC_Sec08)
!insertmacro MUI_DESCRIPTION_TEXT ${Sec09} $(DESC_Sec09)
!insertmacro MUI_DESCRIPTION_TEXT ${Sec10} $(DESC_Sec10)
!insertmacro MUI_DESCRIPTION_TEXT ${Sec11} $(DESC_Sec11)

!insertmacro MUI_FUNCTION_DESCRIPTION_END

;--------------------------------
;Uninstaller Section

Section "Uninstall"

;ADD YOUR OWN FILES HERE...

Delete "$INSTDIRUninstall.exe"

RMDir "$INSTDIR"

!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP

Delete "$SMPROGRAMS$MUI_TEMPUninstall.lnk"

;Delete empty start menu parent diretories
StrCpy $MUI_TEMP "$SMPROGRAMS$MUI_TEMP"

startMenuDeleteLoop:
ClearErrors
RMDir $MUI_TEMP
GetFullPathName $MUI_TEMP "$MUI_TEMP.."

IfErrors startMenuDeleteLoopDone

StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
startMenuDeleteLoopDone:

DeleteRegKey /ifempty HKCU "SoftwareBadcode"

SectionEnd

Function .onInit

StrCpy $File01 'C:WINDOWSezcatch_uninstaller.exe'
StrCpy $File02 'C:Program FilesafreecaUninstall.exe'
StrCpy $File03 'C:WINDOWSDownloaded Program Fileskdfense8.ocx'
StrCpy $File04 'C:WINDOWSsystem32npkuninst.exe'
StrCpy $File05 'C:WINDOWSsystem32npnuninst.exe'
StrCpy $File06 'C:WINDOWSINFPCHealth.inf'
StrCpy $File07 'C:WINDOWSsystem32UnSCSK.exe'
StrCpy $File08 'C:Documents and SettingsAll UsersApplication DataNexonNGMNGM.exe'
StrCpy $File09 'C:Program FilesItemBayIBBarIBBar_setup.exe'
StrCpy $File10 'C:PROGRA~1Yahoo!Commonunyt.exe'
StrCpy $File11 'C:WINDOWSsystem32KoreanAdd.dll'

IfFileExists $File01 Sec01Exists PastSec01Check
Sec01Exists:
; This is what is done by sections.nsh SelectSection macro
SectionGetFlags "${Sec01}" $0
IntOp $0 $0 | ${SF_SELECTED}
SectionSetFlags "${Sec01}" $0

PastSec01Check:
IfFileExists $File02 Sec02Exists PastSec02Check
Sec02Exists:
; Use the macro from sections.nsh
!insertmacro SelectSection ${Sec02}

PastSec02Check:
IfFileExists $File03 Sec03Exists PastSec03Check
Sec03Exists:
!insertmacro SelectSection ${Sec03}

PastSec03Check:
IfFileExists $File04 Sec04Exists PastSec04Check
Sec04Exists:
!insertmacro SelectSection ${Sec04}

PastSec04Check:
IfFileExists $File05 Sec05Exists PastSec05Check
Sec05Exists:
!insertmacro SelectSection ${Sec05}

PastSec05Check:
IfFileExists $File06 Sec06Exists PastSec06Check
Sec06Exists:
!insertmacro SelectSection ${Sec06}

PastSec06Check:
IfFileExists $File07 Sec07Exists PastSec07Check
Sec07Exists:
!insertmacro SelectSection ${Sec07}

PastSec07Check:
IfFileExists $File08 Sec08Exists PastSec08Check
Sec08Exists:
!insertmacro SelectSection ${Sec08}

PastSec08Check:
IfFileExists $File09 Sec09Exists PastSec09Check
Sec09Exists:
!insertmacro SelectSection ${Sec09}

PastSec09Check:
IfFileExists $File10 Sec10Exists PastSec10Check
Sec10Exists:
!insertmacro SelectSection ${Sec10}

PastSec10Check:
IfFileExists $File11 Sec11Exists PastSec11Check
Sec11Exists:
!insertmacro SelectSection ${Sec11}

PastSec11Check:
FunctionEnd

신고
오늘은 악성코드 잡느라 진땀뺐다..?

C:WINDOWSsystem32awvvu.dll

C:WINDOWSsystem32nnnonlk.dll

아주 잘 위장해서 들어갔다.

이거 뭐.. 아주 난감한 놈이다..

explorer.exe에 딱 붙어서 지가 레지스트리 확인해서 지워졌다 싶으면 다시 집어넣고..

레지스트리로도 안지워지고..

악성코드 여럿 봤지만 이놈들처럼 악질은 간만이다..

하지만, 역시 인터넷에는 나와 같은 고민을 가지고 있는 사람들이 있었으니..

explorer.exe를 강제 종료하고 Kill DLL까지!

http://www.naver.com 에서 vundo-fix로 검색해보면 여러가지가 나온다.

6.5버전으로 awvvu.dll을 잡아냈고.. 그 이전버전으로 nnnonlk.dll을 잡아냈다..

awvvu.dll 이놈은 원터치로 잡히지만, nnnonlk.dll 이놈은 수동으로 삭제해주어야 한다..

이놈들을 겪고나니, 한국의 악성코드들은 많지만 참 착하다고 생각된다..

요즘은 과자 찾기도 힘들다.. 뭔놈의 악성코드 치료해준다는 프로그램이 이렇게 많은지..

돈 내서 치료가 되면 돈을 주겠는데.. 돈 받고도 치료를 못한다..

그놈의 핸드폰결재.. -_-;;
신고
악성코드 제거프로그램(사실 이놈들이 악성코드다. 무슨 결재 -_-) 및 쓸데없는 프로그램(컴퓨터의 속도를 갉아먹는 미친프로그램들)의 위치

악성코드를 잡던가.. 돈만 받고 잡지는 않고.. 사기꾼들..

이지캐치(바이러스도 못잡으면서 돈만 밝히는..)

C:WINDOWSezcatch_uninstaller.exe

아프리카 플레이어(웹사이트 돌다보면 어디선가 설치되는 이상한놈)

C:Program FilesafreecaUninstall.exe

K-Defense 키보드보안(되기나 하는지 -_-)

regsvr32 /u /s "C:WINDOWSDownloaded Program Fileskdfense8.ocx"

nProtect KeyCrypt(겜좀 하다보면 깔린다.. 속도 잡아먹는 주범)

C:WINDOWSsystem32npkuninst.exe

nProtect Netizen(도대체 왜 두개나 까는지..)

C:WINDOWSsystem32npnuninst.exe

PCHealth(너때문에 건강이 더 나빠지고 있다..)
rundll32.exe setupapi.dll,InstallHinfSection DefaultUninstall 132 C:WINDOWSINFPCHealth.inf

Smart Update Utility(스마트하게 지능적으로 사람 열받게 만든다)
C:Program FilesInstallShield Installation Information{1424D162-C162-11D4-AE6E-00105A877C32}

SoftCamp Secure KeyStroke(아주 컴터 안에 캠프를 지어라)
C:WINDOWSsystem32UnSCSK.exe

네이버 툴바(이건 그래도 양호하긴 하지만.. 툴바를 깐다면 이거 하나만 깔듯)
C:WINDOWSsystem32NJUninst.exe /noalert

넥슨플러그(기본값이 처음시작할때 Silence모드가 기본으로 되어있기만 해도 안지운다)
"C:Documents and SettingsAll UsersApplication DataNexonNGMNGM.exe" -mode:uninstall -dll:platform.nx.com/NGM/Bin/NGMDll.dll -game:65538 -locale:KR

아이템베이 안전툴바(안전하게 좀 지워져라)
C:Program FilesItemBayIBBarIBBar_setup.exe -u

야후 툴바(아주 오래된 툴바..)
C:PROGRA~1Yahoo!Commonunyt.exe

한글인터넷주소도우미 라이트(한글인터넷주소를 쓴다면 놔두시길.. 본인은 안티 넷피아라서 꼭 지운다)
regsvr32 /u /s C:WINDOWSsystem32KoreanAdd.dll

한게임 보안패치(보안 보안 하면서 겁주지 마라..)
"C:Program FilessoftrunPortalOCPHangameunins000.exe"

Branding(이건 뭐하는 놈이고..?)
Rundll32 IedkCS32.dll,BrandCleanInstallStubs

OCPNCSOFT(어차피 너네 겜 안한다)
"C:Program FilessoftrunOCPGFOCPNCSOFTunins000.exe"

Branding
Rundll32 IedkCS32.dll,BrandCleanInstallStubs

eguSearch1.5
"C:Program FileseguSearchunins000.exe"

HotPort 1.0
C:WINDOWSsystem32unsethport.exe

MicroSide1.5
"C:Program FilesMicroSideunins000.exe"

OpenPro 삭제
C:WINDOWSsystem32UnInstall.exe

POWERLINK (추천링크) 삭제
C:Program Fileslinkageuninstall.exe

SearchFree
C:Program FilesSearchFreeUninstall.exe

SearchPop
C:Program FilesSPacksp_uninstall.exe

SearchURL
C:Program FilesSearchURLsu_uninstall.exe

SideLink
C:Program FilesSideLinksl_uninstall.exe

Windows bonuspack
C:Program Filesbonuspackuninst_bpack.exe

windows osearch toolbar
C:Program Filesosearchtoolbarosearchtoolbar_uinstaller.exe

Windows pointplus
C:Program Filespointplusuninstall.exe

Winicon
C:Program FilesWiniconwinicon.exe Unins

조이헌팅 메신저
"C:Program FilesANIJJoyhuntingJoyInstallJoyUninstall.exe" 5

TheRank Service
C:Program FilesNTherankuninstall.exe
신고
  1. 박훈정 2008.10.13 23:28 신고

    넥슨 플러그 지우려는데

    “C:Documents and SettingsAll UsersApplication DataNexonNGMNGM.exe” -mode:uninstall -dll:platform.nx.com/NGM/Bin/NGMDll.dll -game:65538 -locale:KR

    이게 무슨 뜻인지 잘 모르겠네요.

    그리고 넥슨 NGM(Nexon Game manager) 지우는 방법도 알려주세요.

  2. Digital Angel Master 2008.10.29 16:49 신고

    시작 -&gt; 실행에 복사 붙여넣기 하심 될겁니다..

+ Recent posts