banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thủ thuật reverse engineering Các anh cho em hỏi hướng giải quyết cái này  XML
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 24/05/2012 16:28:16 (+0700) | #1 | 263945
mithacodon
Member

[Minus]    0    [Plus]
Joined: 25/04/2011 11:12:57
Messages: 2
Offline
[Profile] [PM]
Chào tất cả các anh chị em trong HVA,
Các anh chị cho em hỏi cái này. Em có 1 phần mềm khi sử dụng ExeInfo để xem thì thấy nó pack bằng (E8) Microsoft Visual C++ 9.0 - Visual Studio 2008, sử dụng PEiD thì ko xác định được, sử dụng PE_Detective thì thấy nó pack bằng Microsoft Visual C++ 8 vậy các anh cho em hỏi chương trình này pack bằng cái gì và xin các anh cho em hướng unpack cái chương trình này luôn. À em còn rất gà về crack nên mong các anh hướng dẫn đầy đủ và dễ hiểu giúp em. Em xin chân thành cảm ơn các anh chị đã đọc bài này!
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 24/05/2012 16:53:37 (+0700) | #2 | 263946
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Nên đọc cái này và đặt lại tiêu đề: /hvaonline/posts/list/13874.html
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 24/05/2012 18:11:05 (+0700) | #3 | 263950
[Avatar]
quygia128
Member

[Minus]    0    [Plus]
Joined: 15/07/2009 20:50:28
Messages: 119
Location: Somewhere
Offline
[Profile] [PM] [WWW]
Thiệt là không đỡ nổi. Không biết "Microsoft Visual C++ 8" là cái gì nữa mà đồi cr@ck với riết.

Nên học để hiểu 1 chút về HDH Windows, tìm hiểu các ngôn ngữ lập trình, các IDE dùng để code.

Phân biệt được thế nào gọi là pack, thế nào là compiler - Để biết làm sao để có được cái file thực thi (PE file) trước đã.

Pack là làm gì ? Unpack là gì ? tại sao phải làm như thế. 


Với nhiêu keyword đó mình nghĩ "tìm hiểu" cũng mất thời gian khá lâu rồi.

Chứ với lượng kiến thức thế này thì chỉ dẫn cái gì ?
.::Mới bắt đầu trên con đường dài::.
.::Super Newbiez::.
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 25/05/2012 13:17:59 (+0700) | #4 | 263986
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]

quygia128 wrote:
Chứ với lượng kiến thức thế này thì chỉ dẫn cái gì ? 

Chỉ cho cậu ấy mấy cái auto ấy :").
while(1){}
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 26/05/2012 08:01:39 (+0700) | #5 | 264030
[Avatar]
legend_star
Member

[Minus]    0    [Plus]
Joined: 21/07/2009 11:44:50
Messages: 23
Offline
[Profile] [PM]

mithacodon wrote:
Chào tất cả các anh chị em trong HVA,
Các anh chị cho em hỏi cái này. Em có 1 phần mềm khi sử dụng ExeInfo để xem thì thấy nó pack bằng (E8) Microsoft Visual C++ 9.0 - Visual Studio 2008, sử dụng PEiD thì ko xác định được, sử dụng PE_Detective thì thấy nó pack bằng Microsoft Visual C++ 8 vậy các anh cho em hỏi chương trình này pack bằng cái gì và xin các anh cho em hướng unpack cái chương trình này luôn. À em còn rất gà về crack nên mong các anh hướng dẫn đầy đủ và dễ hiểu giúp em. Em xin chân thành cảm ơn các anh chị đã đọc bài này! 


Cách giải quyết là.... không gì cả, phần mềm này không bị pack.
Chắc lần đầu mới làm quen nên mới nhầm lẫn như thế smilie Bạn cứ học hỏi từ từ, không biết nó là gì thì search "Microsoft Visual C++ 8" như lời bạn quygia128
Thân,
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 31/05/2012 15:30:52 (+0700) | #6 | 264351
[Avatar]
xwhitelight
Member

