OllyDBG_tut19!!

Posted: January 8, 2010 in OllyDbg Tutorials, OllyDbg_tut19
Tags:

I. Giới thiệu chung

Chào các bạn, trải qua 18 bài viết từ cơ bản về OllyDbg, các thanh ghi và các lệnh Asm thường dùng cho đến các cách đặt Breakpoint, cũng như phương pháp tổng quan trong việc tiếp cận và giải quyết vấn đề, tôi hi vọng các bạn đã phần nào tự mình tích lũy được những kiến thức nền tảng cơ bản nhất để chuyển tiếp sang những kiến thức mới hơn. Sang phần 19 này chúng ta sẽ đi vào một chủ đề mới, đó là : Detect OllyDbg – IsDebuggerPresent. Theo tên của chủ đề thì bài này sẽ tập trung vào giới thiệu và giải thích việc crackme/chương trình sử dụng các cách thức khác nhau nhằm phát hiện ra nó đang bị debug bởi một Debugger nào đó, mà cụ thể ở đây là OllyDbg. Thông qua việc tìm hiểu này, chúng ta sẽ áp dụng những biện pháp/kĩ thuật từ manual cho tới sử dụng plugin để vượt qua sự kiểm tra đó, giúp cho OllyDbg có thể tiếp tục debug được chương trình mà không bị Terminate.

Bài 19 này tập trung vào cách thức phát hiện OllyDbg phổ biến nhất, đó là sử dụng API: IsDebuggerPresent và phương pháp để bypass. Ta sẽ thực hành với crackme được attach cùng với bài viết này…N0w let’s g0……:)

