找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 15455|回复: 19

讨论EC1308修改

[复制链接]
发表于 2012-2-15 22:51:59 | 显示全部楼层 |阅读模式
我用telnet登录到EC1308里。在
  1. -rwxrwxrwx    1 root     root         8657 Nov  7  2011 himr
    - ?. q3 C0 S; T9 V+ q8 O# T$ R
  2. -rwxrwxrwx    1 root     root        89029 Nov  7  2011 iwconfig
    ( M" B% H3 x0 _9 R4 ?1 A
  3. -rwxrwxrwx    1 root     root        83813 Nov  7  2011 iwpriv
复制代码
发现这个himr的格式是:
( r/ |) @/ k3 V5 k& zusage: himr <address> <value>. sample: himr 0x80040000 0x0
0 u$ p' U. b# Q7 e) ?3 Y& m4 P
' T1 H) n% T0 y* Y# k, K' l# k7 T" ], }5 ^/ F
不知道所谓的写MAC,SN是否就是在特定的地址写特定的数值?
5 |: Z* _" j; X' n9 {( n5 s+ q/ q* z* j2 E1 R- y) _1 V; R
补充内容 (2012-3-8 09:42):
" @, r; U# d* k% g6 X" z4 lhttp://www.iptvfans.cn/wiki/index.php/华为EC1308机顶盒改参数
$ U, `6 g! s# }: u* d$ Y6 R5 }% m这是修改源代码,可惜我不会编译。
 楼主| 发表于 2012-2-16 22:08:26 | 显示全部楼层
那些远程改MAC和SN的是否就是利用这个himr程序,将MAC和SN写到特定的地址?
发表于 2012-2-28 10:55:26 | 显示全部楼层
急切想知道远程是如何改的
 楼主| 发表于 2012-3-7 09:59:55 | 显示全部楼层
估计就是执行这个命令。# T# B2 W; m: f& V0 O) a" t
8 I; [" j% S1 _" a" X# o3 X+ {
himr <address> <value>. sample: himr 0x80040000 0x00 B* l3 K0 l! |- R& B! N+ k

' k& X4 ^  }5 U9 t3 B: S例如知道MAC 00-11-22-33-44-55 在地址 0x80040000 位置。
/ j% m$ Q. o! j) I7 qhimr 0x80040000 0x00
  e4 ^; q# L, o; yhimr 0x80040001 0x11
5 e- k. X, x& ]: o3 thimr 0x80040002 0x22
1 u- K$ @! p1 c% X: nhimr 0x80040003 0x33. m2 m5 p5 l" H7 O! d
himr 0x80040004 0x440 k- M9 f  U! U+ V4 j
himr 0x80040005 0x558 ?9 ]- J* Q$ u: g3 n9 M

3 [1 L! H) f; mSN也是类似。+ j) i! r, s, p4 Z1 {4 N/ ]
3 K. K% `$ @- ^% L, X- [1 Z) E
现在主要是,谁告诉我们MAC和SN的地址?
6 ~! E1 z+ i* G2 d' M3 R* U* O
发表于 2012-3-10 11:37:46 | 显示全部楼层
一直想找到运程修改MAC和SN的办法,苦于无解啊
 楼主| 发表于 2012-3-12 19:15:19 | 显示全部楼层
wowocom 发表于 2012-3-10 11:37 & b) E8 G2 w0 R$ l
一直想找到运程修改MAC和SN的办法,苦于无解啊

9 r3 o: t& n$ I6 _/ O源代码有,可惜不会编译。
 楼主| 发表于 2012-3-21 23:00:54 | 显示全部楼层
本帖最后由 0522 于 2012-3-21 23:04 编辑 9 @% v2 I) x1 a