[Minus]    0    [Plus]
Joined: 03/02/2011 01:39:33
Messages: 63
Location: HVA & REA
Offline
[Profile] [PM]
Crack ko đòi hỏi một trình độ lập trình chuyên nghiệp, tuy nhiên ko biết một chút gì, đặc biệt lại là C++ nữa thì đừng hòng crack.
Life in God Mode
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 31/05/2012 17:11:47 (+0700) | #7 | 264355
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]

xwhitelight wrote:
Crack ko đòi hỏi một trình độ lập trình chuyên nghiệp, tuy nhiên ko biết một chút gì, đặc biệt lại là C++ nữa thì đừng hòng crack.  

^^! Cậu em nhầm đôi chổ rồi.

Thực ra đân RCE biết Assembly nhiều thì dễ nắm bắt các vấn đề hơn liên quan tới RCE hơn. Lập trình dĩ nhiên biết càng nhiều càng tốt nhưng nếu nói như em có đôi chổ chưa thoả đáng lắm, có nhiều cách phân biệt ngôn ngử lập trình dưới đây là cách phân biệt thông qua compiler và cách thực thi của nó.

1. Lập trình sử dụng framework (kết quả là file executable "không hoàn toàn", bản thân nó lệ thuộc vào framework, mọi quá trình tương tác tới các layer thâp hơn đều gián tiếp qua framewok).
+ Java
+ C#/VB.NET
2. Lập trình tạo ra executable binary (ứng dụng stand alone không phải dựa vào framework nào).
+ C/C++
+ Assembly
+ FreeBasic
+ Pascal
+ Delphi
3. Các ngôn ngử kịch bản (script language, chúng giống với framework nhưng không biên dịch mã nguồn hay đóng gói các data để tạo ra một file executable mà chúng là các file text và được thực thi thông qua một chương trình khác).
+ PHP
+ Python
+ Perl

Đấy chỉ là cách chia nôm na như thế nhưng mong rằng cậu em hiểu nó vì nói C++ là chưa đủ, mà phải nói là nhóm ngôn ngử tạo ra "executable thực sự" [2]. Nói thêm là RCE bản thân nó không chỉ giới hạn ở [2] tuỳ mục đích và yêu cầu nữa nhưng theo những gì em viết thì nó liên quan tới [2].

P/S: trong một số trường hợp thì compiler của hãng lại cho một kết quả khác nhau smilie, cái này cần có thời gian tìm hiểu nhiều. Phải nói là số lượng compiler nhiều hơn những ngôn ngử lập trình rất nhiều, lên wiki thảy lên "compiler list" rồi thoả sức mà khám & phá.
while(1){}
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 01/06/2012 15:10:09 (+0700) | #8 | 264407
[Avatar]
xwhitelight
Member

[Minus]    0    [Plus]
Joined: 03/02/2011 01:39:33
Messages: 63
Location: HVA & REA
Offline
[Profile] [PM]
@chiro: Ồ, thực ra những kiến thức anh đang nói đến em sẽ gọi là "cơ sở lập trình". Những kiến thức như vầy chưa đủ trở thành tin học chuyên nghiệp. Ý em nói tin học chuyên nghiệp là những thuật toán phức tạp. Còn crack thì chủ yếu là một số kỹ thuật như vầy:
- Unpacking.
- Dịch ngược chương trình (cái này cần đến cái "cơ sở lập trình") ^^
Từ những thứ đã dịch ngược được mới tìm cách để thoã mãn đề bài (tức đăng ký phần mềm). Những thuật toán chỉ được sử dụng khi code keygen. Đó là những thuật toán dò ngược, hoặc dò tìm thế nào đó để có serial. Những thuật toán này có lẽ không phức tạp như những thuật toán trong các đề thi tin học. smilie
Life in God Mode
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 01/06/2012 20:15:43 (+0700) | #9 | 264412
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]
Ấy em không hiểu ý anh rồi ! anh muốn nói về quá trình sinh mã nhị phân từ text code thông qua compiler. Em phải xác nhận với anh một điều là .NET sinh mã tương tác với framework trong khi G++ sinh mã binary là mã máy.