Advertisements
Comments
  1. kienmanowar says:

    Vài ngày nữa sẽ có link download, đăng tạm lên cái đã ^^

  2. kakalala says:

    Pác phát minh ra trò mới nữa à ? đã vậy pác link lun cho rùi.

    Kái này tui mết lắm à nha pác kien, chờ pác show cái crackme ra cạp thử xem sao.

    Tui định vay jan hồ mua PC học crack của pác cho hoàn thiện sau đó tìm bóp cổ pác kái vụ chờ mấy ngày sau mới up tut19.

  3. kienmanowar says:

    Đôi khi chờ đợi cũng là một nghệ thuật :). Kiểu như ngồi chờ M$ ra bản SP cho Windows 😀

    Regards

  4. kienmanowar says:

    OK phần 19 đã xong!
    Link download tại đây:
    http://www.4shared.com/file/191257326/bb4acbe0/OllyDbg_tut19.html

    Best Regards
    m4n0w4r

  5. kakalala says:

    Thank pác kien, vậy là không uổn công pác nhé. tôi thành công khi extract tut19.

    Lúc mày muốn hun pác 1 kái quá đi à.

    Để cạp thử tut19 này xem có vô không (tôi dự định mình chỉ cần patch thôi là mừng rồi, nhưng kái đà này chắc hôm nào rủ pác đi làm vài ve để cho pác hưng phấn viết tiếp).

    Chúc pác trẻ -> khỏe

  6. thanhdat33 says:

    chao ban kien,chao moi nguoi ! minh rat cam on ban da viet tut hay va de minh doc duoc ,hieu duoc ve chuong trinh olly va crack . Minh co mot phan mem ma khong biet no lock kieu j ma load vao olly cung nhu washsam… lai khong bao code,chay mot manh den khi dang ki thi chi hien cac ham cua win con code cua no dau tiet
    link :http://www.mediafire.com/?yyzdznahtcz ,co j cac ban gui hoi am cho minh theo hom thu badcrakers13@gmail.com
    Thaks all !

  7. thanhdat33 says:

    Minh co mot suy nghi nhu the nay ,ban viet ve olly rat co ban rat hay ,dat bp , phuong phap stack … .Con mang nay minh tim kiem ma van chua co tai lieu nhieu .Do la viec phan tich cac dang xay dung ma khoa cua cac phan mem thuong dung, tu do co the phan dang keygen cho cac phan nay ,cac cracker co the de rang du doan thuat toan voi dang sorfkey

  8. darkherovn says:

    Mật khẩu cái tut 19 này là gì anh

  9. kienmanowar says:

    @thanhdat33:
    _Chương trình của bạn tôi không có thời gian check.
    _Sức người có hạn, ko thể ôm dồm nhiều thứ quá. Soft + thuật toán là vô vàn. Theo lối mòn có, customize có..v..v.. đủ loại. Cho nên để thống kê thì một người làm ko đủ. Vì thời gian đâu mà ngồi crack/re rồi phân loại 😀

    @darkherovn: Như anh đã nói ở bài 18, phải tìm được real serial của cái Crackme2 attach trong bài 18 mới unlock được. Chúc em may mắn. Anh cũng như em thôi, để xem được tut19 của lão ricardo anh cũng phải giải bài tập!!

    Best Regards
    m4n0w4r

  10. Vigo says:

    Chào anh Kiên. Em thấy cái CRACKME có 1 bug nhỏ là nếu chuỗi nhập vào khác với password thật chỉ 1 ký tự thì vẫn OK => nhập password là1 ký tự bất kỳ hoặc 1 phần của password thật (từ trái qua phải) vào là được. 😀
    Em đã extract được tut rồi, tut rất hay. Thanks anh nhiều, mong tut tiếp theo của anh.

  11. Vigo says:

    Sorry anh, em post nhầm. Ý em là cái CRACKME2 của tut 18 dùng để unlock tut 19. Hix

  12. kienmanowar says:

    🙂 Anh biết là em nói tới cái crackme nào mà, đâu cần phải đính chính. Cái crackme đó có bug (bug là chuyện bình thường của coder), nhưng cái pass chuẩn em đã tìm ra được là tốt rồi.

    Regards

  13. thanhdat33 says:

    -chao ban Kien ! Cai crack me cua ban minh cho code la so 1 thi crackme cho la key dung nhung khi unpack thi lai wrongkey ..the la the nao nhi
    – van de thu hai minh thac mac la voi may tinh cua minh tyhi khi bp translate. thi minh nhap key laf so 1 thi no laij hien o trong cua so dump la a va 2 la b .. vay can cau hinh olly nhu the nao thi duoc nhu cua cau.ben stack vung khong hien key = 1 ma la key = V_…
    – Van de thu ba la ba la phan mem minh hoi cau gio toi da tim mot phuong an giai quyet kha hay ,lam mot luc hai ba phan mem kieu nhu vay: ta cu nhap fk vao o roi dung phuong phap stack tim den ham call minh dung chuong trinh tai do ,quay len cua so rigester den ECX follow dump tim trong do se co key chuan ,qua tham hiem phan mem thay no viet bang VBC 6++ ,tray load thi khong hien code cua chuong trinh ,chi hien ham cua win

  14. kienmanowar says:

    @thanhdat33:
    1. Valid serial để extract phần 19 là một chuỗi có nghĩa chứ không phải là một kí tự bâng quơ nào đó đâu. Crackme đó có bug 🙂 .. cái tôi cần là chuỗi Serial chuẩn để unlock. Mà việc tìm ra nó rất dễ dàng 😀

    2. Không hiểu Olly của bạn thế nào, chứ tôi dùng Olly nguyên bản không mod vẫn hoạt động bình thường.

    Regards

  15. Chimung says:

    A kien oi! E tìm thấy key của crackme2 la RIDE nhưng sao e dùng nó để mở tut 19 lai ko dc .a jup e cai .thanks

  16. kienmanowar says:

    @Chimung : Key của em chưa đủ kí tự đâu em :). Cố gắng lên, sắp ra rồi đấy.

  17. chimung says:

    em sẽ thử lại xem sao.ah e ko biet a co tut olly cua rongchaua ko nhi.may hum nay e tim nhung ko thay. neu co a co the up len de moi nguoi hoc tap thi tot qua .thanhks

  18. kienmanowar says:

    Tut Olly của lão Rồng già hả, chắc là anh còn giữ. Lão rồng viết hai phần, để tối về anh lục lại đống CD cũ xem còn không.

  19. Chimung says:

    The nao roi a . E van dang cho a up len day .ah ,hum tr e doc tut 21 thi e nghi a viet nham . O trang 15 , theo e ko phai la ” patch lệnh jnz thành jmp ” ma la lệnh nop hay dai loai nhu the.a thu xem lai nhe.nhan tien a cho e hoi luon , khi nao a cho ra tut 13 vay a ! Thanks

  20. Chimung says:

    E nham , tut 23 a nhe

  21. kienmanowar says:

    @Chimung: Chịu khó sử dụng bộ gõ tiếng Việt đi em :D.

    Tut23 hay các tut tiếp theo nữa anh sẽ cố gắng dành thời gian để tiếp tục, hiện tại ra tết đang muốn thay đổi nhiều thứ nên chưa có thời gian.

    Anh đã lục lại đống CD và tìm được 2 bài viết của lão Rồng già từ năm 2004 :). Link download : http://www.mediafire.com/download.php?mmwmumnuzmn

    Regards
    m4n0w4r

  22. chimung says:

    thanhks a nha. em sẽ dùng font tiến việt. a đã xem lại tut 21 chưa!!!

  23. Chimung says:

    A cho em hỏi .nếu em có câu lệnh sau: imul eax,esi,7f39f .e chỉ biết eax = 1050ba6 .vậy giá trị của esi bằng bao nhiêu thì e có eax như trên sau khi thực hiện phép toán. E đã dùng phép idiv, div rồi nhưng ko dc.a chỉ giúp e với

  24. kienmanowar says:

    Em có thể đọc lại tut5 của anh, anh có nói về lệnh imul. Với ví dụ của em thì có thể thấy là giá trị của ESI sẽ được đem nhân với hằng số là 0x7F39F. Kết quả được bao nhiêu thì lưu lại vào thanh ghi EAX. Nhưng do khi nhân sẽ là một con số với kết quả vượt quá khả năng lưu của một thanh ghi 32 bit, cho nên EAX sẽ chỉ lưu kết quả của 32 bit thấp tức là 8 con số cuối ở giá trị hexa mà thôi. Do vậy em sử dụng lệnh chia như trên sẽ không tìm ra được kết quả.

    Nếu không có giá trị của ESI thì làm sao em có được giá trị của EAX nhỉ 🙂

    Regards
    m4n0w4r

  25. Chimung says:

    Giá trị của thanh eax chứa kết quả sau khi thực hiện phép tính .và giá trị kết quả sau khi tính ở đây là 1050ba6 .e muốn tính ngược trở lại để tìm ra giá trị esi cần có (giá trị esi để sau khi thực hiện phép tính e sẽ có kết quả là eax = 1050ba6).a hiểu ý e nói chứ! Nếu có thể ,a ghi hộ e luôn đáp số

  26. khoa says:

    anh kien có thể bẻ khóa đc cái này ko ạ http://sycamoresol.org/sidekick/UnlockYourSidekick-Consumer.exe

  27. Nguyễn Thành An says:

    Nhờ các Bác cho em biết password giải nén của OllyDBG_tut19.
    Cảm ơn nhiều lắm. Chúc các Bác sức khỏe.

  28. kienmanowar says:

    @Nguyễn Thành An : Anh nghĩ việc tìm ra pass để unlock phần 19 không phải là quá khó, em chịu khó trace code sẽ tìm ra được thôi 🙂

    Regards

  29. nguyenvu says:

    Xin chào mọi người!
    Chào A.Kiên, thực sự mình không biết anh là ai nữa, nhưng rất cám ơn anh về loạt bài viết về Olly, đã hơn 2 tháng tìm hiểu từ con số 0 ( vì mình ko phải dân IT, mà mê khám phá lắm!) nay mình đã tìm được pass để bypass qua tut 19 của anh, xem ra cũng không phí 2 tháng và tâm sức của anh. Thanks again!
    Mong anh sớm có tut mới cũng như cập nhật các tips.. cho mọi người tìm hiểu tiếp! Chúc anh và các bạn sức khỏe!

  30. kienmanowar says:

    @nguyenvu: Rất mừng là có những người chịu khó mò mẫm như bạn. Chúc bạn có thêm nhiều bước tiến mới 🙂

    Best Regards

  31. nguyenvu says:

    Dear A Kiên,
    Anh cho em h?i 2 câu:
    —————————————————-
    1. TẠi sao có 1 số soft sau khi patch- save selection thì nó
    lỗi báo lỗi là: “Unable to locate data in executable file!” vậy?
    2. Khi vào mục cửa sổ [w] để set bp on winproc chẳng hạn
    như WM_LBUTTONUP(202) thì hiện ra 1 bảng “unable to
    read memory of debugger process…” hay FOLLOW
    CLASSPROC hiện ra 1 bảng empty.
    —————————————————
    Trong trường hợp trên thì xử lý như thế nào?
    Thank anh nhiều!

  32. kienmanowar says:

    @nguyenvu: Trả lời cho câu 1 của em, em có thể tìm đọc ở đây nhé (trong này nhiều trùm hơn anh lolz 🙂 ) : http://www.woodmann.com/forum/showthread.php?9222-Unable-To-Locate-Data-In-Executable-File

    Regards

  33. nguyenvu says:

    Thực ra trước khi hỏi em cũng hỏi google mấy giờ rồi, và cũng đã vào link của woodmann, đọc 1 hồi cũng hiểu ý của họ muốn nói gì, nhưng mà người nước ngoài thông minh hơn hay sao đó, nói ý, tứ ko hà không có tận tình như VN mình! Cuối cùng dùng winhex sửa thử, sửa được nhưng sao chạy gặp vấn đề hoài! Mệt quá…
    1 lời nữa: sao mỗi lần gặp mấy cái soft có pack là thấy chùm chân, kỳ thiệt… anh có mẹo nào giúp em vượt rào ko? Hổm giờ cũng crack được mấy soft mình cần dùng nên cũng khoái chí lắm! dù hành vi ko đc tốt mấy ! hehe

  34. kienmanowar says:

    @nguyenvu: Anh chẳng có mẹo nào cả :), gặp soft bị pack thì tuỳ tình hình mà xứ lý thôi :
    – Trước tiên phải có kiến thức cơ bản về PE file, các bước cơ bản để thực hiện unpack.
    – Nếu soft bị pack bằng các trình Packer thông dụng như Upx, Aspack v..v.. thì có thể dùng các công cụ có sẵn.
    – Nếu soft bị pack bằng các packer mà mình chưa biết thì lúc đó :
    a. Google thông tin và tìm kiếm các tips/tricks; script liên quan.
    b. Không có thì tự mày mò MUP

    Regards

  35. vc says:

    cho minh xin pass cua tut 19.
    Thanks!

  36. nguyenvu says:

    Dear anh Kien,
    Em đang thực hành trên 1 soft thấy có 1 số vướng mắc mong anh chỉ giúp:
    1. Khi tiến hành pass qua từng lệnh bằng F8 để ktra thì chương trình nó xuất hiện 1 nag- do ktra các thiết bị như dongle, nhưng sao cũng chương trình đó mà em sử dụng bp và pass bằng F9 thì không thấy xuất hiện nag ở trên. (em đang nghĩ đến việc chương trình nó đếm thời gian dừng, ko biết có đúng không?)
    2. Không hiểu sao mà olly hay bị “đứng” khi load soft này, phải tắt máy mới được (đôi khi không bị)
    3. Còn thay đổi thuộc tính visible của menu thì làm sao anh ha?
    Mong anh và các bạn chỉ giúp!

  37. NGUYENVU says:

    Dear A.Kien,
    A oi, còn 1 thắc mắc nữa, khi load soft vào olly, soft ko bị pack, mà có những dòng xuất hiện DB 68… khi roll chuot qua vị trí đó thì lại xuất hiện dòng lệnh bình thường! quay lên thì lại xuất hiện DB xx như cũ vậy! Có cách nào hiệu chỉnh cách xuất hiện cũng như sửa code khu vực này không?
    Mong tin anh!

  38. hi says:

    Chuc Moi nguoi vui ve trong mot ngay dep troi!

  39. kienmanowar says:

    @NguyenVu: Em thử chuột phải lên đoạn DB 68 đó, sau đó chọn Analysis > Remove analysis from selection xem thế nào. Nếu thành công thì sẽ là lệnh PUSH 0.

    Còn về vấn đề liên quan đến các thiết bị dongle thì anh ko có kinh nghiệm với loại này :D, khả năng có cơ chế Anti-Olly nên Olly của em mới bị đứng.

    Thuộc tính visible của menu là sao?? Anh ko hiểu ý em là gì.

    Regards

  40. kienmanowar says:

    @vc: Việc tìm pass của Tut_19 không khó, bạn vui lòng xem lại các comment ở trên nhé!

    Regards

  41. nguyenvu says:

    Dear A.kien va cac ban,
    Vì phần mềm có cơ chế phát hiện lỗi và ứng với những type lỗi đó sẽ visible thuộc tính của menu (ẩn menu), nên em muốn cho hiện những menu ẩn đó lên để sử dụng đó mà!
    Chúc mọi người sức khỏe!

  42. baby says:

    moi ng` co’ the cho em 1 goi y nao dc ko. tut 19 em thu moi cach nhung ko the nao mo ra dc key cua no. mo` hoai` ma no cu ra gia tri ” 1*” hoac la “|W@G” hizz.

  43. baby says:

    sao ko ai giúp vậy. ai nói cho mình biết mình đã sai chỗ nào ko

  44. NtNk says:

    Cuối cùng tui cũng tìm ra, sau gần 1 tháng mài mò, hi vọng để rồi thất vọng, đúng là mê cái j ko mê đi mê cái này.

  45. kienmanowar says:

    @NtNK: Cheers 🙂

    Regards

  46. nguyenvu says:

    Dear A.Kien,
    Lâu quá không về thăm “nhà”, nay ghé qua hỏi thăm anh 1 tí.
    Em có cái soft “TextCrypt.exe” ver 2.0 định “uốn” thử nhưng không được,
    xem thử thông tin file thấy “Basic code data in overlay ( stub not packed )”, mừng quá trời, vì không bị pack.
    Khi hiện thông tin đăng ký thì nút “Register” thuộc tính enable=false, em có đọc tut của anh, có 1 ví dụ tương tự tực hành OK, nhưng mà soft này thì mần hoài không được, xin anh chỉ giúp!

  47. hjc says:

    @Nguyễn Thành An : Anh nghĩ việc tìm ra pass để unlock phần 19 không phải là quá khó, em chịu khó trace code sẽ tìm ra được thôi 🙂

    @:anh kien trả lời giống như muốn làm khó newbie như em hay sao ý,em mở file rả bằng olly ko đc thì trace code bằng gì,cho em xin pass đi
    cho em xin cái Ym có gì em pm hỏi đc k0 anh kien

  48. hjc says:

    ẹc,em nhầm,thui cố gắng tìm xem có ra ko,cứ tưởng là trace cái file rả,hóa ra là tut crackme của tut 18

  49. Thanh Hoa says:

    Thân chào anh Kienmanowar!
    Tôi đã đọc 1 số tut về OLLY của anh và thấy rất tuyệt vời, tuy nhiên trong thực tế thì tôi chưa thành công với 1 phần mềm nào cả. Hiện tôi đang thử tìm serial nhưng có vẻ hơi quá sức nên nhờ sự trợ giúp của anh:
    Khi load file *.exe = Olly và tìm các hàm API (ví dụ như hàm GetWindowtextA) và chuỗi thì không thấy trong danh sách, khi F9 thì thấy các hàm API xuất hiện còn các String vẫn ko thấy đâu. Anh có cách nào giúp tôi với.
    Chân thành cảm ơn anh!

  50. thinhlv says:

    anh Kiên ơi pm Y!M em tí đc ko ạ ? nick em là : ” ThinhLV_no1_fpt ” em cần nhờ chút việc và muốn học hỏi chút ở anh em vẫn chưa hiểu và seach mấy cái crack về để học mà khó tìm quá

  51. duongnv says:

    Cảm ơn bác Kien. 1 tuần nay em mò pass crackme2 mới hiểu được thuật toán của nó.Giờ em mới dám mở tut_19 ra để đọc tiếp.một lần nữa cảm ơn bác rất nhiều vì những bài viết hữu ích của bác.

  52. Vinh says:

    Khá rắc rối , pass tới 16 ki tu 😦
    Phải XOR 2 chuỗi :

  53. quygia128 says:

    Mình cũng là fan của anh Kiên đây, yêu anh ấy nhiều lém 🙂 Hehe, cách nay cũng lâu rồi cũng mày mò với cái Crackme v2 ở tut 18 của anh Kiên. Nhưng mình nghĩ dần dần rồi ai cũng sẽ hiểu và tìm được Serial hợp lệ ^^
    Chúc anh Kiên mạnh khỏe !

  54. kienmanowar says:

    @quygia128 : Tks em 🙂

    Regards

  55. KEn says:

    anh Kiên cái ollydbg ở tut 19 là phiên bản mấy vậy anh

  56. nobita says:

    tìm tới tìm lui cũng có pass tut19(RIDERSOFTHE**** )
    thử làm olly dbg vò đầu bứt tóc (mặc dù cái đầu hớt 2 phân) nhưng vẫn không hiểu buffer 40217E tại sao nó kiểm tra 16 kí tự hichic….
    Tut tiếng anh thì tụi nó làm sơ sài quá đọc hem hiểu, còn lại tiếng gì không” cuối cùng vẫn không hiểu vì sao có mấy cái chuổi này
    Messing_in_bytes = 4D 65 73 73 69 6E 67 5F 69 6E 5F 62 79 74 65 73
    Correct password XOR result = 1F 2C 37 36 3B 3D 28 19 3D 26 1A 31 2D 3B 37 3E

    So the first letter of the good password would be:

    4D XOR 1F

    0100 1101 <– 4D
    0001 1111 <– 1F

    0101 0010 <– 52 = R "cái này thì hiểu"
    anh em ai hiểu hướng dẫn em với
    mail em "nobita1610@yahoo.com"
    note:
    – không post pass đầy đủ vì tôn trọng ý của anh Kiên muốn mọi người động não phần bài tập này"
    – còn em đã động não "ctrl+F2" nhiều lần lắm rồi nhưng vẫn chưa ra nên cầu cứu"

  57. quygia128 says:

    Bạn đến đó thì cũng tốt rồi, nhưng bạn lại quên rằng phép XOR có tính đối xứng, vì vậy chỉ có chuổi nhập vào đúng thì mới cho ra kết quả xor đúng với kết quả mà crackme đã gán sẵn (hoặc xor khi chương trình chạy).

    Tôi gợi ý bằng cái hình:

    “hxxp://i1207.photobucket.com/albums/bb465/MrQuy/2012-07-23_214118.jpg”

    Nội dung chỉ mang tính minh họa vì tôi đã edit lại string nhập vào 😀

  58. nobita says:

    bạn cho mình cái mail hoặc cái yahoo để mình học hỏi được không.

  59. khôi says:

    hình như cái win32.hlp không chạy được trên win7 phải không anh Kiên?

  60. kienmanowar says:

    Ừ không chạy được em ơi 😀

  61. khôi says:

    vậy anh có tài liệu nào tổng hợp các hàm api không ạ ?

  62. kienmanowar says:

    Hi all,

    Anh em nào muốn chạy được file win32.hlp trên Win7 x86/x64 thì down một trong hai file dưới về cài nhé (tùy thuộc nền tảng nào thì down version phù hợp)

    http://www71.zippyshare.com/v/31885794/file.html
    http://www71.zippyshare.com/v/77670339/file.html

    Regards,

  63. KYO says:

    Mất 2 ngày trời “nổ não”, hên quá vẫn live và được đọc tiếp Tut 19 tuyệt vời của anh kienmanowar. Thank you.

  64. KYO says:

    Không hiểu sao cái Olly của em đã thử nhiều cái Hide Debugger nhưng không thấy cái nào chạy được như tài liệu anh nói (Tut 19), anh có thể cho em chút tư vấn về vấn đề này không? (muốn gửi nhờ anh xem dùm nhưng sợ mất thời gian của anh).
    Cám ơn anh.

  65. kienmanowar says:

    @KYO: Ngoài cái HideDebugger đó còn rất nhiều Anti-Debug plugin cho OD nữa (Vd: StrongOD, Poison, Phantom, ScyllaHide …) .. Hơn nữa, môi trường anh làm tut19 là trên Windows XP.

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