posted by 블르샤이닝 2014. 10. 22. 18:23
728x90

http://sandsprite.com/CodeStuff/scdbg_manual/MANUAL_EN.html


쉘코드 분석 툴


PDF에서 JS 코드 쉘 실행코드 부분인것같은데 이걸로 쉽게 분석했따고 하니....좋은것같군요 기능도 많고 




VS_LIBEMU-master.zip



728x90

'리버싱 > ' 카테고리의 다른 글

SSDEEP - 해쉬 유사도 비교 툴  (0) 2015.09.04
한글 문서 분석할때 유용한 툴  (0) 2015.06.23
[Portable_OllySND.exe] 포터블 올리디버거  (0) 2014.04.24
64비트 올리디버거  (0) 2013.11.20
XueTr툴  (0) 2011.08.05
posted by 블르샤이닝 2014. 10. 22. 17:37
728x90
몰랐던 디버거 체크 트릭 부분.....오호?
CsrGetProcessId를 이요하여 탐지 

Other AntiDebug tricks

I came across this one individual’s page whom is an avid reverse engineer with some great material.

Check out his pdf cheat sheet on anti-debugging. There were a few in there I didn’t know about like the ‘csr’ trick which involves calling an undocumented ‘CsrGetProcessId’ function within OpenProcess. CsrGetProcessId is a native API that returns the PID of csrss.exe.

Evidently if you call OpenProcess and pass the ID returned by CsrGetProcessId(), no error will occur if the SeDebugPrivilege has been set with SetPrivilege() / AdjustTokenPrivileges(). How about some code with that shake?

#include <stdio.h>
#include <windows.h>
typedef HANDLE (*_CsrGetProcessId)();

int main(void)
{
HMODULE nt=GetModuleHandle("ntdll.dll");
_CsrGetProcessId CsrGetProcessId=(_CsrGetProcessId)GetProcAddress(nt,"CsrGetProcessId");
HANDLE proc = OpenProcess(PROCESS_ALL_ACCESS,FALSE,CsrGetProcessId());
if(!proc)
{
printf("debugger is present!");
}
}

The cheat sheet has other stuff in it. Check it out some time. Better yet, check out the guy’s bloginstead.

Happy cracking!

Tags: 


728x90
posted by 블르샤이닝 2014. 9. 2. 14:49
728x90

(칼럼)해킹 사례로 본 사회 시스템 피해



(칼럼)해킹 사례로 본 사회 시스템 피해.DOCX


728x90

'리버싱 > 칼럼' 카테고리의 다른 글

Packing 구조에 대한 이해 - 1부  (0) 2015.03.09
가상화 머신 탐지에 대한 칼럼  (0) 2014.12.01
(칼럼)윈도우 UAC 우회  (0) 2014.02.13
Java 취약점 분석  (0) 2013.12.02
매크로 바이러스 관련  (0) 2012.04.06
posted by 블르샤이닝 2014. 8. 29. 11:07
728x90

64비트 분석을 위해 ida 원격 디버깅 설정을 하면서 ida 6.5, 6.1크랙버젼에 없는 파일을 아는분을 통해 파일을 얻어 작업하게되었다. exe는 원격 가능하지만 dll은 차라리 windbg로 하는게 속편할듯...64비트 팩킹 어려운거 나오면 완전 골때릴듯;;;

지금 자료 두개중 exe는 win64_remotex64.exe는 ida 64비트 프로그램에서 64비트os에 원격 접속하기 위한 프로그램으로 포트 설정 및 네트워크 설정을 위한 파일로 보인다.(해보니 잘된다)



win64_remotex64.exe


두번째 pdf는 인터넷에서 검색하여 찾은것으로 구형자료이긴하지만 아직까지 그대로 참고해서 사용가능하였다.(보인이 이거 보고 따라해서 잘되는거 확인)

-출처 : 어셈러브 



IDA_Remote_Debugging.pdf


---------------------------------------------------------------------