Còn chuyện em nói về thuật toán tạo keygen thì không hẳn người viết keygen cần phải lập trình để mô phỏng lại toàn bộ quá trình tạo key, mà họ có thể sử đoạn mã tạo key sẳn có để sinh key.

@xwl: cơ sở của lập trình là toán học, giải thuật và thuật toán em à.
Không thể nói tin học chuyên nghiệp là thuật toán phức tạp được, người ta luôn tìm cách chia một bài toán lớn thành nhiều phần đơn giản để giải.
while(1){}
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 01/06/2012 20:38:30 (+0700) | #10 | 264413
n2tforever
Member

[Minus]    0    [Plus]
Joined: 01/07/2011 15:39:51
Messages: 92
Offline
[Profile] [PM]

chiro8x wrote:

Còn chuyện em nói về thuật toán tạo keygen thì không hẳn người viết keygen cần phải lập trình để mô phỏng lại toàn bộ quá trình tạo key, mà họ có thể sử đoạn mã tạo key sẳn có để sinh key. 

cái này chỉ áp dụng với trường hợp nó sinh key rồi đem so sánh với chuỗi nhập vào thôi bác smilie em thấy phần lớn nó lấy chuỗi nhập vào đem tính toán rồi đưa ra quyết định nên mình không biết thuật toán của nó thì không làm ăn được.
ví dụ đơn giản nhất là nó lấy tổng mã ascii rồi so sánh với 1 hằng số chẳng hạn.
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 01/06/2012 21:28:17 (+0700) | #11 | 264415
[Avatar]
quygia128
Member

[Minus]    0    [Plus]
Joined: 15/07/2009 20:50:28
Messages: 119
Location: Somewhere
Offline
[Profile] [PM] [WWW]
Cracker thì ko cần biết lập trình ở mức chuyên nghiệp, vâng đây là cách suy nghĩ của những cracker tầm thường. Còn những cracker đẳng cấp lại hoàn toàn khác, họ là những tay coder chuyên nghiệp, ngoài cr@ck phần mềm họ còn code các tools để sử dụng, chia sẽ cho những cracker khác. Nếu chỉ biết sơ sơ về lập trình thì có làm được không ?

Việc keygen cũng không hề đơn giản mà tuỳ vào độ phức tạp của thuật toán mà chương trình sử dụng. Nếu cracker không hiểu nhiều về lập trình thì việc đọc code rất khó khăn, mà như vậy thì làm sao hiểu được thuật toán (lúc này cracker chỉ có thể fish or patch mà thôi).

Bác Chiro8x nói nghe có vẻ đơn giản quá hà. Lão có thể xem coi hiện tại có bao nhiêu Team có thể keygen nổi thằng Winrar mà lão đang dùng hàng ngày ấy.

Bởi vậy mới thấy nếu muốn đi theo con đường này thì cần phải học tập không ngừng smilie
.::Mới bắt đầu trên con đường dài::.
.::Super Newbiez::.
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 01:11:04 (+0700) | #12 | 264418
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]
Sao hôm nay nhiều người hiểu nhầm ý em thế nhỉ smilie. Em muốn nói với Xwl về mấy cái complier và quá trình sinh mã nhị phân ấy, cậu ấy nói phải biết C++ nhưng em muốn nói rằng ngoài C++ còn nhiều compiler sinh mã nhị phân khác. Việc RCE 1 file viết bằng .NET và C (sử dụng compiler GCC) sẽ khác nhau.

Còn về cái sự học thì em cũng chả dám bàn smilie.
while(1){}
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 04:52:50 (+0700) | #13 | 264421
n2tforever
Member

