-
-
[原创]网络验证的封包下断
-
发表于:
2013-5-4 23:41
6988
-
问题1:有啥指令断点
……bp send(socket ,bind ,listen ,accept ,AcceptEx ,WSAAccept ,connect ,send ,WSASend ,recv ,WSARecv ,WSARecvEx ,closesocket)
问题2:断点是断在哪个位置
………发包CALL函数的位置
问题3:怎样才能找到捡物CALL函数?
…………查看:堆栈(或者CTRL+F9)
问题4:执行过程是怎么样的?
…………程序环境函数CALL执行完后……》捡物CALL的函数执行完后……》接着执行发包CALL函数
高级语言中的变量或函数名,在反汇编里是以16进制存在(了解即可)
一个如果函数CALL有返回值,那么其值是保存在EAX里的。
同时在堆栈里也会保存一份。
补充:在OD里面读取地址用DD XXXXXX
……——在OD里读取真正的内存数据用DU XXXXXX
一般用DD可用于读取堆栈地址指向的内存地址,再用DU把指向的内存地址读出来。
断点过虑(当封包>60才断下)
bp send ecx>60
找发送网络句柄:1.OD里BP SEND下断后,可以看到句柄和SEND的断点位置,,
2.再用ce查看存放此数据的地址,
CE里查看反汇编码,找断点位置,在断点位上一行参数
切换断点可以看到EAX里的网络句柄
3.重新登录游戏,重复上第二步,过虑来确认要找的存放地址
找封包:OD下断后,在K堆栈里可以看到封包地址
找SEND函数地址:OD下断后,可以在K堆栈里可能直接可以看到,也可能看到的是指针[XXXXX],我们可以在命令框里输入“DD XXXXX”就可以看到了,
或用CE里用看内在数据里可以查找到。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)