小编use*_*230的帖子

Python arp嗅探原始套接字没有回复数据包

为了更好地理解网络概念并提高我的python技能,我试图用python实现一个数据包嗅探器.我刚开始学习python,所以代码当然可以优化;)

我已经实现了一个数据包嗅探器,它解压缩以太网帧和arp头.我想用原始套接字制作它,因为我想了解这些标题中的每个字节,所以请不要scapy帮助:)

问题是,我不会得到任何arp回复数据包.它始终是操作码1和我

这是我的源代码:

import socket
import struct
import binascii

rawSocket = socket.socket(socket.PF_PACKET, socket.SOCK_RAW, socket.htons(0x0806))

while True:

    packet = rawSocket.recvfrom(2048)

    ethernet_header = packet[0][0:14]
    ethernet_detailed = struct.unpack("!6s6s2s", ethernet_header)

    arp_header = packet[0][14:42]
    arp_detailed = struct.unpack("2s2s1s1s2s6s4s6s4s", arp_header)

    print "****************_ETHERNET_FRAME_****************"
    print "Dest MAC:        ", binascii.hexlify(ethernet_detailed[0])
    print "Source MAC:      ", binascii.hexlify(ethernet_detailed[1])
    print "Type:            ", binascii.hexlify(ethernet_detailed[2])
    print "************************************************"
    print "******************_ARP_HEADER_******************"
    print "Hardware type:   ", binascii.hexlify(arp_detailed[0])
    print "Protocol type:   ", binascii.hexlify(arp_detailed[1])
    print "Hardware size:   ", binascii.hexlify(arp_detailed[2])
    print "Protocol size:   ", binascii.hexlify(arp_detailed[3])
    print "Opcode:          ", binascii.hexlify(arp_detailed[4])
    print "Source …
Run Code Online (Sandbox Code Playgroud)

python sniffer arp

14
推荐指数
1
解决办法
1万
查看次数

方形okHTTP证书固定 - sslSocketFactory错误

我正在尝试导入我自己的BKS文件,其中包含我的自签名证书,但我遇到了okHTTP的问题.我想用bks文件做这个,我也通过sha512 /得到它.

我从几个教程中得到了这个代码,我知道问题在于,但无法修复它.

import android.content.Context;
import android.util.Log;

import java.io.InputStream;
import java.security.KeyStore;

import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManagerFactory;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class Pinning
{
    Context context;
    public static String TRUST_STORE_PASSWORD = "your_secret";
    private static final String ENDPOINT = "https://api.yourdomain.com/";

public Pinning(Context c) {
    this.context = c;
}

private SSLSocketFactory getPinnedCertSslSocketFactory(Context context) {
    try {
        KeyStore trusted = KeyStore.getInstance("BKS");
        InputStream in = context.getResources().openRawResource(R.raw.mytruststore);
        trusted.load(in, "mypass".toCharArray());
        SSLContext sslContext = SSLContext.getInstance("TLS");
        TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(
                TrustManagerFactory.getDefaultAlgorithm());
        trustManagerFactory.init(trusted);
        sslContext.init(null, trustManagerFactory.getTrustManagers(), null); …
Run Code Online (Sandbox Code Playgroud)

android client-certificates pinning sslsocketfactory okhttp3

5
推荐指数
1
解决办法
1184
查看次数

GDB在内存中找到值

我在gdb中使用find命令时遇到问题.我想要做的是,在进程的内存中找到特定值,例如(964).我已经成功了,但我的解决方案需要很长时间!

我做了什么:

cat /proc/16617/maps
Run Code Online (Sandbox Code Playgroud)

比得到libc_malloc部分,我知道值是在那些.

7e43c000-7e451000 rw-p 00000000 00:00 0          [anon:libc_malloc]
7e452000-7e45b000 rw-p 00000000 00:00 0          [anon:libc_malloc]
7e470000-7e47c000 rw-p 00000000 00:00 0          [anon:libc_malloc]
7e47d000-7e490000 rw-p 00000000 00:00 0          [anon:libc_malloc]
7e4cc000-7e4dc000 rw-p 00000000 00:00 0          [anon:libc_malloc]
Run Code Online (Sandbox Code Playgroud)

我可以使用examine命令来调查每个值.这个工作正在进行,但需要花费很多时间.我想gdb中的find命令可以更快地执行此操作.

0x78b0e070: 0   829055599   57  59
0x78b0e080: 2   2024857820  2024857860  2024857900
0x78b0e090: 1970810756  4587520 71  0
0x78b0e0a0: 0   2024857756  2024857756  0
0x78b0e0b0: 0   27  1970675312  1
0x78b0e0c0: 1   2024857728  0   43
0x78b0e0d0: 23  23  0   1936029041
Run Code Online (Sandbox Code Playgroud)

由于几次运行,地址不匹配,但它正在工作:)

x/dw 0x78B0E19c    --> Result 964
Run Code Online (Sandbox Code Playgroud)

我的find命令是这样的:

find 0x419a1000, …
Run Code Online (Sandbox Code Playgroud)

memory int search gdb find

5
推荐指数
0
解决办法
1447
查看次数

按下 Android 自定义键盘更改背景颜色键

我遇到了一个问题,直到现在还找不到解决方案!我已经实现了一个带有多个键的自定义键盘。每个键都有一个背景图像。我想更改按键本身的背景颜色,如下面的原始键盘所示:

在此处输入图片说明

我不想预览,我想在按下键时更改键本身的背景颜色。这是我的文件:

键盘文件

<?xml version="1.0" encoding="UTF-8"?>
<android.inputmethodservice.KeyboardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:keyPreviewOffset="10dp"
android:keyPreviewLayout ="@layout/preview"
android:keyTextColor="@color/colorAccent"
android:keyBackground="@drawable/keybackground"
android:background="#881f2023"
/>
Run Code Online (Sandbox Code Playgroud)

密钥背景.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:drawable="@drawable/cleanbuttonnormal" />
<item
    android:state_pressed="true"
    android:drawable="@drawable/cleandeactivate" />
<item
    android:state_checkable="true"
    android:drawable="@drawable/cleanbuttonnormal" />
<item
    android:state_checkable="true"
    android:state_pressed="true"
    android:drawable="@drawable/cleandeactivate" />
<item
    android:state_checkable="true"
    android:state_checked="true"
    android:drawable="@drawable/cleanbuttonnormal" />
<item
    android:state_checkable="true"
    android:state_checked="true"
    android:state_pressed="true"
    android:drawable="@drawable/keybackground" />
</selector>
Run Code Online (Sandbox Code Playgroud)

背景颜色将更改为我的可绘制对象,但是当我按下键时,它不会更改为按下 - 状态。背景保持不变。请你帮助我好吗?

这是我的自定义键盘布局,启用预览以显示按钮被点击。

在此处输入图片说明

带有 8 的黑色按钮应该变成黄色。预览用于调试目的。

keyboard android key pressed background-color

5
推荐指数
1
解决办法
3177
查看次数