Archive for November, 2014

OllyDbg_tut26

Posted: November 30, 2014 in OllyDbg_tut26
Tags:

Trong phần trước, tôi đã cùng các bạn tìm hiểu một số kiến thức tổng quan về packer, về layout của PE file sau khi bị pack, tóm lược các bước cơ bản khi thực thi một chương trình bị pack, và quan trọng nhất là chúng ta đã hiểu rõ hơn thuật ngữ OEP – là nơi dòng lệnh đầu tiên của file gốc được thực thi. Thông thường, 99% là OEP sẽ nằm ở section đầu tiên (đó là section .text (code), bên dưới PE header khi quan sát trong cửa sổ Memory map của OllyDBG), tuy nhiên vẫn có những trường hợp ngoại lệ là OEP không nằm tại section đầu tiên. Nhưng về bản chất thì cuối cùng OEP vẫn phải nằm đâu đó thuộc Executable Code Section, có tên là .text (Micro$oft) hoặc là CODE (Borland). Trong phần 26 này tôi sẽ giới thiệu tới các bạn một số phương pháp cơ bản, phổ biến, thường áp dụng khi tìm OEP.

N0w let’s g0……smile

Download here: https://mega.nz/#!7wNwmTwL!pKGhzlWCX4XHSxhwoEqQh262T1JmKaSA1x6H2l3YfhU

Regards,

m4n0w4r

Advertisements

Author: athre0z

REtypedef is an IDA PRO plugin that allows definition of custom substitutions for function names. It comes with a default ruleset providing substitutions for many common STL types. If you ever reversed software that makes heavy use of STL classes, you can probably figure out why you would need such a plugin.

Without REtypedef:

.text:0040142E ; =============== S U B R O U T I N E =======================================
.text:0040142E
.text:0040142E ; Attributes: thunk
.text:0040142E
.text:0040142E public: void __thiscall std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::swap(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) proc near
.text:0040142E
.text:0040142E _Right          = dword ptr  4
.text:0040142E
.text:0040142E                 jmp     std::basic_string<char,std::char_traits<char>,std::allocator<char>>::swap(std::basic_string<char,std::char_traits<char>,std::allocator<char>> &)
.text:0040142E public: void __thiscall std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::swap(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &) endp
.text:0040142E
.text:00401433
.text:00401433 ; =============== S U B R O U T I N E =======================================
.text:00401433
.text:00401433 ; Attributes: thunk
.text:00401433
.text:00401433 public: class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> & __thiscall std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::insert(unsigned int, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &) proc near
.text:00401433
.text:00401433 _Off            = dword ptr  4
.text:00401433 _Right          = dword ptr  8
.text:00401433
.text:00401433                 jmp     std::basic_string<char,std::char_traits<char>,std::allocator<char>>::insert(uint,std::basic_string<char,std::char_traits<char>,std::allocator<char>> const &)
.text:00401433 public: class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> & __thiscall std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::insert(unsigned int, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &) endp

With REtypedef:

.text:0040142E ; =============== S U B R O U T I N E =======================================
.text:0040142E
.text:0040142E ; Attributes: thunk
.text:0040142E
.text:0040142E public: void __thiscall std::string::swap(class std::string &) proc near
.text:0040142E
.text:0040142E _Right          = dword ptr  4
.text:0040142E
.text:0040142E                 jmp     std::string::swap(std::string &)
.text:0040142E public: void __thiscall std::string::swap(class std::string &) endp
.text:0040142E
.text:00401433
.text:00401433 ; =============== S U B R O U T I N E =======================================
.text:00401433
.text:00401433 ; Attributes: thunk
.text:00401433
.text:00401433 public: class std::string & __thiscall std::string::insert(unsigned int, class std::string const &) proc near
.text:00401433
.text:00401433 _Off            = dword ptr  4
.text:00401433 _Right          = dword ptr  8
.text:00401433
.text:00401433                 jmp     std::string::insert(uint,std::string const &)
.text:00401433 public: class std::string & __thiscall std::string::insert(unsigned int, class std::string const &) endp

Custom rules can be defined at “Options/Edit name substitutions…”.

Latest binary release (IDA 6.1 – 6.6 Windows): https://github.com/athre0z/REtypedef/releases/latest

Cao xứ bất thắng hàn

Posted: November 29, 2014 in Uncategorized

diepcothanh

“Trăng kia có tự bao giờ
Mà sao khi tỏ khi mờ trăng ơi
Nâng chén rượu lạt hỏi chơi
Thiên đình nơi ấy nay thời kỳ nao
Niên nhật ngày tháng năm nào?
Để tôi lướt gió bay vào cung trăng
Lầu son gác tía giăng giăng
Điện ngọc lạnh lẽo e rằng khó lên
Thôi thì đặt chén sang bên
Nhảy cùng với bóng cho quên chốn sầu