아 그리고 리버싱하시는분들에게 좋은 팁하나 드리면 ida 6.5 크랙버젼 돌아다닙니다 ㅋㅋㅋ 구해서 하면 "-" 기능의 환상적인 맵뷰어를 느낄수 있습니다...물론 정품이좋겠죠 ㅎㅎ 정품은 6.6까지 쓰던데;;ㅠ 

참고로 6.6은 64비트 헥스레이 지원한다네요...후후후후후...갖고싶다+_+ ㅠ

------------------------------------------------------------------------------

가장 최근에 풀린게 IDA 6.6 입니다. 공개할순없지만 참고하셔서 구하시면됩니다 



728x90

'리버싱' 카테고리의 다른 글

RunAsInvoker 로 UAC 우회  (0) 2014.10.23
Other AntiDebug tricks  (0) 2014.10.22
마우스 포인트로 안티리버싱  (0) 2014.08.29
메모리에 올라온 데이터 리버싱할때  (0) 2014.07.18
yoda unpacking[1부]  (0) 2014.07.08
posted by 블르샤이닝 2014. 8. 29. 11:02
728x90

8월호 이스트 잡지에서 퍼온내용...다른내용은 대충 보면 알겠는데 이부분은 아직 생소한 부분이라 캡쳐 후 저장 

참고로 안티리버싱 찾기 가장 좋은방법은 코드가 돌다가 죽는부분을 찾아서 앞으로 코드를 역주행하면서 보는것이 제일 좋다. 하나의 편법 ㅋㅋ 


좋은내용은 항상 기록해 두는것이 좋은 습관입니다^^ 



728x90
posted by 블르샤이닝 2014. 7. 18. 12:01
728x90

뭐.....기본적으로 악성코드에서 많이 쓰는 부분중에 하나...CreateThread방식과 VirtualAlloc방식은 기본이라 할 수 있는 방법...그중에 VirtualAlloc에 메모리 할당해서 특정 바이너리 올리는 방법인데..음 뭐 아는 부분이지만 내용은 깔끔하게 잘만들어서 공유~ㅎ 나중에 교육용으로 참고해서 쓰면좋을듯

 

 

쉘코드 실행흐름 (1).docx

 

 

아참  출처는 모름. 걍 구글에서 api검색하다 나온거라 ㅎㅎ 작성자님 감사합니다^^

728x90
posted by 블르샤이닝 2014. 7. 8. 11:59
728x90

후후후후후..yoda....예전버젼이랑 조금은 다른 구조로 요즘 나온것으로 보인다. 즉 개조되서 나온것같은...기존 언팩 메뉴얼대로 했는데 전~~~혀 안된다.. 그래도 혹시 모르니 내가 해봤던 언팩 방법에 대해 설명들어간다. 해당 yoda 팩킹은 1.03.3 버젼 기준이다. 그리고 내가 시도헸던 부분에 대해서는 추가적으로 설명들어가겠다.....글이 너무 길어지는 관계로 1,2부로 나누겠다.


-해외 기존 yoda 언팩 동영상

http://uk.youtuberepeater.com/watch?v=C3DurbMYI-w&name=HOW+TO+Unpacking+yodas+Protector+1+03+3


고맙게도 외국 언팩 메뉴얼을 누가 한글화 해준것을 찾았다.

-----------------------------------------------------------------------------------------

참고 : http://h3x3ri.tistory.com/12

-----------------------------------------------------------------------------------

원문 링크 :

http://www.reversing.be/article.php?story=20060103202621966



다른 Pack 들의 MUP 는 그렇게 많던데...
아무리 뒤져도 한글 문서가 없어서...
조악한 실력으로나마 한글화(?) 해 봤다...


===============================================================================
yoda Protector 1.03.3 - Manual UnPacking(MUP).
===============================================================================

 

이 tutorial은 당신에게 yoda Protector 의 마지막 버전인 1.03.3 MUP 방법을 설명해 드릴 것 이고주요 yoda Protector문제들과 Debugger 실행 중 파일보호를 운영하는 방법에 집중 할 것입니다.

 

