attach: handshake failed

attach:handshake failed - received >GET / HTTP/1.1< - expected>JDWP-Handshake<

场景

协助技术同学调试了一个关于jdwp端口与http服务端口的问题,刚开始收到服务调用的同学说我们预上线服务有问题直接拒绝服务,查服务log发现一堆Debuggerfailed to attach JDWP-Handshake的信息,查服务配置的确开启了jdwp,但jdwp正常是不会影响正常业务服务的,直接与调用方确认服务端口,问题解决。

直接通过http协议访问应用的jdwp服务,产生如下日志:

 

jdb命令行

  • jdb -attach 10.20.0.15:8899
  • threads,
  • stop at/in,
  • step
  • locals
  • dump
  • classpath
  • where/wherei

示例

计算机生成了可选文字:> stw at org.ybygjy.hessian.service. . : 23 Φ : 5—23 bci4 catalina-7002 catalina-7002 -1[1] -1[1] .getlJserDetail(), 5—25 bci—8

 

计算机生成了可选文字:cataliru-7ØØ2-1C1] wherei [2] [3] C5J [8] [9] org.ybygjy.hessian.service.i.l.UserServiceÄ.getUserDetai1 (UserServiceÄ.java:26), pc - 33 sun. sun. invoke pc — 87 sun. reflect. invoke .java:43), pc java. lang. invoke pc — 57 org. pc org. invokeJoivoint org. org. invoke CIO org. [11] org. pc — [12] sun.proxy. SProxy8.getUserDetai1 (null), pc — 16

 

计算机生成了可选文字:catal ί ηα userlnfo catal ί ηα -7002-1[1] locals — instance of -7002-1[1] lock : instance of catalina-7002-1[1]

 

资料

http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html#options

 

, int state, int x, int y) { if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) { cout << "Left button pressed at (" << x << ", " << y << ")" << endl; } } //响应键盘事件 这个错误通常是由于Frida Server和Frida Client之间通信时出现问题导致的。void keyboard(unsigned char key, int x, int y) { if (key == 'q' || key == 'Q') { 具体而言,它可能是因为Frida Server或Frida Client崩溃,或者网络连接中断等 exit(0); } } //初始化OpenGL void init() { glClearColor(0.0f, 0.0原因导致的。 以下是一些可能导致这个错误的情况,以及如何解决它们: f, 0.0f, 1.0f); glEnable(GL_DEPTH_TEST); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowSize1. 检查Frida Server和Frida Client的版本是否匹配。如果它们的版本不匹配,可能(640, 480); glutCreateWindow("Interactive Cube"); glutDisplayFunc(display); glutMouseFunc(mouse); glut会导致意外的行为,包括连接失败和通信错误。你可以通过运行`frida --version`KeyboardFunc(keyboard); init(); glutMainLoop(); return 0; } ``` 在代码中,我们首先定义命令来检查Frida的版本。 2. 检查Frida Server是否已经启动。如果Frida了正方体和文字的位置和颜色,以及姓名和学号。然后,在`drawCube()`函数中绘 Server未启动,Frida Client将无法连接。你可以使用`frida-ps -U`命令来查看制了一个彩色的正方体,其中每个面的颜色不同。在`drawText()`函数中,我们当前运行的应用程序进程,并使用`frida -U <process_name>`命令来启动Frida Server使用OpenGL提供的`glutStrokeString()`函数绘制文字,这里我们使用了字体`GLUT_STROKE_ROM。 3. 检查Frida Server和Frida Client之间的网络连接是否正常。如果网络连接不稳定AN`,文字颜色为白色。 我们使用`gluLookAt()`函数设置了摄像机的位置和朝向,使得正方体位于屏幕中央。在`display()`函数中,我们调用`drawCube()`和`或中断,可能会导致连接失败和通信错误。你可以尝试使用其他应用程序测试网络连接是否正drawText()`函数分别绘制正方体和文字。 对于交互,我们定义了两个回调函数`mouse常。 4. 检查Frida Server和Frida Client是否有足够的权限。如果Frida Server或F()`和`keyboard()`。`mouse()`函数响应鼠标事件,当用户按下鼠标左键时,会输出鼠rida Client没有足够的权限,可能会导致连接失败和通信错误。你可以尝试使用`sudo`或标的坐标。`keyboard()`函数响应键盘事件,当用户按下键盘上的`q`键时,会退出程序。 最后,在`main()`函数中,我们初始化OpenGL,并注册窗口的显示、鼠标和键盘者更改权限来解决权限问题。 如果你遇到了这个错误,可以尝试检查以上情况,并提事件处理函数,最后进入事件循环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值