9 D3 l  b5 D. D% Z修改的代码早有了。到今天不会编译。
! ~9 e7 c! ]; E' r* ]0 [; @需要    交叉开发工具 cross-compiler-armv5l.tar.bz2
  1. #include <fcntl.h>
    1 g9 `3 D. b! ]& b: m, v% [$ l
  2. #include <malloc.h>2 d1 A5 J7 z4 o
  3. #include <sys/types.h>
    , i8 d1 r0 n) t9 K! q4 O
  4. #include <sys/stat.h>  B4 S$ ^7 G0 Q6 ?! g: Y
  5. #include <sys/ioctl.h>
    2 H% N" Q: N/ O, i( k6 S- ~9 Q
  6. #include <stdio.h>
    / _/ u, V+ [) `) B/ [2 _
  7. #include <string.h>0 J3 T  X. ^" J) B! ?" A- R

  8. 8 }! |. z. E- `6 B( O9 z$ y
  9. typedef struct {" f2 G, W: _! Y* `5 q' C! g: K! C: I
  10.         unsigned int        e2prom_cmd_sub_addr;
    + B0 `0 p; ?* _/ p& K1 t/ x
  11.         unsigned int        sub_addr_count;
    : E  _4 z8 \# l* Y
  12.         unsigned char*        e2prom_cmd_data;" x& K" F5 @$ {2 h3 {5 ?4 C
  13.         unsigned int        data_count;
    0 ^0 O* u3 i2 ?4 b" B4 b
  14. } e2prom_s_cmd;
    ! j  V; k7 Z; [! G( }! x
  15. 4 F, Q* u! S$ |8 g2 f, Y+ i
  16. #define E2PROM_CMD_READ 1
    ' \0 X' k4 @+ }& h- R% J
  17. #define E2PROM_CMD_WRITE 2& c. M" m4 \8 d4 `* C7 a
  18. #define E2PROM_DEVICE "/dev/misc/e2prom_24lc16") h# E) H% m. u* A2 r5 J* @/ P

  19. % m0 b& N8 w6 \3 J7 q0 ]  Q
  20. static int readparam(unsigned char *mac, unsigned char *stbid)
    * H! S+ v4 F; j- u% Q
  21. {5 V  B7 u6 B$ Y! A5 a; g* ^9 n8 ~  R
  22.         int fd, ret;  }4 i5 ~+ p4 z7 a( B! ]& i+ v* E$ v
  23.         e2prom_s_cmd arg;
    % {. [5 e9 |; v! Z
  24.         unsigned char buf[0x18];/ t: P; m  [  I4 r/ V
  25. ) h: E  D  v2 H& f
  26.         fd = open(E2PROM_DEVICE, O_RDWR);
      _* {- m( N2 H" y4 P  l# S+ |
  27.         if (fd  < 0) {
    ) w! l. P# B; u0 i
  28.                 printf("Device %s open error.\n", E2PROM_DEVICE);
    . i3 T7 r4 Y( C
  29.                 return -1;$ W# P% V2 n6 H5 L0 G, G7 `
  30.         }+ ?/ ?8 s; M$ x; Z4 A
  31.         arg.sub_addr_count      = 2;
    ; D9 ^0 F/ o- {, o2 @' o
  32.         arg.data_count          = 0x18;. X7 Y6 Z% a" R1 B; V$ u0 r, ?
  33.         arg.e2prom_cmd_sub_addr = 0x290;; ?1 g" [$ P7 V; P5 ^/ r
  34.         arg.e2prom_cmd_data     = buf;% r. @& T# k; u# [' q) A
  35.         ret = ioctl(fd, E2PROM_CMD_READ, &arg);
    6 U4 x3 n* n0 ^) |7 n* h9 c( A
  36.         if (ret != 0) {1 C- s1 u. F* v! s+ D
  37.                 printf("Device %s read error.\n", E2PROM_DEVICE);
    8 J! M6 \* b  j: u( a3 Q: f
  38.                 return -1;
    3 B2 x( g! n& c0 T# b
  39.         }
    & e$ L, t' U$ W& T3 W
  40.         memcpy(mac, buf, 6);
    / K- K9 l) F: R, k2 s
  41.         memcpy(stbid, &buf[6], 18);' q/ `8 Z/ h. ^  t1 N1 D8 |3 Z
  42.         stbid[18] = '\0';- f# M/ ~* ?, {0 n+ C" d

  43. / f! @# G4 p: J* `
  44.         return 0;
    3 ^! \/ b3 Z: T4 r
  45. }
    2 a2 k2 X' ?, H. d& [. _7 r

  46. & U% ?; e$ U/ r- ~. \
  47. static int writeparam(unsigned char *mac, unsigned char *stbid)5 a* S4 K' g9 L7 }0 }/ P' L5 N8 C: N
  48. {
    1 q* J' x' ^' p* _: N
  49.         int fd, ret;
    0 d  R5 \: X, }0 U+ \
  50.         e2prom_s_cmd arg;
    % n8 y! _6 }  l
  51.         unsigned char buf[0x18];3 T9 e1 S: Q" c7 l8 G

  52. & _) g% H) V( ~3 M
  53.         memcpy(buf, mac, 6);& r. i- N6 I5 K& T9 u! }0 i9 T) u
  54.         memcpy(&buf[6], stbid, 18);3 R" z! r' q0 Z. Q0 |9 A( Y
  55.         fd = open(E2PROM_DEVICE, O_RDWR);4 {" P! D8 Y$ b, P: \9 L
  56.         if (fd  < 0) {
    ' P7 v# P  p* D4 I  U& W
  57.                 printf("Device %s open error.\n", E2PROM_DEVICE);
    . d8 T% h* X1 e  c6 p
  58.                 return -1;
    & |" i- O! p3 `
  59.         }
    $ W# I0 H7 ]% F4 m4 H
  60.         arg.sub_addr_count      = 2;, J  q7 c" @; m. }! K8 X
  61.         arg.data_count          = 0x18;
    5 h' _. c+ U, E% N+ G
  62.         arg.e2prom_cmd_sub_addr = 0x290;
    ' z5 K. l4 a/ z5 L: V' ~
  63.         arg.e2prom_cmd_data     = buf;
    7 S* ~# F6 [' J" Q: h, e3 Y
  64.         ret = ioctl(fd, E2PROM_CMD_WRITE, &arg);
    8 |' o' w; H, B% c
  65.         if (ret != 0) {
    / e, Z- I1 ?- s! `4 A& v
  66.                 printf("Device %s write error.\n", E2PROM_DEVICE);9 r9 c3 p5 D0 a0 i' L7 z0 l
  67.                 return -1;2 x; k; O3 _- x) R) W
  68.         }8 d2 c: C1 \7 y' f4 x  R. `* _

  69. ) b# G9 t1 z5 g3 B' a
  70.         return 0;" ^$ O% F. Z: @0 Q/ f# ]$ F3 k
  71. }
    % h% l8 A0 ^+ ~; j- C
  72. 3 M: D* h; ]( }' I" W( t. y
  73. int main()
    ; k" P) _4 ^' g1 u) X
  74. {
    6 @! k+ ]/ D) k5 n
  75.         char c;5 }. w. i7 B  o$ ]+ f0 x, @
  76.         int i, macs[6];
    ; _" z& }5 O) m* O. U
  77.         unsigned char mac[6];
    * J& A% u7 c: I& C# }5 I
  78.         unsigned char stbid[256];
    4 v' B% j0 d+ W3 R# l7 c! a

  79. , _5 U+ g+ W) O$ \- [6 K
  80.         if (readparam(mac, stbid) < 0)
    ; r) a- E0 @: h1 R* F% f4 f1 D* `
  81.                 return 1;( w6 l. j6 Z0 X; {; l, u5 b7 m8 p6 y$ ]

  82. , e+ V+ m: P( ?  Y/ w3 k
  83.         printf("Current parameters: \n");
    5 t. z- F  q9 V
  84.         printf("  MAC: %02x:%02x:%02x:%02x:%02x:%02x\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
    % k9 f0 E/ A& ?( Y
  85.         printf("  STBID: %s\n", stbid);1 p. c0 h. X" h' L: f) w5 |
  86.        
    ) f0 W9 z) u7 m! W" l: r
  87.         printf("\nPlease input new MAC (1a:2b:3c:4d:5e:6f): ");
    & ^. i3 N# Q* h" z  l
  88.         if (scanf("%02x:%02x:%02x:%02x:%02x:%02x", &macs[0], &macs[1], &macs[2], &macs[3], &macs[4], &macs[5]) != 6) {1 S% p, C: U. O$ J
  89.                 printf("Input MAC error\n");
    ' q9 S* @9 e: A( S1 h' M; q( e6 j7 z
  90.                 return 1;7 p+ H1 L6 p1 X# _, N7 z
  91.         }
    " M' l$ `$ g1 w$ x& D
  92.         for (i=0; i<6; i++)mac[i] = macs[i];0 k! f; f: G1 n1 E# N/ M# Q
  93.         printf("\nPlease input new STBID: ");
    3 m6 ?3 [8 [& c: j
  94.         scanf("%s", stbid);7 ], |, I, G  h" U7 E
  95.         if (strlen(stbid) != 18) {( |* Q* {) E& v( p/ [1 ~
  96.                 printf("Invalid stbid\n");
    1 H) {5 {5 p- `
  97.                 return 1;
    " U& y' c" V6 C& l9 y. z
  98.         }  D9 k3 m# a' x" U$ v& f. `0 N, k# d
  99.         printf("\nNew parameters: \n");
    3 x9 e5 V3 S: V$ `' p* l
  100.         printf("  MAC: %02x:%02x:%02x:%02x:%02x:%02x\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);3 V1 N- S4 q/ B  d9 h2 e
  101.         printf("  STBID: %s\n", stbid);& g, ^8 r) V1 b: y9 j# Q* x" a
  102. 5 U% f/ q9 T& E# x9 v) t
  103.         printf("\nDo you want to change paramemters? (y/N) ");7 O7 g! c  \- f2 Y; I8 f
  104.         for (;;) {1 B$ S+ H( u5 J2 j. l0 J2 n
  105.                 c = getchar();
    . z5 `/ C. r& p1 z
  106.                 if (c == 'y' || c == 'Y')/ V7 f1 k  N* x/ N; p
  107.                         break;
    - M: f7 X' k9 O4 O1 ?, w
  108.                 if (c == 'n' || c == 'N') {
    6 r4 L4 P- g1 T8 d- d
  109.                         printf("\nAborted.\n");
    : \1 A: [0 M, q  Q
  110.                         return 1;
    : j! h/ {. G, j9 [
  111.                 }  r* A* M+ f" t, E
  112.         }
    * N2 w9 C$ c1 q1 \5 a" K& `5 R! j8 s
  113.         if (writeparam(mac, stbid) == 0) ) w9 {. Q+ E. n: _7 E$ \5 n
  114.                 printf("Parameters changed.\n");+ U+ g  ~: R1 F

  115. 0 N5 l3 l: O, m4 q4 ~1 ]; A
  116.         return 0;# r* l( D- d+ p0 E" x- x* e- J
  117. }
复制代码
 楼主| 发表于 2012-3-23 18:24:12 | 显示全部楼层
在ubuntu 下,释放cross-compiler-armv5l.tar.bz2文件,编译fix1308.c通过。可以修改EC1308了。
发表于 2012-5-11 11:20:03 | 显示全部楼层
0522 发表于 2012-3-23 18:24 + t; j7 j0 R) k) Z7 ?% @3 U6 D
在ubuntu 下,释放cross-compiler-armv5l.tar.bz2文件,编译fix1308.c通过。可以修改EC1308了。

) s) N  T* o# _( W你用的编译命令行格式是什么?4 k2 t  s, j" _
发表于 2012-5-26 19:45:12 | 显示全部楼层
已经编译出修改文件,并且修改成功
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|小黑屋|宽带技术网 |网站地图 粤公网安备44152102000001号

GMT+8, 2026-2-7 11:43 , Processed in 0.024795 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表