Posts

Right now at Dreamplex

Image
I feel old sitting next to these comrades. What was I doing when I was 20? Didn't really remember, but for sure I wasn't learning to hack Windows kernel. Dreamplex looks like a nice place. They probably need to provide more comfortable chairs, but the offices look modern with fancy equipments and really fast WiFi, and the atmosphere is exciting with a lot of folks busily coding their dreams. I feel like at home.

Here come the winners

Whoa. Bruce and I have finally selected the winners of the memset challenge. We got 9 submissions, 5 of which came up with the same size, but only one person attempted to implement memcpy, and it's Manh Luat Nguyen. Congratulations! The winning code is global my_memset my_memset: pop edx ; return address pop edi ; src String pop eax ; char pop ecx ; length push edi rep stosb pop eax sub esp,16 ret The resulting shellcode is 12-byte: \x5a\x5f\x58\x59\x57\xf3\xaa\x58\x83\xec\x10\xc3. Instead of using movs, Luat was the first that creatively used one-byte pop instructions to save space. The runner ups are - Pham Hong Phi (12 bytes) - Le Thanh Binh (12 bytes) - Nguyen Vu Hoang (12 bytes) There's actually one person that came up with a 10-byte implementation, it didn't pass my unit tests, but Bruce likes him enough that he wants to give him a special prize. Congratulations to Pham Viet Hoa! Regarding scholarships I ...

Another update on memset()

We test submissions by running them through a set of unit tests which are written in standard C. Each unit test accepts a function pointer, which points to the being tested implementation. Thus, your function needs to work properly when called in a C program. While it's possible to use special compiler options or attributes to reduce code size, we won't use them in our unit tests. Moreover, if we replace the standard memset with your implementation existing C programs must still work. Although you can give us an .asm file, it's best if you just give us some shellcode. We have one hour to go, and the correct and shortest implementation that we've seen so far is 12-byte.

Last update on the memset challenge

We've received many good submissions to the memset challenge in the past 24 hours. We haven't tested, but it looks like someone has managed to shrunk it to fewer than 10 bytes, really cool! Note that although we ask you to optimize for code size, in order to win your implementation must be correct first. It looks like some implementations don't return anything which is wrong as memset returns its first argument. Please send us updates if you want to correct your submission. We're going to head out for the meeting at University of Science. After that we'll test the implementations and measure their size. We'll announce the winners early this evening. Thanks all for participating!

The shortest memset is... ?

We have a few 100% scholarships for college students to attend Bruce Dang's training class at TetCon 2016 . In order to select the best persons that might make the most out of the class, we ask those who want to apply for the scholarship to implement memset, and whoever writes the shortest code wins. More details on this mini challenge can be found here . So far we've already received 3 submissions. The shortest implementation is just 10-byte. Can you beat it ;)? Don't worry if you can't we'd love to see your code anyway. -- In other news, tomorrow Bruce and I are going to have a Q&A session with computer science and computer security students at University of Science. We're going to share what we do in our day jobs, and answer any questions the audience might have w.r.t technology, working in the U.S., etc. The exact date and location is Time: 13:00, December 29 2015 (tomorrow) Location: Room I-23, 227 Nguyễn Văn Cừ, District 5. The...

Đánh nhau bằng toán

(Hello Facebookers! Có vẻ như ai đó đã gửi bài này lên Facebook. Tôi thấy rất nhiều người đọc đến từ đó. Tôi thêm vào một phần tóm tắt để cho những ai không rành kỹ thuật dễ nắm bắt hơn.) Tóm tắt: Juniper, một hãng chuyên bán các thiết bị mạng nổi tiếng của Mỹ, thông báo rằng có ai đó đã bí mật cài mã độc vào các thiết bị của họ. Mã độc này cho phép kẻ tấn công có thể truy cập từ xa vào các thiết bị này, đồng thời giải mã luôn các dữ liệu được gửi xuyên qua chúng. Sau quá trình tìm hiểu, người ta phát hiện ra một trong hai mã độc có liên quan đến giải thuật tạo số ngẫu nhiên Dual EC. Từ năm 2007 hai nhà nghiên cứu ở Microsoft đã chỉ ra rằng giải thuật này có thể đã bị NSA cài mã độc và điều đó sau này được xác nhận bởi các tài liệu do Edward Snowden tiết lộ. Ngoài Juniper thì RSA, một công ty chuyên bán các sản phẩm an toàn thông tin đình đám khác của Mỹ, cũng từng bị phát hiện cố tình sử dụng Dual EC trong các sản phẩm của họ, sau khi nhận 10 triệu USD từ NSA. Nếu bạn là chủ doanh n...