[Minus]    0    [Plus]
Joined: 01/07/2011 15:39:51
Messages: 92
Offline
[Profile] [PM]
cậu xwl theo ý em hiểu thì cậu ây bảo C++ hay C nó rất gần với asm nên cần học thôi smilie còn ý trên của bác em cũng công nhận
PS: hôm nay ngày nghỉ bác làm gì mà dậy sớm thế
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 05:07:45 (+0700) | #14 | 264422
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]

n2tforever wrote:
em thấy phần lớn nó lấy chuỗi nhập vào đem tính toán rồi đưa ra quyết định nên mình không biết thuật toán của nó thì không làm ăn được.  

Đoạn này thì bạn phải thừa nhận rằng dù sinh key rồi so sánh, hay nhập chuổi rồi tính toán thì trong đó đều chứa mã sinh key từ argument bạn đưa vào. Không nhất thiết phải viết lại nó bằng C hay ASM, nếu việc debug thuận lợi bạn có thể bê nó ra còn nhìn vào mã Assembly mà nói ra ngay thuật toán thì em phục thật. Chương trình sau khi viết đó là kết quả vận dụng của thuật toán, sau khi compiler thì nó kết quả của compiler. Ngoài thuật toán chúng ta đưa vào ban đầu thì còn có rất nhiều mã do compiler sinh ra. Chưa kể đến obfuscate ! mình chưa đủ tuổi nhìn vào mã assembly nói thuật toán đâu.

n2tforever wrote:
cậu xwl theo ý em hiểu thì cậu ây bảo C++ hay C nó rất gần với asm nên cần học thôi smilie còn ý trên của bác em cũng công nhận
PS: hôm nay ngày nghỉ bác làm gì mà dậy sớm thế  

Ưm ! tối nhậu xỉn xong ngủ sớm giờ thức dậy ngồi chơi game smilie.
while(1){}
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 11:18:13 (+0700) | #15 | 264434
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]

quygia128 wrote:
Bác Chiro8x nói nghe có vẻ đơn giản quá hà. Lão có thể xem coi hiện tại có bao nhiêu Team có thể keygen nổi thằng Winrar mà lão đang dùng hàng ngày ấy. 


Tớ không dùng những sãn phẩm như thế này bồ à ! tớ sử dụng 7zip, các sản phẩm tớ dùng phần lớn phân phối theo giấy phép của GNU.
while(1){}
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 12:08:50 (+0700) | #16 | 264435
idid231
Member

[Minus]    0    [Plus]
Joined: 03/06/2011 09:36:19
Messages: 32
Offline
[Profile] [PM]
Lâu mới thấy có topic thảo luận RCE...dù là lạc đề =,=
Em xin mạn phép không bàn về việc cracker có cần biết lập trình hay không.
Reverser mới là người cần đào tạo, thế mà các forum lại post tutorial về crack nhiều hơn là tut về virus (tạm gọi chung sâu, mèo què, vi rút là một) việc nghiên cứu 1 con virus cũng hay ho không kém gì crack, bởi nó gồm unpacking, decrypting, đương nhiên, về cơ bản là khó hơn crack. Những khoá học sử dụng debugger/disassembler, hay nghiên cứu virus đều phải trả phí chứ không public như crack. Các bác trong nghề giải thích giùm em tại sao lại có sự khác biệt này vậy?
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 14:09:40 (+0700) | #17 | 264440
[Avatar]
computerline
Member

[Minus]    0    [Plus]
Joined: 30/03/2007 13:46:50
Messages: 144
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!]

idid231 wrote:
Những khoá học sử dụng debugger/disassembler, hay nghiên cứu virus đều phải trả phí chứ không public như crack. Các bác trong nghề giải thích giùm em tại sao lại có sự khác biệt này vậy? 