Trăng lên lấp lánh trên đầu
Xoay vòng một trục bắc cầu vào chơi
Thương nhau đã hết một đời
Thì không nên hận, nói lời đắng cay
Nhưng sao trăng xuống nơi này
Rồi tròn đúng lúc người say một mình
Buồn vui ly hợp sinh linh
Phải là quy luật một mình nhân gian?
Trăng cao cũng chẳng vẹn toàn
Khi tròn khi khuyết mơ màng hiển minh
Nguyện cho nhân thế hữu tình
Nhân thành quyến thuộc như bình rượu ngon
Trăng khuyết rồi lại trăng tròn
Nghìn dặm một ánh người còn thấy nhau.”

_ST_

[OllyDbg2] LabelArgs

Posted: November 14, 2014 in Uncategorized

Mr. eXoDia: port the LabelArgs plugin by High6 to OllyDbg2.

If you add a label like “setTls(int index, PVOID value)” to a function and analyse you will have more meaningful arguments (“int index” instead of “Arg1”).
Before:
labelargs_before

After:
labelargs_after

Download link:
https://bitbucket.org/mrexodia/labelargs/downloads

Regards,

ODG1.10_HardWareInfo Plugin

Posted: November 14, 2014 in Uncategorized

by ESSO_X
HW info

Download here:
https://tenlua.vn/download/0837e127e8036800/odg2hardwareinfov1-0-2-3at4re

Regards

OllyDBG_tut25

Posted: November 2, 2014 in OllyDBG_tut25
Tags:

Trong phần 24, tôi đã cùng các bạn phân tích một crackme rất dị có tên là Antisocial1.exe, crackme này hội tụ lung tung các tricks Anti-Debug, và hi vọng nó không làm các bạn bực mình. Kết thúc phần 24 cũng đồng thời là chủ đề về Anti-Debug xin được dừng lại để dành đất cho các chủ đề khác. Kể từ phần 25 này và các phần tới đây (nếu tôi không bận ) chúng ta sẽ dành thời gian để tìm hiểu về Unpacking.

‘Packer’ được xem như là một chương trình nén, được sử dụng để nén một file thực thi (executable file). Các chương trình này ra đời bắt nguồn từ mục đích muốn làm giảm kích thước của file, làm cho việc tải file nhanh hơn, tương tự các trình nén file như WinZip/Winrar. Tuy nhiên, bên cạnh việc nén, các trình packer cũng thường che dấu file gốc (original file) và gây nhiều khó khăn trong việc phân tích một file đã bị packed.

Rất nhiều các coder hay các hãng phần mềm sử dụng packer nhằm mục đích khiến các tay cracker/reverser phải khó khăn hơn và tốn thời gian hơn trong việc crack hoặc reverse phần mềm của họ. Đối với những kẻ chuyên phát tán các phần mềm độc hại (malicious software) thì còn một mục đích nữa là kéo dài thời gian tồn tại của phần mềm càng lâu bị phát hiện càng tốt . Theo thời gian, các trình packers ngày càng trở nên phức tạp hơn, kéo theo đó là việc có rất nhiều thủ thuật nâng cao nhằm để bảo vệ chương trình. Phần 25 này tôi sẽ giới thiệu tới các bạn một số kiến thức cơ bản, là tiền đề tiếp nối cho các phần tiếp theo.

Download link:
http://tenlua.vn/download/0837e12ae90b680e/ollydbgtut25

Regards,
m4n0w4r


source: http://bbs.pediy.com
Supported versions 6.3 / 6.5 / 6.6

6.3 6.5 6.6 are tested, you can not back up, support change back to capital, then changed back to MD5 and source files are the same.

6.3 and earlier versions do not support the ARMv8 instruction set.

Other versions of the backup before try and try again, trouble Province, I know you are lazy.

To modify a file in IDA 6.X \ procs \ arm.w32 and arm64.w64

arm.w32 6.5 / 6.6 source files can not seem to put, sue me for the user to compile the province, it is written in a kind of signature positioning, to put the annex, the code is not tucao me. .

Simple posted about finishing off the information to facilitate thought you modify:
ida6.x ARMv1-ARMv8:

suffix:

Signed: 0x85D6 mov byte [esi],’S’ C6 06 53 46 8D

Byte: 0x8613 mov byte [esi],’B’ C6 06 42 46 8D

Half: 0x8651 mov byte [esi],’H’ C6 06 48 46 8D

thumb2->Wide: mov byte [esi],’W’ C6 06 57 46 8D
thumb2->Narrow: (hidden)

LE/BE: “LEBE”
Length: 8

ARMv8: “FMINNMVFMINV”
Length: 2884

ARMv1 — ARMv7: “VZIPVUZP”
Length: 3100

Register : “VFNFZFCF”
Length: 624

Bxx: “EQNECSCCMIPLVSVCHILSGELTGTALNV”
“NVALGTLTGELSHIVCVSPLMICCCSNEEQ”

LDMxx:
STMxx:
“EDFDEAFADADBIAIB”

Original:
upper case

Lower case:

Download here:
ida6.x_arm_disassemble.rar
http://www11.zippyshare.com/v/25398838/file.html

Regards,
m4n0w4r