<![CDATA[Latest posts for the topic "Unable to locate data in executable files ollydbg"]]> /hvaonline/posts/list/36.html JForum - http://www.jforum.net Unable to locate data in executable files ollydbg /hvaonline/posts/list/41528.html#257581 /hvaonline/posts/list/41528.html#257581 GMT Unable to locate data in executable files ollydbg không save to executable được  Trong việc patch một file PE nào đó thì việc chú ý đầu tiên là việc kiểm tra xem nó có bị pack bởi packer nào không. Nếu bị pack thì bắt buộc phải unpack rồi mới tiến hành patch và save lại được. (Khái niệm unpack thì tìm trên google nó là 1 mảng rất lớn nhiều tài liệu để đọc), nguyên nhân của bạn là ở điểm này. Vậy tại sao khi file bị pack thì không thể save ? Câu trả lời rất đơn giản là vì đoạn code bạn muốn save thực ra không có sẵn mà nó sẽ được bung ra trên bộ nhớ (như giải nén) khi quá trình unpack tự động của packer diễn ra. Khi kết thúc quá trình này thì bạn phải tiến hành dump file và fix dump (2 khái niệm này bạn cũng xem các tut về unpack sẽ rõ hơn- tuy nhiên nó không hề đơn giản tý nào đối với những packer khó) -xem tut về UPX và ASPack để hiểu cách thức hoạt động của packer. Một số packer bạn vẫn có thể save lại file này khi bị pack vd như molebox, nhưng thật ra cũng không có giá trị vì mỗi lần chạy thì địa chỉ này hoàn toàn khác nhau (Nhưng code là giống nhau) vì vậy có save được đi nữa cũng không giải quyết được gì. Hướng giải quyết để khỏi phải unpack là "inline patch" tìm tài liệu và xem tutorials có khá nhiều. NoTE: Nếu đoạn code bạn patch lại nằm trên các module của hệ thống, khi gặp điều này thì không patch được vì nếu save lại và thì các ứng dụng khác cần đến nó sẽ không thực thi đúng chức năng được (vd module : Kernel32.dll...) Tôi chỉ biết có thế mong giúp được bạn phần nào khó khăn. ]]> /hvaonline/posts/list/41528.html#259344 /hvaonline/posts/list/41528.html#259344 GMT