小编nux*_*nux的帖子

x86_64中运行时代码替换的绝对寻址

我目前正在使用32位代码替换方案,其中代码移动到另一个位置,读取变量和类指针.由于x86_64不支持绝对寻址,因此无法在代码的新位置获取变量的正确地址.问题在于,由于rip相对寻址,指令指针地址与编译时不同.

那么有没有办法在x86_64中使用绝对寻址或以其他方式获取变量的地址而非指令指针相对?

类似的东西:leaq variable(%%rax), %%rbx也会有所帮助.我只想依赖指令指针.

64-bit assembly gcc x86-64 addressing

9
推荐指数
1
解决办法
2073
查看次数

在java中实例化泛型类型

我被卡住了.来自C++,我认为这只会起作用,但事实并非如此.你能给我一个建议吗?我会尝试不会在每个用于T的类中使用某种创建方法.

public class A<T>{

    private T t_;

    public A(){
        t_ = new T(); //error
    }

}  
Run Code Online (Sandbox Code Playgroud)

另外我不想让构造函数看起来像:A(Class classT){...理想情况下我希望有类似这个c ++代码的东西.

template<class T>
class A{
private:
   T t_;

public:
   A(){}

};
Run Code Online (Sandbox Code Playgroud)

感谢帮助.

java generics templates object instantiation

7
推荐指数
3
解决办法
1551
查看次数

使用Bouncycastle与PSK建立TLS连接

我必须使用预共享密钥建立到远程服务器的TLS连接.我目前正在使用Bouncycastle的PSKTlsClient.我的初始化代码如下:

 socket_ = new Socket(address,port);            
 tlsHandler_ = new TlsProtocolHandler(socket_.getInputStream(),socket_.getOutputStream());           
 pskTlsClient_ = new PSKTlsClient(tlsPskInfo_);            
 tlsHandler_.connect(pskTlsClient_);
Run Code Online (Sandbox Code Playgroud)

但是我得到这个堆栈跟踪:

java.io.IOException: Internal TLS error, this could be an attack
at org.bouncycastle.crypto.tls.TlsProtocolHandler.failWithError(Unknown Source)
at org.bouncycastle.crypto.tls.TlsProtocolHandler.safeReadData(Unknown Source)
at org.bouncycastle.crypto.tls.TlsProtocolHandler.connect(Unknown Source)
at common.network.Transport.PskTlsClientSocket.connect(PskTlsClientSocket.java:61)
Run Code Online (Sandbox Code Playgroud)

我还在消息中获得了TLS证书,其中传输了PSK,但我不知道如何建立这种连接.你有什么建议怎么办吗?

java sockets ssl cryptography bouncycastle

3
推荐指数
1
解决办法
6309
查看次数