OllyDBG_tut24

Posted: August 17, 2013 in OllyDBG_tut24
Tags:

Mưa to gió lớn chả biết làm gì, lại ngồi lọ mọ viết lách để giết thời gian. Lướt FB thì gặp quả status của lão xnohat quảng cáo kinh quá:“Sau 3 năm lặn mất tăm trên giang hồ mạng. Cao thủ Reverse & Cracking Kienmanowar đã quay lại với phần 23 của loạt Tut huyền thoại “Ollydbg Tutorials”. Mình giờ già rồi, mà có phải cao thủ đếch gì đâu. Các bạn trẻ bây giờ ngon hơn nhiều, mình lót dép ngồi học hỏi cho đỡ bị coi là lạc hậu.

Ở cuối bài 23, tôi có giới thiệu về một crackme có tên là Antisocial1.exe, mà theo bác Ricardo thì crackme này hội tụ đủ các tricks mà các bạn đã gặp trong các bài viết có liên quan đến Anti-Debug, cộng thêm một vài trick mới J. Phần 24 này sẽ dành thời gian để tìm hiểu về crackme này.

Download here: http://www32.zippyshare.com/v/5197497/file.html

Regards

m4n0w4r

 

 

Advertisements
Comments
  1. sinh says:

    anh gắng viết đầy đủ nhé ^^

  2. zizucongtu says:

    anh ơi cho em hỏi ngoài 1 chút, em muốn tìm cách tạo loader cho dll, liệu có khả thi không anh, vì theo em hiểu thì dll không tự run được, vậy em phải làm sao

  3. bambu_vn says:

    Thank anh nha, em đang xem tới tut 11 nhưng vẫn hóng tut mới nhất của anh!
    Rất cảm ơn anh về loạt tut!

  4. Mol says:

    Bác kienmanowar còn viết tut Ollydbg nữa ko ? 😀 Em vô tình đọc được tài liệu về cracking của bác, thấy hay quá 😀 Mong bác viết tiếp tut 25 😀

  5. kienmanowar says:

    Tôi sẽ cố gắng để tiếp tục viết tiếp các phần còn lại :). Rất cảm ơn các bạn đã quan tâm.

    Regards,

  6. Mol says:

    Mà bác cho em hỏi, mấy cái target đính kèm bác còn ko 🙂 nhiều tut em tải về mà ko có target, search google cũng ko có như target của tut 21, tên buggers3.exe của bác Ricardo @@

  7. kienmanowar says:

    Bạn download bộ này nhé: http://www27.zippyshare.com/v/85925575/file.html
    Có đủ target trong đó.

    Regards,

  8. Mol says:

    Cám ơn bác 😀 lúc nãy google, ghé vào trang chủ của bác Ricardo thì có thấy rồi @@ Ông ấy viết 58 tut, mong bác đủ sức dịch tới đấy 😀

  9. 3x3y3z3t says:

    Anh kienmanowar cho em hỏi:
    Em thấy, các file exe sau khi load vào Olly hình như chỉ chiếm một vùng nhất định trong bộ nhớ. Vậy thực tế là chúng luôn chiém một vùng cố định hay phụ thuộc vào kích thước của chương trình? Và kích thước vùng ấy có phụ thuộc vào kích thước file exe không?
    Với dòng code INC [crack+6FoB844], sau khi em sửa lại thành ADD [crack+6F0B844],0A thì chương trình tự động sửa thành ADD DWORD PTR [crack+6F0B844],0A ; nhưng đồng thời nó cũng tự sửa luôn dòng code dưới nó là MOV ECX;03 thành một số dòng NOP. Vậy em muốn hỏi lý do là tại sao.
    Và, cũng tương tự vấn đề trên thì, em có thể chèn một đoạn code vào giữa một đoạn code khác được không ạ? Và nếu được thì bằng cách nào ạ? (Em có nghĩ tới việc chèn bằng lệnh CALL, nhưng chỉ sợ bộ nhớ cấp cho chương trình không còn chỗ để viết thêm code.)
    Em xin cảm ơn anh ạ.

  10. kienmanowar says:

    Câu hỏi của em rộng, anh cũng ko rõ phải trả lời thế nào cho chuẩn :). Nôm na là các PE file trong Windows thường có địa chỉ base addr, còn được biết đến là image base (đĩnh nghĩa trong PE file header). Imagebase – Địa chỉ nạp được ưu tiên cho PE File. Lấy ví dụ : Nếu như giá trị trong trường này là 400000h, PE Loader sẽ cố gắng để nạp file vào trong không gian địa chỉ ảo mà bắt đầu tại 400000h. Từ “được ưu tiên” ở đây có nghĩa là PE Loader không thể nạp file tại địa chỉ đó nếu như có một module nào khác đã chiếm giữ vùng địa chỉ này. 99 % các trường hợp giá trị của ImageBase luôn là 400000h. Kích thước của PE file phụ thuộc vào các định nghĩa trong PE header, các size của các section … Để rõ hơn em có thể tìm đọc về các bài viết Process và Memory layout.

    Câu hỏi của em về lệnh inc hoặc add theo anh là do khác biệt về byte code giữa hai lệnh. Lệnh inc chỉ tốn 1 byte đối với thanh ghi 32bit, lệnh add thường tốn từ 2 byte trở lên. Do đó, nếu em patch trong Olly, khi byte code các lệnh khác nhau thì đương nhiên sẽ tự thay đổi ở lệnh ở dưới. Và khi em patch trong Olly, có tùy chọn fill with NOP’s, do đó nó sẽ fill thêm các byte nop vào.

    Regards,

  11. 3x3y3z3t says:

    Em cảm ơn anh về câu trả lời.
    Em còn muốn hỏi thêm anh vấn đề này nữa:
    Vẫn trong chương trình đó, em thấy có một khoảng từ 005146CE tới 00514FFE (line cuối cùng) thấy giá trị ở cột byte toàn 00 00 , code toàn là ADD [EAX],AL (EntryPoint là 00504807 55 PUSH EBP). Vạy anh cho em hỏi, ở khoảng 930 byte cuối toàn 00 ấy, em có thể viết thêm code vào chương trình không? Và có cách nào để mở rộng khoảng đó ra không?.
    Và như em đã ghi ở comment trước, em muốn chèn thêm một đoạn code khá dài vào giữa hai line trong phần thân chương trình (để tận dụng giá trị có sẵn trong các thanh ghi). Vậy em có thể patch một trong hai line bằng CALL, chuyển line đó vào trong hàm con, rồi RET về; hoặc dùng JMP để nhảy xuống dưới và nhảy ngược về, được không ạ?
    Em xin cảm ơn anh ạ.

  12. kienmanowar says:

    Hoàn toàn được em, do mình control thôi. Cơ bản có 3 phương pháp chính để có thể add code vào trong một file thực thi là :
    1. Thêm vào một section hiện tại khi có đủ chỗ cho đoạn code cần thêm.
    2. Mở rộng section hiện tại khi không đủ chỗ.
    3. Thêm một section mới hoàn toàn.

    Tóm lại, em tìm hiểu thêm về PE file và các bài liên quan Add code hoăc enlarge section là sẽ hiểu 🙂

    Regards,

  13. 3x3y3z3t says:

    Em cảm ơn anh.
    Bây giờ em muốn viết một đoạn code có tác dụng như sau:

    –các code bên trên đã thực thi
    bắt đầu đếm thời gian; hết 2 giây, ngừng đếm và thực thi code bên dưới
    [chuỗi code 1]
    chờ 0,5 giây
    [chuỗi code 2]
    –các code bên dưới không chịu ảnh hưởng của việc đến thời gian

    vậy đoạn đó em phải viết thêm làm sao ạ?
    Mấy ngày qua em có tìm kiếm rất nhiều chỗ trên google, và thu được rất nhiều kết quả nhưng em thử đều thấy không chạy được. Có một trang nói tới việc dùng INT 15 khi AH = 8300h, CX:DX lưu thời gian đếm. Nhưng như vậy thì những thanh ghi EAX, ECX với EDX bị vướng mất rồi. Mà em muốn trong khi đang đếm, khi chưa đếm xong, chương trình vẫn có thể thực hiện những công việc khác.
    Em xin cảm ơn anh ạ.

  14. Reno says:

    Chào anh, em rất hâm mộ loạt tut của anh nhưng không down được trọn vẹn cả bộ, rất mong anh re-up lại các bài cũ để em được tìm hiểu thêm ạ. Từ bài 22 trở xuống link đã hết hạn rồi không down được ạ.

  15. kienmanowar says:

    Bộ full anh đã đưa link ở trên rồi mà 🙂
    Em download tại đây nhé: http://www27.zippyshare.com/v/85925575/file.html

    Regards,

  16. Reno says:

    Em cảm ơn anh nhiều, hy vọng anh sẽ tiếp tục viết các phần tiếp theo của loạt bài này. Em cảm thấy khả năng tin học và kiến thức hiểu biết của em về cơ chế hoạt động của các phần mềm tăng lên rất đáng kể sau khi đọc 6 bài đầu của loạt tut của anh. Rất mong được học hỏi thêm nhiều kiến thức mới từ anh.

  17. kienmanowar says:

    @Reno: OK em :). Kiến thức về mảng này rất rộng, cái anh đang làm chỉ là truyền cảm hứng cho mọi người mà thôi 😀

    Regards,

  18. Vinh says:

    Dear anh Kiên,
    Anh có thể cho em xin facebook, skype or yahoo của anh được ko ạ?
    Em đang gặp bài toán quá quá khó.. Rất mong có thể được trao đổi trực tiếp với anh.

  19. Mol says:

    Ở tut này, phần giải quyết crackme bằng OllyDBG đã fix, tới đoạn process terminated, exit code C0000005 (-1073741819) thì bị terminated, giống như anh đã nói trong tut, nhưng khi xem trong cửa sổ Log thì nó như thế này: https://scontent-a.xx.fbcdn.net/hphotos-xpa1/t31.0-8/10523700_527635600669533_4094971214544766214_o.jpg
    Em tiếp tục làm theo tut, khi OEP dừng ở 00474988 55 push ebp, em cấu hình giống trong tut, nhưng khi F9 thì dừng lại, không dừng lại ở lệnh int 68 mà dừng lại tại lệnh fistp qword ptr ss:[esp], thanh status của OllyDBG báo lỗi Floating-point division by zero. Em tiếp tục search thì vẫn tìm được các lệnh int 68 và nop, nhưng khi run thì dính Access violation when reading như trong link ảnh.
    Vậy do em cấu hình chưa đúng hay là do máy ạ, em vọc tut này trên win xp sp3 32bit. Mong anh giải đáp thắc mắc này 🙂

  20. kienmanowar says:

    Hi Mol,

    Cái crackme trong tut 24 này theo anh đánh giá nó tà đạo quá :), đến anh lâu rồi giờ đọc lại cũng ù cả đầu :D.

    Môi trường anh thực hiện là XP SP2 nhé. Em thử bản Olly anh đã dùng để phân tích nó thử xem sao.

    Link: http://www45.zippyshare.com/v/98256208/file.html

    Regards,
    m4n0w4r

  21. Mol says:

    lỗi phát sinh thì ko những giống như trong tut mà nó còn cho thêm hai lỗi nữa @@ em chẳng biết làm thế nào luôn =]] cái này chắc do win cũng nên 😀 À bao giờ anh cho ra lò tut 25 đây, hóng mãi 😀

  22. Tung says:

    Em chào anh Kiên,
    Em đang học RCE, em đã đọc qua các tuts của anh về Olly và IDA (IDA anh viết ít quá 🙂 ), và giờ em muốn tiếp tục học RCE với tool chính là IDA thì nên học ở đâu ạ?
    Em đã down quyển The IDA Pro Book và Secret of Reverse Engineering, cơ mà cuối tháng này là ông sếp em yêu cầu biết sử dụng IDA để reverse với nhân ARM rồi, gấp quá gấp quá :((
    Anh chỉ cho em 1 con đường để em đi với, em cảm ơn anh nhiều!

  23. kienmanowar says:

    @Tung: Với IDA thì chỉ có cách duy nhất là tự đọc/tự học & tự luyện tập để nâng cao kĩ năng thôi em. Một khóa IDA cũng cỡ tầm trên 3000$ rồi (http://www.ccso.com/idatra/syllabus.htm).

    Regards,
    m4n0w4r

  24. Tung says:

    vâng, em đang luyện chỗ crackMe + reverseMe bằng IDA + Olly. Liệu em có thành được reverser không hay là may lắm lên đc cracker 😀 😀

  25. kienmanowar says:

    Một câu hỏi hay … cái này có thể tự ngộ nhận, như anh không nhận mình là reverser 😛

  26. Tung says:

    Anh khiêm tốn rồi 🙂
    Cho em xin anh 1 lời khuyên nữa thôi, em phải học tiếp như thế nào ạ? Em nên follow theo tutorials, ebook,.. hay cái gì bây giờ ạ? Em đã đọc hết tuts olly và ida của anh ạ.
    Em cảm ơn anh!

  27. kienmanowar says:

    Em kiếm các khóa học trên mạng như khóa này: http://www.cs.fsu.edu/~redwood/OffensiveComputerSecurity/

    Regards,

  28. phenolphenic says:

    Từ tuts 15 về trước em xem hết rồi. Luyện cũng căn bản. Rất bổ ích.
    Nhưng mà từ tuts 16 bác để font chữ tối quá. Không in đc.
    Mong bác Kien cho cái font như tuts 1 2 ấy. Em in cho tiện nghiên cứu.
    À mà mấy cửa sổ font olly chữ vàng nền đen. In không thấy code luôn. Bác chỉnh giúp sang đen trắng nha.

    Thank bác nhiều. Chúc bác và gia đình mạnh khỏe.
    Bác sẽ cho ra những tuts khác nữa nữa…..

  29. kienmanowar says:

    Giờ ngồi chỉnh lại tài liệu thú thực là vô cùng ngại 😀

  30. kotori says:

    anh cho em hỏi, cái phần seft modifying code ấy, tại sao debug trong olly thì bị dính exception còn chạy bình thường lại không sao?

  31. kienmanowar says:

    Chà cũng lâu quá rồi anh không nhớ rõ về cái crackme này 😦
    Khi em debug trong OllyDbg thì các exceptions được handle bởi debugger, còn khi chạy bình thường có thể bản thân tác giả của crackme đã code phần exception handler để đảm bảo nó chạy bình thường.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s