ikeeper爱克吧上网卡现在早已退出了历史舞台,不过对于学习,把当时分析的爱克吧上网卡磁条信息算法归纳整理一下,算做温故而知新吧!本文属原创,百脑问bnwin.com首发!
ikeeper爱克吧是什么?
【Ikeeper计费管理系统】是重庆智多信息发展有限公司继【实名上网管理系统】后全新开发的计费管理版本。主要用于网吧,学校及各种收费机房的管理,是一款真正全方位从各网吧老板及各种营业性收费机房业主经营管理角度出发,设计体贴入微的经营管理软件。经过我公司不断的升级完善,目前已经得到了广大用户广泛认可。在重庆地区拥有百分之九十以上的市场占有率,目前公司正在积极拓展四川、海南、内蒙等市场并取得了巨大的成就,充分显示了【Ikeeper计费管理系统】与其他同类产品比较所具备的明显技术优势。
简而言之爱克吧就是公安网监强制要求网吧安装的网吧安全及计费实名管理系统!
上网卡是什么?
上网卡是爱克吧系统为实现实名制而采用的一种磁卡,上网卡根据身份证信息注册后使用,和银行的磁卡形状及使用方法一样!上网卡有10位数字(如0231466248),但磁条信息并不是只记录了10位数字,而是这种;200329902314662482=500999000113801? 记录了相关信息。
看看上网卡的实物
上网卡磁条信息算法解析
本文本着学习的思想,当前已经不能使用上网卡,所以发布上网卡磁条信息算法,仅供学习使用,费话不多说,下面入正题,正式分析上网卡磁条信息内容:
先设置一个常量
常量表
493806291608186256487098521453479841593425669412557213331214712906201512413249919383758208612080780228491236189833979289217766495864839471398976449709001708631663736696479153718969090756731903064662430102993165969185690184619921373013471
然后我们举一个例,如上网卡号 7474747474
磁条信息为
;200391774747474742=500999000151993?
分解为
;200 3917 7474747474 2 =5009990001 51993 ?
1234 5 67890 算法及分析此1-10位的算法
而;200 =5009990001和末尾的?为常量,无需要计算。中间为卡号也无需计算,需要计算的就是上图标识的1-10位的数的由来
以下是上网卡磁条信息的delphi的源代码
1 | function getnumtotal(firstnum:Integer;jsstring:string;ys:Boolean):Integer; //字符串acsii相加减 |
1 | 0058C14B . 8D55 9C lea edx, [ebp-64] |
15=200 0847 A 5=5009990001 89124
常量表
493806291608186256487098521453479841593425669412557213331214712906201512413249919383758208612080780228491236189833979289217766495864839471398976449709001708631663736696479153718969090756731903064662430102993165969185690184619921373013471
例 ;200 3917 7474747474 2 =5009990001 51993?
1234 5 67890
;200
(35+74747474745009990001)(0C-74747474745009990001) MOD D7=4DF4 mod d7=18788 mod D7=53——-[ebp-$68]——->3
53 shl 2=14C (14c+14c*2) MOD 93=3E4 MOD 93=72—————————————-[ebp-$6C]———–>9
4 (72+53)=C5 shl 3=628 MOD DA=32———————————————————-[ebp-$70]————>7
7 53 shl 5=A60 (A60+32)*20(常量) MOD DA=2E———————————————-[ebp-$74]————->1
8 53 shl 5=A60 ((A60+53)+2E)*21(常量) mod DA=7F—————————————–[ebp-$78]————->9
9 ((53 shl 5)+53+53+7F)*22(常量) MOD Da=CC ————————————————[ebp-$7C]——————->9
- (7+7474790001)=0E+53=61左移三位 (308-0E-53=2A7) mod 93=5B——————————[ebp-$80]————–>1
10 (11-4747450099)=00+53=53左移三位 (298-00-53=245+(245左移两位914))=B59 mod 93=70——-[ebp+$FFFFFF7C]——->3
5 (53-;=20039177474747474=5E)+(=5009990001)=9C-(最后四位即7+8+9+10位)1993=C6+53=119左移三位 8C8+119=9E1 9E1+9E1+119=14DB MOD 93=2F—>2
开始拼凑前面的部分 [ebp+$FFFFFF78]
6 [(53+;=200391774747474742=5009990001=B8)-(最后四位即7+8+9+10位)1993]=E2+53=135左移5位 26A0-135=256B Mod 93=18—-[ebp+$FFFFFF74]–>5