1. 소개

안녕하세요친구들그리고 새로운 MUP tutorial에 오신걸 환영합니다제가 말했듯이, yoda Protector 1.03.3은 yoda Protector의 마지막 버전이며 제작자는 더 이상 새로운 버전을 만들기 않기로 결정하였습니다하지만 그는 새로운 것을 계획하고 있죠전 벌써 1.03.2 베타버전의 MUP tutorial을 썼습니다새로운 버전의 tutorial 1.03.2 베타버전 tutorial 이랑 거의 똑같지만 Debugger 실행 중 파일보호를 운영하는 방법에 대한 설명이 없습니다.

이 tutorial은 당신에게 Anti-Debug를 쉽게 우회하고 통과하는 방법을 설명해 드릴 것입니다.

 

필요 도구들:

- OllyDbg 1.10
- LordPE
- ImpREC
- Windows XP
- CrackMe Link ( 
http://www.reversing.be/binaries/articles/20060103202404818.rar )

 

이 tutorial은 상세한 설명은 필요 없으므로 간단하게 하겠습니다프로그램 imports rebuilding은 매우 쉽죠. OEP 찾은 후의 마지막 단계입니다.

yoda Protector는 yoda’s Cryptor를 토대로 만들어졌습니다새로운 기술들이 버전에 따라 추가되죠기존 기법들은 PE header 삭제 (쓸모없죠), CRC 검사 (코드와 파일), IsDebuggerPresent 체크, API Redirect와 Import 정보 삭제 등이 있습니다이 기법들은 의 ExeStealth 버전 2.74 tutorial에 벌써 설명 되어있습니다. (ExeStealth는 그냥 yoda의 모조품입니다.)

 

새로운 추가기술들이 Olly를 종료시키고 윈도우XP를 멈추게 하죠.

 

그럼, Olly가 어떻게 죽는지 알려드리죠. protector는 여러 개의 API의 결합을 이용해서 모든 실행 중인 프로세스들의 PID번호를 구하죠그리고 나서 이미 실행된 프로세스들을 검색종료시킵니다. (우리의 경우에는 Ollydbg .)

Protector는 그 프로세스의 PID와 스스로의 PID를 비교한 다음서로의 PID가 틀리면 그 프로세스를 종료합니다 (.exeolly를 통해 실행됩니다).
 

두 번째 추가기술은 더 짜증나죠. Protector는 BlockInput API를 우선적으로 검사합니다 API는 입력장치들을 (마우스,키보드등등..) 막아버려서 사용자를 시스템에서 차단시켜버리죠그리고 나서 protector는 다른 검사들과 복호화를 시작하죠.

만약 검사중에 protector가 멈추거나 Olly가 발견되면 시스템은 사용자의 지시를 기다리게 되죠입력장치들이 모두 차단된 상태에서사용자는 컴퓨터를 재 시작하는 방법밖에는 없습니다모든 과정이 정상적으로 진행된다면 protectorBlockInput API 로 차단한 입력장치를 해제합니다정말 Smart한 기술이죠.

 

2. OEP 찾기

이제 MUP를 할 차례입니다. 'Crackme' Olly안에서 로드 하세요.

아래 그림과 같이 모든 Exception들은 무시하고,

> Exception 1. <

> Exception 2. <

  

[Debugging Option] – [Events] 탭의 "Break on new module (DLL)" 을 체크 하세요

> Break on new module (DLL) 체크. <

 

BlockInput API의 실행을 가로채기 위해서는 user32.dll의 로딩을 중단해야 합니다그리고 나서 User32.dll이 나타날 때 까지 F9를 ( Unknown Command를 만날 경우 Shift+F9 ) 누르세요.

> Unknown command. <


> User32.dll 로드. <


이제 "Break on new module (DLL)" 를 해제(Uncheck) 합니다. (더 이상 DLL 로드시 마다 멈출 필요가 없으므로..)

> Break on new module (DLL) 해제. <

 

여기서 BlockInput API를 수정하여 입력장치들을 사용 할 수 있도록 하는 것입니다.

[Ctrl + G] 를 눌러 ( 오른쪽 마우스 버튼 - [Go to] - [expression] 과 같음. ) "BlockInput"을 입력하세요그러면BlockInput API user32.dll에 도달합니다.:

> BlockInput API 로 이동. <


> BlockInput API. <

 

BlockInput API를 없애려면, RETN 4전까지 모든 code NOP 으로 채웁니다.:

> BlockInput API 수정1. <


> BlockInput API 수정 및 BP 걸기. <


77D98A75 C2 0400 RETN 4 <---- 여기에 Break Point를 겁니다!

 

우리는 방금 BlockInput API를 중단시켰습니다이제 Olly의 종료를 막을 차례죠여기에는 전과 비슷한간단한 해결책이 있습니다. yoda는 모든 프로세스들이 충돌 없이 실행되기 위해서 CreateToolhalp32Snapshot을 사용합니다하지만 스스로의 PID를 얻기 위해서는 GetCurrentProcessId를 사용하죠. yoda 자신을 시작한 프로세스가 스스로의 PID와 동일한 PID를 고유했는지를 확인하죠. (예를 들어 보호파일이 Debugger를 통해 시작됐나 안됐나). 만약 아니라면 protector는 그 프로세스를 종료시킵니다. Olly종료를 예방하기 위해서는:

- LordPE를 열고 OllyDbs.exe PID를 알아내세요. (제 것은 514입니다.)

> Lord PE  PID 확인. <

 

[Ctrl + G ]  ,  GetCurrentProcessId를 입력하고 OK를 클릭.

> GetCurrentProcessId API 입력. <

 

그러면 이제 이 API안에 있죠:

> GetCurrentProcessId API로 이동. <

 

 API는 보호파일의 PID를 Return 하지만 Olly PID를 Return 시키기 위해 변경합니다그러면 보호파일 해야 할 파일이 Olly일 것이라고 생각합니다:

> Olly  PID 로 해당 영역을 패치. <


> 패치 된 PID. <




이제 해야 할 것은 플러그인을 사용하여 Olly IsDebugerPresent 검색으로부터 숨기고

> Plug-in 에 따라 다를 수 있습니다. <

 

실행하는 것입니다. BlockInput API bp 에서 두 번 멈추어야 합니다.

> RETN 4 에서 2  Break 가 걸립니다. <

  

그리고 "Memory Map" (단축키 [Alt + M] )을 실행하신 다음메모리 bp를 첫번째 섹션(구역)에 엑세스 해 놓으시고,

첫 번째 섹션에 “Set memory breakpoint on access” 설정. <

 

실행하면(F9) OEP 에 도달 합니다.:

> OEP 도착. <


이제 Dump를 하고 IAT  Rebuilding 합니다. Dump 할 때는 OllyDump를 사용하심을 권장합니다 (Lord PE는 아이콘을 없앱니다그리고 IAT 를 다시 만드실 때는 ImpREC사용 하시구요.

> Dump. <

 

3. 후기

이게 다입니다. ^^ yoda 에 의해 보호되는 DLL을 Unpack 하기가 더욱더 쉬워졌습니다문법과 철자실수들은 양해를 해주세요.
이 tutorial에 많은 도움이 된 BIW팀에게 감사합니다그리고 Artem Crackmes.de에 있는 친구들에게 감사합니다.

제 다음 tutorial에서 봅시다새해 복 많이 받으세요~ :)

728x90

'리버싱' 카테고리의 다른 글

마우스 포인트로 안티리버싱  (0) 2014.08.29
메모리에 올라온 데이터 리버싱할때  (0) 2014.07.18
이번에 분석을 하면서 느낀점...  (1) 2014.04.30
[진행중]MPRESS unpacking  (0) 2014.04.26
vb 분석할때 방법  (0) 2014.04.21