Mình không làm về phân tích virus, cũng không làm RCE, nhưng theo như ý kiến riêng của mình thì:

Thứ nhất: Nói về công cụ, tất cả các công cụ dùng để Debug và Disassembler đều là các công cụ chuyên dụng và được thiết kế riêng cho một nhu cầu nào đó trong lĩnh vực RCE, vì vậy việc tìm hiểu và sử dụng công cụ thành thạo không thể chỉ là một sớm một chiều, cần phải đào sâu nghiên cứu, cũng như phải có thời gian luyện tập nhiều mới có thể sử dụng tốt được các công cụ này. Đặc biệt, một số công cụ có giá rất cao và không được public rộng rãi (như IDA chẳng hạn) thì không thể những người bình thường có thể tải về để sử dụng được.

Thứ hai: Việc phân tích Virus và hiểu được cơ chế cũng như cách thức hoạt động của nó, yêu cầu người làm việc phải có mức độ am hiểu và nghiên cứu về Coding, hệ thống, cơ chế hoạt động, cũng như các thành phần tương tác khác nhau của môi trường mà Virus lây lan, vì vậy việc phân tích virus khác xa với việc Cracking, việc Cracking chỉ là việc phá bỏ lớp bảo vệ của phần mềm, và điều hướng nó hoạt động theo ý của người Crack, trong khi RCE là việc hiểu được kiến trúc và kỹ thuật của chương trình. Những người này chắc chắn phải được đào tạo một cách bài bản, hoặc là tự đào tạo một cách có kỷ luật, thì mới có thể làm được.

Từ hai ý kiến trên, mình thấy là người làm về RCE đều phải được qua đào tạo, và phải là một chuyên gia trong lĩnh vực mà họ được đào tạo, vì vậy, không lý gì các kỹ thuật đó lại được public rộng rãi ra mà không có thu phí hết smilie
Không có nghề gì trong xã hội là thấp hèn cả - chỉ có nhân cách mới phân biệt thấp cao
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 15:05:37 (+0700) | #18 | 264442
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]

idid231 wrote:
Lâu mới thấy có topic thảo luận RCE...dù là lạc đề =,=
Em xin mạn phép không bàn về việc cracker có cần biết lập trình hay không.
Reverser mới là người cần đào tạo, thế mà các forum lại post tutorial về crack nhiều hơn là tut về virus (tạm gọi chung sâu, mèo què, vi rút là một) việc nghiên cứu 1 con virus cũng hay ho không kém gì crack, bởi nó gồm unpacking, decrypting, đương nhiên, về cơ bản là khó hơn crack. Những khoá học sử dụng debugger/disassembler, hay nghiên cứu virus đều phải trả phí chứ không public như crack. Các bác trong nghề giải thích giùm em tại sao lại có sự khác biệt này vậy? 

Không có sự khác biệt nào trong việc RCE virus hay ứng dụng, điều khác ở đây là virus thường được mã hoá và pack tuỳ theo từng người lập trình ra nó chọn lựa phương pháp mã hoá là gì (thường ít thấy ai viết virus mà dùng packer đã được biết nhiều cả). Để RCE virus thì phải hiểu virus là gì cái đã.
while(1){}
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 15:37:54 (+0700) | #19 | 264443
n2tforever
Member

[Minus]    0    [Plus]
Joined: 01/07/2011 15:39:51
Messages: 92
Offline
[Profile] [PM]

chiro8x wrote:
Đoạn này thì bạn phải thừa nhận rằng dù sinh key rồi so sánh, hay nhập chuổi rồi tính toán thì trong đó đều chứa mã sinh key từ argument bạn đưa vào. Không nhất thiết phải viết lại nó bằng C hay ASM, nếu việc debug thuận lợi bạn có thể bê nó ra còn nhìn vào mã Assembly mà nói ra ngay thuật toán thì em phục thật. Chương trình sau khi viết đó là kết quả vận dụng của thuật toán, sau khi compiler thì nó kết quả của compiler. Ngoài thuật toán chúng ta đưa vào ban đầu thì còn có rất nhiều mã do compiler sinh ra. Chưa kể đến obfuscate ! mình chưa đủ tuổi nhìn vào mã assembly nói thuật toán đâu.  

