banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: 4hfoo  XML
Profile for 4hfoo Messages posted by 4hfoo [ number of posts not being displayed on this page: 6 ]
 
Việc click vào file .bat thì bạn sẽ chủ động trong việc khi nào muốn chạy lệnh copy.
Còn nếu bạn muốn vừa cắm cái USB vào rồi tự động chép thì cũng có cách, nhưng vậy thì không ổn...
Không biết ý bạn vosonxd2 muốn như thế nào ...
Cái hình thì hông thấy chữ quảng cáo.
Nhưng kết hợp thêm với chữ ký (phần text) của bạn thì có vẻ là có smilie
Bạn dùng chính xác phiên bản Yahoo nào vậy?
Vào Help -> About để xem ...
Bạn có thể dùng lệnh xcopy để copy cả thư mục lẫn tập tin.
xcopy /? để biết thêm chi tiết.

Theo của bạn thì chỉ cần 1 lệnh là ok
Code:
xcopy /e /y F:\* D:\VOSON\USB-CHEP\


Chú ý, phần tạo thư mục mkdir D:\VOSON\USB-CHEP thì không nên để trong file .bat, nếu bạn dự định chạy file .bat này nhiều lần.

Thân.
Hiện tại, có nhiều cách để tạo giá trị token bằng application trên điện thoại, có cả open-source làm cái này nữa...

Mình xin đưa ra một trong các thuật toán phổ biến HOTP để giải thích cho cách hoạt động của chương trình.

HOTP = HMAC-Based One-Time Password
Bạn tham khảo trang RFC của HOTP:
http://www.rfc-editor.org/rfc/rfc4226.txt

1/ Bạn kéo xuống [Page 4], sẽ thấy phần HOTP Algorithm.
Kéo xuống xíu nữa sẽ thấy có 3 symbol tham gia vào quá trình tạo giá trị token - C, K và T.
Trong đó K là shared secret giữa server và client. K này có thể xem là password giữa server và client.
Các giá trị khác bạn có thể đọc để tham khảo thêm.


Symbol Represents
-------------------------------------------------------------------
C 8-byte counter value, the moving factor. This counter
MUST be synchronized between the HOTP generator (client)
and the HOTP validator (server).

K shared secret between client and server; each HOTP
generator has a different and unique secret K.

T throttling parameter: the server will refuse connections
from a user after T unsuccessful authentication attempts.
 


2/ Thuật toán tạo giá trị token được tóm tắt trong phần
5.3. Generating an HOTP Value

3/ Bạn kéo tiếp xuống dưới đến [Page 13]
8. Composite Shared Secrets
Tại đây, bạn sẽ biết cái shared secret được tạo ra như thế nào.
Shared secret sẽ được tạo từ nhũng thông tin liên quan đển ĐT của bạn (ví dụ số IMEI, số di động - trong trường hợp theo bạn nói thì SIM không cần, nên có thể OCBC không dùng số ĐT, số PIN ...)


In this scenario, the composite shared secret K is constructed during
the provisioning process from a random seed value combined with one
or more additional authentication factors. The server could either
build on-demand or store composite secrets -- in any case, depending
on implementation choice, the token only stores the seed value. When
the token performs the HOTP calculation, it computes K from the seed
value and the locally derived or input values of the other
authentication factors.

 



Kết luận:
Theo ý mình, khi bạn kích hoạt cái ứng dụng bằng cách nhập username và password, một quá trình trao đổi thông tin để tạo ra shared secret sẽ diễn ra giữa client (ĐT) và server.
Tất nhiên nếu bạn reverse cái application thì có thể biết rõ về thuật toán sinh ra giá trị token.
Nhưng bạn cần clone thông số hardware nữa thì bạn mới hoàn toàn duplicate thành công.

Như vậy, sau khi activate cái application, application của bạn đã có đầy đủ thông tin để tạo ra shared secret, và không cần kết nối đến server nữa.

Thân

