断点

Eclipse 的断点使用(引用)

浪尽此生 提交于 2019-12-25 03:27:59
详解Eclipse断点(引用 http://www.blogjava.net/jiangshachina/archive/2011/11/20/364367.html) 大家肯定都用过Eclipse的调试的功能,在调试的过程中自然也无法避免要使用断点(breakpoint),但不知是否对Eclipse中各类断点都有所了解。本篇图文并茂地介绍了Eclipse中全部类型的断点,及其设置,希望对大家有所帮助。(2011.11.20) 1. 示例程序 BreakpointDemo是一个臆造的应用程序,只是为了便于讲解Eclipse中各类断点的使用罢了。其代码如下图所示, BreakpointDemo主要包含两个方法: [1]setValue,该方法根据指定的次数(count),对成员变量value进行赋值,值的范围为0-9的随机整数。 [2]printValue,该方法会调用setValue()对value进行赋值,并打印出value的值;但,如果value能被3整除,那么就会抛出IllegalArgumentException异常。 2. Line Breakpoint Line Breakpoin是最简单的Eclipse断点,只要双击某行代码对应的左侧栏,就对该行设置上断点。此处,对第20行代码设置上Line Breakpoint,如下图所示, 可以为Line

GDB调试器用法

一曲冷凌霜 提交于 2019-12-24 21:43:05
转自: http://21cnbao.blog.51cto.com/109393/223565 gdb调试器用法 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序。 让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式。 当程序被停住时,可以检查此时程序中所发生的事,并追索上文。 动态地改变程序的执行环境。 不管是调试Linux内核空间的驱动还是调试用户空间的应用程序,掌握gdb的用法都是必须。而且,调试内核和调试应用程序时使用的gdb命令是完全相同的,下面以代码清单22.2的应用程序为例演示gdb调试器的用法。 1 int add ( int a , int b ) 2 { 3 return a + b ; 4 } 5 6 main () 7 { 8 int sum [ 10 ] = 9 { 10 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 11 } ; 12 int i ; 13 14 int array1 [ 10 ] = 15 { 16 48 , 56 , 77 , 33 , 33 , 11 , 226 , 544 , 78 , 90 17 }; 18 int array2 [ 10 ] = 19 { 20 85 ,

OllyDbg笔记-软件逆向调试技巧

穿精又带淫゛_ 提交于 2019-12-23 08:24:21
在某些收费软件中,有些是通过注册表,来判断是不是使用到期,或者次数到了。 OllyDBG从原理上来区分,有两种不同的断点:软件断点和硬件断点。 软件断点就是常说的F12。 而硬件断点它们只用于调试:用于调试,我们称为调试寄存器:Dr0~Dr7 其中Dr0~Dr3四个寄存器用来存放中断地址,Dr4、Dr5保留不使用,Dr6、Dr7用来记录Dr0~Dr3的属性(如读,写还是执行,单位是字节,字还是双字)。 所以只有4个硬件断点; 下面来找个软件来试试手: 如下这个硬件断点只有4个,这个硬件断点可以在系统领域中下。 目前004这个是在exe里面的。 在系统领域下按F2,会使用这个硬件端点,也可以使用 下面进入dll中了。开始进入到系统领域: 此处就是关键了。对比eax是不是为1,如果是是就跳转。下面改成这样的: 这样开头的那个就破解了! 下面是结尾的这个广告: 这里弹出这个窗口后,暂停下,然后按下K 从中: 可以看到只有一个用户态的 直接将其废掉。 保持后,即可 这里是暴力破解,还有个思路!!! 特别针对这些给次数的。!!!! 在每一个跳转的地方,进行记录,看看那个试用阶段和不让进入阶段,那个地方不一样。 然后再强制跳转,通过这样的方式,也是很好的办法。 来源: CSDN 作者: IT1995 链接: https://blog.csdn.net/qq78442761/article

《信息安全系统设计基础》第2周学习总结

寵の児 提交于 2019-12-23 04:38:14
20145336张子扬 《信息安全系统设计基础》第2周学习总结 教材学习内容总结 学习目标 熟悉Linux系统下的开发环境 熟悉vi的基本操作 熟悉gcc编译器的基本原理 熟练使用gcc编译器的常用选项 5 .熟练使用gdb调试技术 熟悉makefile基本原理及语法规范 掌握静态库和动态库的生成 vim 命令行模式 (command mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。 插入模式(Insert mode):只有在 Insert mode 下,才可以做文字输入,按「ESC」键可回到命令行模式。 vim相关快捷键 k、j、h、l 功能分别上、下、左、右 w 在指定行内右移光标,到下一个字的开头 e 在指定行内右移光标,到一个字的末尾 b 在指定行内左移光标,到前一个字的开头 0 数字0,左移光标,到本行的开头 G 光标移动到文章的最后 M 将光标移到屏幕的中间(Middle) L 将光标移到屏幕的最下行(Lowest) H 将光标移到屏幕的最上行(Highest) nH 将光标移到屏幕的第 n 行(如 2H: 将光标移到屏幕的第 2 行) nL 将光标移到屏幕的倒数第 n 行(如 3L:将光标移到屏幕的倒数第 3 行) nG 光标移动到文章的第 n行(如8G:移动到文章的第 8行) x

java基础 之 Debug

旧巷老猫 提交于 2019-12-23 02:19:40
Debug调试程序 可以让代码逐行执行,查看代码执行的过程,调试程序中出现的Bug。 使用方式 在行号的右边,鼠标单击,添加断点(每个方法的第一行,哪里有bug添加到哪里) 右键选择Debug执行程序 程序就会停留在添加的第一个断点处 执行程序 f8:逐行执行程序 f7:进入到方法中 shift+f8:跳出方法 f9:跳到下一个断点,如果没有下一个断点,就结束程序。 来源: CSDN 作者: IT喳喳喳喳 链接: https://blog.csdn.net/fanjingchen/article/details/103655162

Oracle中的SAVEPOINT

自古美人都是妖i 提交于 2019-12-22 17:20:29
学习存储过程中使用断点回滚事务时,发现目前网络上存在一个问题,那就是使用断点回滚后,都忘记了一个很重要的事情,提交事务。虽然使用了断点回滚,但是断点回滚不像rollBack或commit一样结束当前事务,而使用断点回滚只会回滚到声明断点的地方,之前的产生的事务仍需要提交的,如果不提交,事务一直在数据库中缓存. 保存点(SAVEPOINT)是事务处理过程中的一个标志,与回滚命令(ROLLBACK)结合使用,主要的用途是允许用户将某一段处理回滚而不必回滚整个事务。 如果定义了多个savepoint,当指定回滚到某个savepoint时,那么回滚操作将回滚这个savepoint后面的所有操作(即使后面可能标记了N个savepoint)。 例如,在一段处理中定义了五个savepoint,从第三个savepoint回滚,后面的第四、第五个标记的操作都将被回滚,如果不使用ROLLBACK TO savepoint_name而使用ROLLBACK,将会滚整个事务处理。 一旦执行了rollback那么savepoint的操作都将撤消,当然最后一定执行一次commit,否则所有的操作都是在缓存中进行的,不会真正的写入数据库中。 --起一个名字为A的savepoion savepoint A(这个A是savepoint的名字) --跳转到savepoint A处 rollback to A

再脱ACProctect——代码偷取

a 夏天 提交于 2019-12-20 20:47:29
0x00 查壳 0x02脱壳 用OD打开程序准备脱壳 看到pushad,自然而然想到先用ESP定律尝试一下,发现行不通,下了ESP硬件断点之后程序直接运行起来了,那就换另一种方法: 首先在data段下软件断点,F9执行程序,断下来: 之后在text段,下断点,再让程序跑起来(F9) 断点命中: 可以看到,在这里命中一次断点,同时注意到两次pushad,比较可疑(怀疑是代码偷取的部分,记录这段代码 ),之后再运行一次,断点命中: 再一次命中断点的时候,就已经到达OEP了,但是我们要注意一下,这个OEP处的代码,在最开始的查壳信息的时候,可以看到一些链接器的基本信息,根据我们的经验(经验之谈),一般的OEP处的代码,应该 在push ebp 之类的,但是,这里直接push esi 感觉有点可疑,(也可以直接在这里dump尝试一下,会不会报错,感觉会报错),我们之前找到疑似偷取代码的地方,直接将该段代码 复制过来,修改一下EIP,进行dump 修改之后,在新的EIP的地方进行dump,会发现产生报错信息: 目前的情况就是 ,用内存镜像法可以找到OEP也可以找到被偷取的数据,但是没有办法dump下来脱壳,所以还是需要换方法,但是有这个过程也积攒了经验,接下来我们再试一下用异常的办法进行处理一下:(在第二次下断点的时候使用内存断点也解决不了这个问题,不太清楚是什么原因) 异常处理方法

fiddler设置断点

自作多情 提交于 2019-12-20 10:11:31
Fiddler抓包【3】_设置断点修改 1、 断点修改Request 1.1、Request全部中断 设置中断:Rules---> Automatic Breakpoints--->Before Requests 取消中断:Rules---> Automatic Breakpoints--->Disabled 点击下发红色箭头的位置进行中断切换; 例1:打开 http://news.baidu.com/--- >设置请求断点--->清空fillder抓包数据--->不输入任何关键字,点击 http://news.baidu.com/ 页面中“百度一下”--->在fiddler中设置“value=巧吧软件测试”--->点击“Run to Completion” --->点击“Go” --->结果:“value=巧吧软件测试”; Inspectors界面:Break on Response:发送请求,在响应数据回到Fiddler时再次中断;Run to Completion:单条运行修改后的请求; 1.2、Request特定网站中断 特定网站中断设置:快速命令行输入“bpu www.baidu.com+Enter”,只会中断www.baidu.com; 特定网站中断取消:快速命令行输入“bpu+Enter”; 2、断点修改Response 2.1、Response全部中断 设置中断

Pulsar Reader 例子

*爱你&永不变心* 提交于 2019-12-20 08:24:08
使用 reader 接口, Pulsar客户可以在主题中“手动定位”自己,从指定的消息开始向前读取所有消息 下面是一个示例: import org.apache.pulsar.client.api.Message; import org.apache.pulsar.client.api.MessageId; import org.apache.pulsar.client.api.PulsarClient; import org.apache.pulsar.client.api.Reader; import org.apache.pulsar.client.impl.schema.JSONSchema; public class ReaderTest{ public static void main(String[] args) { String url = "http://192.168.1.48:8080"; try{ PulsarClient client =PulsarClient.builder() .serviceUrl(url) .build(); Reader<UserModel> reader=client.newReader(JSONSchema.of(UserModel.class)) .topic("my-tenant/my-namespace