đoạn này quả thực vẫn chưa hiểu ý bác lắm. theo như cách bác trình bày thì là fishing serial nhưng nếu nó không sinh ra serial để mà so sánh thì bác làm sao mà tóm được nó? giả dụ nhập vào username và key, sau đó nó thực hiện:

x1=f1(username);
x2=f2(key);
x3=f3(x1,x2);
nếu f3==true =>OK
ngược lại => FAILED

như vậy nếu bác không RE xem các hàm f1,f2,f3 nó làm công việc gì thì làm sao đảo ngược lại để keygen được?
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 15:57:43 (+0700) | #20 | 264446
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]
x1 = f1(username)
x2 = f2(key)
x3 = f3(x1,x2)

Vậy f3 phải gọi 1 hàm f4 để thực hiện so sánh sau:

cmp f4(username), key

f4 làm nhiệm vụ key = f4(username).

Mình không nói là đảo ngược đâu smilie. Mà mình nói là bê cái function vào chương trình của cậu (có thể viết bằng Assembly hoặc viết chương trình exe tại vị trí hàm tạo keygen của bạn để lại thật nhiều null bytes, sau đó dùng ollydbg mang đoạn mã f1,f2,f3,f4 qua).
while(1){}
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 16:35:04 (+0700) | #21 | 264448
n2tforever
Member

[Minus]    0    [Plus]
Joined: 01/07/2011 15:39:51
Messages: 92
Offline
[Profile] [PM]
không ý em là f1 làm nhiệm vụ biến đổi username thành 1 giá trị x1, f2 biến đổi key nhập vào thành giá trị x2 sau đó mới dùng 1 hàm f3 để xác thực quan hệ giữa x1 và x2 xem có phù hợp không (trường hợp đơn giản nhất là x1 có bằng x2 không).
như vậy dựa vào quan hệ x1 phải bằng x2 bác có thể tận dụng hàm f1 để tính x1 từ đó suy ra được x2, nhưng vấn đề là tìm hàm f2' ngược của f2 để chuyển từ x2 thành key. nếu không biết cụ thể f2 nó làm gì thì làm sao tìm được f2' smilie
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 17:19:59 (+0700) | #22 | 264449
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Ủa, có gì mà phải cãi nhau dữ vậy ha. Bộ RCE chỉ để phân tích virus và cờ rắc phần mềm à ?
Đơn giản nè, trong open source hay close source, có nhiều cái tụi nó đóng kín như bưng ! Để tìm hiểu, làm sao nó làm được như vậy, các cậu phải có kiến thức RCE + lập trình. Để làm gì, phân tích, tái tạo lại source code ban đầu của nó, cho mày open source luôn đi, giấu làm gì !
RCE có ứng dựng rất rộng, hồi xưa tui đã nói: chỉ là một mãng nhỏ: dịch ngược source code, còn hardware, firmware... đủ thứ ware, softs thì sao ?
Còn cờ rắc, tui không bàn. Chỉ cần một vài cậu biết xài OllyDbg nhuần nhuyễn là cờ rắc được rồi. Chứ thực ra, hiểu quái gì thằng coder nó code đâu ?
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 18:35:30 (+0700) | #23 | 264453
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]

n2tforever wrote:
không ý em là f1 làm nhiệm vụ biến đổi username thành 1 giá trị x1, f2 biến đổi key nhập vào thành giá trị x2 sau đó mới dùng 1 hàm f3 để xác thực quan hệ giữa x1 và x2 xem có phù hợp không (trường hợp đơn giản nhất là x1 có bằng x2 không).
như vậy dựa vào quan hệ x1 phải bằng x2 bác có thể tận dụng hàm f1 để tính x1 từ đó suy ra được x2, nhưng vấn đề là tìm hàm f2' ngược của f2 để chuyển từ x2 thành key. nếu không biết cụ thể f2 nó làm gì thì làm sao tìm được f2' smilie 