Theo minh nghĩ thì bạn lưu bằng file cũng chỉ là một dạng CSDL, và CSDL này bạn phải tự mình quản lý (manual).
Còn nếu bạn dùng CSDL có sẵn thì nó sẽ giúp mình quản lý thông tin. Ngoài ra còn hỗ trợ những chức năng khác nữa như là backup, transaction ...
Khi bạn cài chương trình java lên ĐT di động, có cần phải nhập thông tin như password hay thông tin đặc biệt nào khác không?
Bạn viết chương trình bằng ngôn ngữ gì vậy?
Có thể post lên một phần đoạn mã liên quan được hông?

Thân.
Xin đưa cách làm để mọi người coi chơi đỡ buồn ...

- Load file từ Olly:
Code:
00401013 |. 68 D0204000 PUSH hehehe.004020D0 ; /format = "Enter login:"
00401018 |. FF15 98204000 CALL DWORD PTR DS:[<&MSVCR80.printf>] ; \printf
0040101E |. 83C4 04 ADD ESP,4
00401021 |. FF15 9C204000 CALL DWORD PTR DS:[<&MSVCR80.__iob_func>>; MSVCR80.__p__iob
00401027 |. 50 PUSH EAX ; /stream
00401028 |. 68 00010000 PUSH 100 ; |n = 100 (256.)
0040102D |. 8D85 F8FDFFFF LEA EAX,DWORD PTR SS:[EBP-208] ; |
00401033 |. 50 PUSH EAX ; |s
00401034 |. FF15 A0204000 CALL DWORD PTR DS:[<&MSVCR80.fgets>] ; \fgets
0040103A |. 83C4 0C ADD ESP,0C
0040103D |. 68 E0204000 PUSH hehehe.004020E0 ; /format = "Enter password:"
00401042 |. FF15 98204000 CALL DWORD PTR DS:[<&MSVCR80.printf>] ; \printf
00401048 |. 83C4 04 ADD ESP,4
0040104B |. FF15 9C204000 CALL DWORD PTR DS:[<&MSVCR80.__iob_func>>; MSVCR80.__p__iob
00401051 |. 50 PUSH EAX ; /stream
00401052 |. 68 00010000 PUSH 100 ; |n = 100 (256.)
00401057 |. 8D8D F8FEFFFF LEA ECX,DWORD PTR SS:[EBP-108] ; |
0040105D |. 51 PUSH ECX ; |s
0040105E |. FF15 A0204000 CALL DWORD PTR DS:[<&MSVCR80.fgets>] ; \fgets
00401064 |. 83C4 0C ADD ESP,0C
00401067 |. 8D95 F8FDFFFF LEA EDX,DWORD PTR SS:[EBP-208]
0040106D |. 52 PUSH EDX ; /s2
0040106E |. 68 00404000 PUSH hehehe.00404000 ; |s1 = "reversing
"
00401073 |. E8 B8000000 CALL <JMP.&MSVCR80.strcmp> ; \strcmp
00401078 |. 83C4 08 ADD ESP,8
0040107B |. 85C0 TEST EAX,EAX
0040107D |. 0F85 89000000 JNZ hehehe.0040110C
00401083 |. C745 FC 000000>MOV DWORD PTR SS:[EBP-4],0
0040108A |. EB 09 JMP SHORT hehehe.00401095
0040108C |> 8B45 FC /MOV EAX,DWORD PTR SS:[EBP-4]
0040108F |. 83C0 01 |ADD EAX,1
00401092 |. 8945 FC |MOV DWORD PTR SS:[EBP-4],EAX
00401095 |> 8D8D F8FEFFFF LEA ECX,DWORD PTR SS:[EBP-108]
0040109B |. 51 |PUSH ECX ; /s
0040109C |. E8 89000000 |CALL <JMP.&MSVCR80.strlen> ; \strlen
004010A1 |. 83C4 04 |ADD ESP,4
004010A4 |. 83E8 01 |SUB EAX,1
004010A7 |. 3945 FC |CMP DWORD PTR SS:[EBP-4],EAX
004010AA |. 73 1D |JNB SHORT hehehe.004010C9
004010AC |. 8B55 FC |MOV EDX,DWORD PTR SS:[EBP-4]
004010AF |. 0FBE8415 F8FEF>|MOVSX EAX,BYTE PTR SS:[EBP+EDX-108]
004010B7 |. 83F0 05 |XOR EAX,5
004010BA |. 83E8 08 |SUB EAX,8
004010BD |. 8B4D FC |MOV ECX,DWORD PTR SS:[EBP-4]
004010C0 |. 88840D F8FEFFF>|MOV BYTE PTR SS:[EBP+ECX-108],AL
004010C7 |.^EB C3 \JMP SHORT hehehe.0040108C
004010C9 |> 8D95 F8FEFFFF LEA EDX,DWORD PTR SS:[EBP-108]
004010CF |. 52 PUSH EDX ; /s2
004010D0 |. 68 00504000 PUSH hehehe.00405000 ; |s1 = "showme
"
004010D5 |. E8 56000000 CALL <JMP.&MSVCR80.strcmp> ; \strcmp
004010DA |. 83C4 08 ADD ESP,8
004010DD |. 85C0 TEST EAX,EAX
004010DF |. 75 2B JNZ SHORT hehehe.0040110C
004010E1 |. 68 00504000 PUSH hehehe.00405000 ; /s2 = "showme
"
004010E6 |. 68 00404000 PUSH hehehe.00404000 ; |s1 = "reversing
"
004010EB |. E8 40000000 CALL <JMP.&MSVCR80.strcmp> ; \strcmp
004010F0 |. 83C4 08 ADD ESP,8
004010F3 |. 85C0 TEST EAX,EAX
004010F5 |. 74 15 JE SHORT hehehe.0040110C
004010F7 |. 68 F0204000 PUSH hehehe.004020F0 ; /format = "
Yees... You are cOOl HaCker!!!
"
004010FC |. FF15 98204000 CALL DWORD PTR DS:[<&MSVCR80.printf>] ; \printf
00401102 |. 83C4 04 ADD ESP,4
00401105 |. B8 01000000 MOV EAX,1
0040110A |. EB 10 JMP SHORT hehehe.0040111C
0040110C |> 68 14214000 PUSH hehehe.00402114 ; /format = "
He he he. You are Lamer!
"
00401111 |. FF15 98204000 CALL DWORD PTR DS:[<&MSVCR80.printf>] ; \printf
00401117 |. 83C4 04 ADD ESP,4
0040111A |. 33C0 XOR EAX,EAX
0040111C |> 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
0040111F |. 33CD XOR ECX,EBP
00401121 |. E8 10000000 CALL hehehe.00401136
00401126 |. 8BE5 MOV ESP,EBP
00401128 |. 5D POP EBP
00401129 \. C3 RETN


1/ Tại địa chỉ 00401073, giá trị username được so sánh với chuỗi "reversing", nếu giống nhau mới tiếp tục làm tiếp
-> username: reversing

2/ Đoạn vòng lặp từ địa chỉ 0040108C đến địa chỉ 004010C7 dùng để biến đổi giá trị password thành một chuỗi khác.
- Tại địa chỉ 004010D5, chuỗi biến đổi sẽ được so sánh với chuỗi "showme", nếu giống nhau thì thỏa mãn.
- Như vậy, ta cần tìm hiểu chuỗi được biến đổi như thế nào. Từ đó, lần ngược lại từ chuỗi "showme" để tìm password.

3/ Tìm password:
- Chuỗi password sẽ được biến đổi như sau: mỗi ký tự sẽ được XOR với 5, và trừ đi 8 để được một ký tự khác. Cứ như thế sẽ được chuỗi cuối cùng.

Code:
004010AF |. 0FBE8415 F8FEF>|MOVSX EAX,BYTE PTR SS:[EBP+EDX-108]
004010B7 |. 83F0 05 |XOR EAX,5
004010BA |. 83E8 08 |SUB EAX,8


- Như vậy để tìm password, ta làm ngược lại. Từ chuỗi "showme", ta lấy từng ký tự. Mỗi ký tự sẽ được cộng với 8 rồi XOR với 5.

's' -> mã ASCII là 0x73, trừ 8 rồi XOR với 5 sẽ được giá trị 7E -> ký tự '~'
(lẫy mã ASCII từ http://www.asciitable.com/)
Tương tự:
h -> u, o->r, w>z, m->p, e->h

Vậy password cần tìm là ~urzph

4/ Như vậy là xong

login: reversing
pass: ~urzph
 


Còn cách bypass nếu được sửa code thì có nhiều cách ... smilie

Thân





Cám ơn bạn VXer, mình đã chạy được rồi.
Username và password giống như bạn đã đưa ra ...

Bạn Reversing... có thể giải thích nhiệm vụ thứ 2 làm làm gì hông?


2. Bypass
 


Thân.
Mình up lên mediafire, bạn down về thử xem

http://www.mediafire.com/?w250mylsjd4

Mình chạy thì bị lỗi này ... Phải chịu thua smilie




Bạn kiểm tra lại xem sao ...
Cho hỏi bạn tìm link gốc để làm gì vậy?
Bạn mfeng nhanh tay quá! smilie

Mình xin gửi đoạn phân tích để mọi người xem chơi, xin đừng chê cười...

Dùng debug của DOS (hông có tool khác nên xài tạm debug) để xem mã chương trình:

Code:
debug 3cool.com
-u
-u


Mã assembly:
Code:
1858:0100 B90300 MOV CX,0003
1858:0103 E81C00 CALL 0122 ; gọi đoạn mã tại 0122, đoạn mã này tăng AX lên 1 đơn vị
1858:0106 E2FB LOOP 0103 ; lặp lại, tổng cộng 3 lần (do CX=3), sau khi kết thúc AX=3
1858:0108 50 PUSH AX ; PUSH AX vào stack mà không có POP (như bạn mfeng đã nói ở trên)
1858:0109 41 INC CX ; -> CX=1
1858:010A 41 INC CX : -> CX=2
1858:010B 41 INC CX ; -> CX=3
1858:010C E81700 CALL 0126 ; gọi đoạn mã in chuỗi "Cool Hacker!" ra màn hình
1858:010F E2FB LOOP 010C ; lặp lại, tổng cộng 3 lần (do CX=3)
1858:0111 CD20 INT 20
1858:0113 43 INC BX
1858:0114 6F DB 6F
1858:0115 6F DB 6F
1858:0116 6C DB 6C
1858:0117 204861 AND [BX+SI+61],CL
1858:011A 63 DB 63
1858:011B 6B DB 6B
1858:011C 65 DB 65
1858:011D 7221 JB 0140
1858:011F 0D0A24 OR AX,240A
1858:0122 83C001 ADD AX,+01
1858:0125 C3 RET
1858:0126 B409 MOV AH,09
1858:0128 BA1301 MOV DX,0113
1858:012B CD21 INT 21
1858:012D C3 RET



Cách sửa để in ra 5 dòng:
Thay lệnh INC CX (mã lệnh là 0x41) tại địa chỉ 1858:0109 thành lệnh POP CX (mã lệnh là 0x59), lệnh này sẽ lấy giá trị trong stack (là 3) gán vào CX.
Sau đó 2 lệnh tiếp theo INC CX sẽ cho kết quả CX=5 -> vòng lặp in chữ sẽ chạy 5 lần.

Thực hiện:
Dùng 1 trình binary editor để thay đổi nội dung tập tin 3cool.com, mình dùng WinHex.
Tại offset 9, thay giá trị 41 thành 59.

Lưu file lại và chạy sẽ được kết quả 5 dòng "Cool Hacker!"

Thân.

* -> con trỏ đến cái gì đó (chứa giá trị địa chỉ)
** -> con trỏ đến con trỏ

char *str -> con trỏ đến char
có thể hiểu theo nghĩa khác là mảng gồm các phần tử kiểu char -> đây là một chuỗi.

p_hv *p -> con trỏ đến một cấu trúc kiểu p_hv
p_hv **pd -> con trỏ đến một mảng, mảng này chứa các phẩn tử có kiểu là p_hv*

Hi vọng không làm bạn bị rối smilie
Thân
Theo ý mình thì bạn có thể viết một đoạn javascript để kiểm tra xem máy có cài JRE không, trước khi quyết định hiện cái java applet.
Tuy nhiên đoạn script hơi phức tạp vì cách kiểm tra sẽ khác nhau cho các trình duyệt khác nhau. (Firefox, các phiên bản IE5, IE6, IE7, Netscape ...)
Bạn có thể up lại file lên trang khác không?
Trang rapidshare down oải lắm ....
Bạn xem thử firewall trên các máy có bật hay không?
Có thể firewall chặn không cho bạn ping các máy với nhau.
Bạn có thể dùng chương trình java decompiler để dịch ngược lại (từ file class sang mã nguồn).
Có rất nhiều chương trình về java decompiler, ví dụ jad (http://www.kpdus.com/jad.html) ...

Thân
Để biết mạng wifi có mã hóa hay không, bạn có thể dùng các phần mềm quét (wireless network scanner).
Một số phần mềm khá phổ biến: NetStumbler (trong Windows), airodump-ng (trong bộ aircrack-ng) ...

Thân
Bạn có thể vào tạo đĩa boot CD BartPE

http://www.nu2.nu/pebuilder

Khi boot từ CD này, bạn sẽ vào Windows XP và có thể xóa file trên ổ cứng.
Ngoài ra BartPE có một số plugin rất hữu ích, bạn có thể xem từ website trên.

Thân
Bạn có thể tạo một Context Menu (tương tự như tạo một Menu).
Sau đó, trong phần property của RichTextBox, bạn kiếm mục Context Menu, và chọn cái Context Menu bạn vừa tạo ở trên.

Thân
Bạn có thể dùng câu lệnh sau để chỉ lấy thông tin về thời gian.

Code:
DateTime.Now.ToString("hh:MM:ss"); // theo 12 tiếng
hoặc
DateTime.Now.ToString("HH:MM:ss"); // theo 24 tiếng


Bạn có thể tham khảo về các định dạng ngày tháng để truyền vào hàm ToString và thu kết quả mình muốn.
http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx

Câu hỏi của bạn về object senderEventArgs e, đây là các tham số truyền vào event handler của bạn.
Thường biến sender sẽ chứa object đã sinh ra sự kiện (event) và biến e sẽ lưu thông tin, tham số liên quan đến sự kiện đó (event arguments).
Ví dụ nếu sự kiện là click chuột thì biến e sẽ lưu thông số về click chuột đó (ví dụ click bằng chuột trái, chuột phải ...)
Những thông tin này thường ít khi cần tới, trừ khi bạn muốn biết rõ về sự kiện xảy ra.

Thân
Chào publicIT,

Bạn có thể tham khảo trang này:
http://www.c-sharpcorner.com/UploadFile/DipalChoksi/DateDiff_CS_DC09132006172429PM/DateDiff_CS_DC.aspx

1/ Bên C#, bạn phải khởi tạo object DateTime rồi gán cho biến DateTime.

2/ Dữ liệu kiểu DateTime chứa thông tin về ngày tháng và thời gian. Nếu bạn chỉ muốn thông tin về thời gian thì có thể lấy giá trị trực tiếp từ các property của object đó. (ví dụ a.Hour ...)

Code:
DateTime dt = DateTime.Now; //lấy thời gian hiện tại ...
//dt.Hour, dt.Minute ...


3/ Cái này thì mình hổng có smilie

Thân
 
Go to Page:  First Page Page 2 Page 4 Last Page

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