网众写加密狗C 源码完整版【转】
1. /*fun main()2. {
3. exit(0,0x61,0,0):0;
4. }
5. */
6.
7. #include <sys_api.h>
8. #include <string.h>
9.
10. /*output[41] //地区代码*/
11. //output[38][39] : 编号 xor 0x45c4a//
12. //output[48..51] :用户数//
13. //output[52..55]最大用户户数//
14. //output[46][47] :使用时间数
15.
16. byte xdata output[144]={0x52, 0x2A, 0x29, 0xC9, 0x52, 0xF2, 0xEF, 0xD9, 0xCE, 0xE7, 0x78, 0xD4, 0x52, 0xF2,
17. 0xEF, 0xD9, 0xCE, 0xE7, 0x78, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
18. 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x86, 0x29, 0x00, 0x27, 0x00, 0x9B, 0x00, 0x00,
19. 0x08, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F,
20. 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x6E, 0x65, 0x74, 0x7A, 0x6F, 0x6E, 0x65, 0x73, 0x6F, 0x66, 0x74,
21. 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x77, 0x7A, 0x73, 0x6A, 0x2E, 0x68, 0x74, 0x6D, 0x6C, 0x00, 0x00,
22. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
23. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xB3, 0x6B, 0x09, 0xBD, 0x6F,
24. 0xEF, 0xC4, 0x42, 0x66, 0xC7, 0xB4, 0x5C, 0x76, 0xBA, 0x23, 0x59, 0x0F, 0x00, 0x00, 0x00, 0x00,0x00,0x00};
25.
26. /*byte xdata output[144]={0x52, 0x2A, 0x29, 0xC9, 0x52, 0xF2, 0xEF, 0xD9, 0xCE, 0xE7, 0x78, 0xD4, 0x52, 0xF2,
27. 0xEF, 0xD9, 0xCE, 0xE7, 0x78, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
28. 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xf2, 0xec, 0x00, 0x27, 0x00, 0x9B, 0x00, 0x00,
29. 0x08, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x00, 0x00, 0x01, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F,
30. 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x6E, 0x65, 0x74, 0x7A, 0x6F, 0x6E, 0x65, 0x73, 0x6F, 0x66, 0x74,
31. 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x77, 0x7A, 0x73, 0x6A, 0x2E, 0x68, 0x74, 0x6D, 0x6C, 0x00, 0x00,
32. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
33. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x7f, 0x23, 0x66, 0x12, 0x21,
34. 0x10, 0x3e, 0x1c, 0x15, 0xed, 0x09, 0xc5, 0xbb, 0x62, 0x80, 0x37, 0x31, 0x00, 0x00, 0x00, 0x00,0x00,0x00};
35.
36. */
37. byte xdata boot[0x60]={0xC2, 0x0B, 0xB0, 0x06, 0xC2, 0xD2, 0x33, 0x07, 0xA1, 0xF8, 0x74, 0x9E, 0xC2, 0xD2,
38. 0x33, 0x07, 0xA1, 0xF8, 0x74, 0x9A, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
39. 0x00, 0x00, 0x55, 0x8B, 0xEC, 0x66, 0x53, 0x66, 0x51, 0x66, 0x52, 0x66, 0x55, 0x66, 0x56, 0x66,
40. 0x57, 0x1E, 0x06, 0x0F, 0xA0, 0x0F, 0xA8, 0x0E, 0x1F, 0x66, 0xFF, 0x76, 0x06, 0x06, 0x53, 0xE8,
41. 0x90, 0x04, 0x0F, 0xA9, 0x0F, 0xA1, 0x07, 0x1F, 0x66, 0x5F, 0x66, 0x5E, 0x66, 0x5D, 0x66, 0x5A,
42. 0x66, 0x59, 0x66, 0x5B, 0x90, 0x5D, 0xCB, 0x00, 0xC8, 0x06, 0x00, 0x00, 0xB8, 0x32, 0x00, 0xE8,
43. 0xBA, 0x2F};
44.
45. byte xdata initval[8]={0x13,0xa6,0x28,0xb7,0x00,0xda,0x25,0xb7};
46.
47. void main()
48. {
49. byte xdata tmpbuf[0xe0];
50. byte xdatais;
51. wordfileid;
52. byte xdata alltime[8];
53. dword endtime,curtime;
54. byte xdata tmpbyte;
55. dword xdata tmp,key1,key2,fun,time1,time2,outtime,outsec;
56.
57. fileid=0x1002;
58. get_input(tmpbuf,0,0,0xe0);
59. tmp=tmpbuf[4];
60. key1=tmp<<24;
61. tmp=tmpbuf[5];
62. key1=key1 | (tmp<<16);
63. tmp=tmpbuf[6];
64. key1=key1 | (tmp<<8);
65. key1=key1 | tmpbuf[7];
66. tmp=tmpbuf[8];
67. key2=tmp<<24;
68. tmp=tmpbuf[9];
69. key2=key2 | (tmp<<16);
70. tmp=tmpbuf[10];
71. key2=key2 | (tmp<<8);
72. key2=key2 | tmpbuf[11];
73.
74. tmp=tmpbuf[0];
75. time1=tmp<<24;
76. tmp=tmpbuf[1];
77. time1=time1 | (tmp<<16);
78. tmp=tmpbuf[2];
79. time1=time1 | (tmp<<8);
80. time1=time1 | tmpbuf[3];
81. tmp=tmpbuf[16];
82. time2=tmp<<24;
83. tmp=tmpbuf[17];
84. time2=time2 | (tmp<<16);
85. tmp=tmpbuf[18];
86. time2=time2 | (tmp<<8);
87. time2=time2 | tmpbuf[19];
88. time1=time1^time2;
89. fun=key1^key2;
90. switch (fun)
91. {
92. case 0x10:
93. is=open_file(&fileid,0);
94. if(is!=0)
95. {
96. creat_file(fileid, "1002", 0x80,0x8);
97. write_file(0,initval,8);
98. }
99. read_file(0,alltime,8);
100. tmp=alltime[0];
101. endtime=tmp<<24;
102. tmp=alltime[1];
103. endtime=endtime | (tmp<<16);
104. tmp=alltime[2];
105. endtime=endtime | (tmp<<8);
106. endtime=endtime | alltime[3];
107.
108. tmp=alltime[4];
109. curtime=tmp<<24;
110. tmp=alltime[5];
111. curtime=curtime | (tmp<<16);
112. tmp=alltime[6];
113. curtime=curtime | (tmp<<8);
114. curtime=curtime | alltime[7];
115. if(time1<=endtime)
116. {
117. if(time1>=curtime)
118. {
119. outsec=endtime-time1;
120. }
121. else
122. {
123. outsec=endtime-curtime;
124. }
125. outtime=(outsec/(60*60))+((outsec/(60*60)) % 24);
126. if(time1>curtime)
127. {
128. tmpbyte=time1>>24;
129. alltime[4]=tmpbyte;
130. tmpbyte=time1>>16;
131. alltime[5]=tmpbyte;
132. tmpbyte=time1>>8;
133. alltime[6]=tmpbyte;
134. tmpbyte=time1;
135. alltime[7]=tmpbyte;
136. write_file(0,alltime,8);
137. }
138. tmpbyte=outtime>>24;
139. output[44]=tmpbyte;
140. tmpbyte=outtime>>16;
141. output[45]=tmpbyte;
142. tmpbyte=outtime>>8;
143. output[46]=tmpbyte;
144. tmpbyte=outtime;
145. output[47]=tmpbyte;
146. }
147. else
148. {
149. output[44]=0;
150. output[45]=0;
151. output[46]=0;
152. output[47]=0;
153. }
154. set_response(144,output);
155. break;
156. case 0x11:
157. set_response(144,output);
158. break;
159. case 0x4: set_response(96,boot);
160. break;
161. }
162. //memcpy(output,tmpbuf,20);
163. //set_response(144,output);
164. exit();
165. } :lol 我自己也看不懂
页:
[1]