Okay tớ hiểu ý cậu rồi ! nhưng bạn có nghĩ về việc f2 là hàm một cửa chưa ?.
while(1){}
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 02/06/2012 19:29:42 (+0700) | #24 | 264456
[Avatar]
xwhitelight
Member

[Minus]    0    [Plus]
Joined: 03/02/2011 01:39:33
Messages: 63
Location: HVA & REA
Offline
[Profile] [PM]

chiro8x wrote:

n2tforever wrote:
không ý em là f1 làm nhiệm vụ biến đổi username thành 1 giá trị x1, f2 biến đổi key nhập vào thành giá trị x2 sau đó mới dùng 1 hàm f3 để xác thực quan hệ giữa x1 và x2 xem có phù hợp không (trường hợp đơn giản nhất là x1 có bằng x2 không).
như vậy dựa vào quan hệ x1 phải bằng x2 bác có thể tận dụng hàm f1 để tính x1 từ đó suy ra được x2, nhưng vấn đề là tìm hàm f2' ngược của f2 để chuyển từ x2 thành key. nếu không biết cụ thể f2 nó làm gì thì làm sao tìm được f2' smilie 


Okay tớ hiểu ý cậu rồi ! nhưng bạn có nghĩ về việc f2 là hàm một cửa chưa ?. 

Trường hợp này chắc chắn phải patch, hoặc brute force!
Life in God Mode
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 03/06/2012 04:45:15 (+0700) | #25 | 264477
idid231
Member

[Minus]    0    [Plus]
Joined: 03/06/2011 09:36:19
Messages: 32
Offline
[Profile] [PM]

TQN wrote:
Để làm gì, phân tích, tái tạo lại source code ban đầu của nó, cho mày open source luôn đi, giấu làm gì !
 


Thế này là ăn cắp bản quyền hả bác? Mình RCE để xem code có gì hay rồi lắp qua phần mềm của mình, biến một close source thành open source smilie

TQN wrote:

Còn cờ rắc, tui không bàn. Chỉ cần một vài cậu biết xài OllyDbg nhuần nhuyễn là cờ rắc được rồi. Chứ thực ra, hiểu quái gì thằng coder nó code đâu ?
 


Em tưởng keygening thì phải biết thuật toán thằng coder nó viết mới keygen đc? Em nghĩ trong crack thì hiểu đc thuật toán là ok chứ thằng coder nó code gì quan tâm làm chi smilie
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 03/06/2012 05:38:34 (+0700) | #26 | 264479
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]

idid231 wrote:

TQN wrote:
Để làm gì, phân tích, tái tạo lại source code ban đầu của nó, cho mày open source luôn đi, giấu làm gì !
 


Thế này là ăn cắp bản quyền hả bác? Mình RCE để xem code có gì hay rồi lắp qua phần mềm của mình, biến một close source thành open source smilie

TQN wrote:

Còn cờ rắc, tui không bàn. Chỉ cần một vài cậu biết xài OllyDbg nhuần nhuyễn là cờ rắc được rồi. Chứ thực ra, hiểu quái gì thằng coder nó code đâu ?
 


Em tưởng keygening thì phải biết thuật toán thằng coder nó viết mới keygen đc? Em nghĩ trong crack thì hiểu đc thuật toán là ok chứ thằng coder nó code gì quan tâm làm chi smilie 


Con lạy thánh sống ! nhìn code được obfuscate sau khi mở bằng ollydbg ra thánh kể cho con các thuật toán mà nó dùng thì con lạy lia lịa.


