2014年4月25日星期五

关于移动,爱游,联通三家运营商付费SDK的融合方案 - 诺亚行者

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
关于移动,爱游,联通三家运营商付费SDK的融合方案 - 诺亚行者  阅读原文»

第一次做付费SDK嵌入,所以如果有错误的地方请大家指出来。

付费SDK无非是这么两个流程:初始化》》付费。

初始化方面,虽然移动的SDK和其他两家有点不太一样,但也无妨,需要的东西都一样:都需要Context参数,附加应用AppID,AppKey。

而付费,则比较相似,都是通过传递payCode,Context作为参数。

因此,可以分离出一个借口:init,order

具体代码如下:

然后再分别实现三家运营商的SDK:

联通的:

爱游:

移动的,这个比较麻烦,只贴出核心代码,其他代码参考SDK demo:

然后是order的:

最后,在想要调用的activity中声明一个IConstructor,根据运营商进行选择初始化相关的运营商sdk,应该这么写:

---------------------

最后附上源码:

http://pan.baidu.com/s/1jGuUz6A


本文链接:关于移动,爱游,联通三家运营商付费SDK的融合方案,转载请注明。

基于ARP的局域网IP劫持――C语言实现 - 燕云  阅读原文»

我站在 烈烈风中

恨不能 荡尽绵绵心痛

望苍天 四方云动

剑在手

问天下谁是英雄

——《霸王别姬》

阅读这篇文章之前,请确认已经熟悉ARP报文伪造的方法,可参考《ARP数据包伪造》。

请看下图,这是全篇文章的鸟瞰:

要想实现上图的工作流程,必须实现两个模块:

•自由的伪造ARP报文

•抓取并分析所有流经网卡的数据包

从上图中可以看出,我们可以通过BPF或者DLPI层实现数据包的抓取分析,而tcpdump的根基——libpcap库,正是对BPF层的二次封装实现的C库,我们将通过它来实现数据包的抓取分析。

关于libpcap的基础使用,请参考这篇文章《libpcap使用》。

下面给出一个简单的libpcap过滤抓包的程序:

1 #include <pcap.h>
2 #include <time.h>
3 #include <stdlib.h>
4 #include <stdio.h>
5
6 unsigned char glTargetIP[4]={192,168,1,99};
7 char * glBpfCmd=" arp and dst host 192.168.1.99 and ether broadcast ";
8 unsigned char glRetargetMac[6]={ 0x00,0x11,0x11,0x22,0x22,0xff };
9 char * glNICStr="eth2";
10
11 void getPacket(u_char * arg, const struct pcap_pkthdr * pkthdr, const u_char * packet)
12 {
13 int * id = (int *)arg;
14 unsigned char * src_ip =glTargetIP;
15 unsigned char * src_mac=glRetargetMac;
16 unsigned char * dst_ip =packet+28;
17 unsigned char * dst_mac=packet+22;
18
19 printf("id: %d\n", ++(*id));
20 printf("Packet length: %d\n", pkthdr->len);
21 printf("Number of bytes: %d\n", pkthdr->caplen);
22 printf("Recieved time: %s", ctime((const time_t *)&pkthdr->ts.tv_sec));
23
24 int i;
25 for(i=0; i<pkthdr->len; ++i)
26 {
27 printf(" %02x", packet);
28 if( (i + 1) % 16 == 0 )
29 {
30 printf("\n");
31 }
32 }
33
34 printf("\n\n");
35 }
36
37 int main ()
38 {
39 char errBuf[PCAP_ERRBUF_SIZE], * devStr;
40 struct bpf_program filter;
41
42 /* get a device */
43 devStr = pcap_lookupdev(errBuf);
44
45 if(devStr)
46 {
47 printf("success: device: %s\n", devStr);
48 }
49 else
50 {
51 printf("error: %s\n", errBuf);
52 exit(

没有评论:

发表评论