"Mình RCE để xem code có gì hay rồi lắp qua phần mềm của mình, biến một close source thành open source" => Lắp thế nào đây bạn ?.
while(1){}
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 03/06/2012 15:05:33 (+0700) | #27 | 264518
n2tforever
Member

[Minus]    0    [Plus]
Joined: 01/07/2011 15:39:51
Messages: 92
Offline
[Profile] [PM]

chiro8x wrote:
Okay tớ hiểu ý cậu rồi ! nhưng bạn có nghĩ về việc f2 là hàm một cửa chưa ?. 

khi đăng kí thì mình cung cấp username cho thằng tác giả và nó đưa lại key cho mình mà. điều đó chứng tỏ có thể tìm key từ x2 do vậy f2 không thể là hàm hash được. em nghĩ vậy không biết đúng khong? smilie
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 03/06/2012 15:23:16 (+0700) | #28 | 264520
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]
Hì hì ! cái ý tưởng lúc đầu của bồ, tính tổng tất cả mã Ascii các kí tự trong chuổi của bồ là một hàm một cửa đấy smilie.
while(1){}
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 03/06/2012 19:09:26 (+0700) | #29 | 264542
[Avatar]
xwhitelight
Member

[Minus]    0    [Plus]
Joined: 03/02/2011 01:39:33
Messages: 63
Location: HVA & REA
Offline
[Profile] [PM]

chiro8x wrote:
Hì hì ! cái ý tưởng lúc đầu của bồ, tính tổng tất cả mã Ascii các kí tự trong chuổi của bồ là một hàm một cửa đấy smilie

Bạn í chỉ lấy nhầm ví dụ thui mà. smilie
Lúc này để cung cấp serial cho khách, công ty cần brute force. Nhưng chẳng ai dùng hàm này đâu.smilie
Life in God Mode
[Up] [Print Copy]
  [Question]   Các anh cho em hỏi hướng giải quyết cái này 03/06/2012 20:56:46 (+0700) | #30 | 264557
idid231
Member

[Minus]    0    [Plus]
Joined: 03/06/2011 09:36:19
Messages: 32
Offline
[Profile] [PM]

chiro8x wrote:

idid231 wrote:

TQN wrote:
Để làm gì, phân tích, tái tạo lại source code ban đầu của nó, cho mày open source luôn đi, giấu làm gì !
 


Thế này là ăn cắp bản quyền hả bác? Mình RCE để xem code có gì hay rồi lắp qua phần mềm của mình, biến một close source thành open source smilie

TQN wrote:

Còn cờ rắc, tui không bàn. Chỉ cần một vài cậu biết xài OllyDbg nhuần nhuyễn là cờ rắc được rồi. Chứ thực ra, hiểu quái gì thằng coder nó code đâu ?
 


Em tưởng keygening thì phải biết thuật toán thằng coder nó viết mới keygen đc? Em nghĩ trong crack thì hiểu đc thuật toán là ok chứ thằng coder nó code gì quan tâm làm chi smilie 


Con lạy thánh sống ! nhìn code được obfuscate sau khi mở bằng ollydbg ra thánh kể cho con các thuật toán mà nó dùng thì con lạy lia lịa.


"Mình RCE để xem code có gì hay rồi lắp qua phần mềm của mình, biến một close source thành open source" => Lắp thế nào đây bạn ?. 


Nói như bác thì em cũng thua, toàn bổ vào mặt người khác. Obfuscate thì có deofuscator, cũng có thể là không thể deofuscate đc, trường hợp này thì keygen theo kiểu RIP Code, hoặc k thể keygen, mà thế chả có gì hay ho để nói smilie

Theo như em hiểu ý của bác TQN là " tái tạo lại source code ban đầu của nó", tức là mình hiểu đc code của nó rồi, thấy cái đoạn function hay library nào hay thì đem qua ghép vô code của mình, bác hỏi "lắp thế nào" ý là sao? Em chưa hiểu.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|