首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

谁在调试我的代码?

加固软件主要做的两件事,对软件中关键代码的保护以及提高对软件逆向反编译的门槛。 那么软件安全性防护墙的第一道门那就是反调试。反调试技术又细分为静态反调试和动态反调试。...在x86环境下通过FS:[0x30]获取PEB的值; 在X64环境下通过GS:[0x60]获取PEB值; 当这个值等于0的情况下,表示没被调试,否则就处于调试状态。...这个字段在程序正常运行的情况下值默认为0,在被调试器调试的时候(如ollydbg动态调试),这个字段为0x70(注意:ollydbg附加状态下是没改变的)。...CloseHandle 检测 利用异常捕获机制,给CloseHandle函数一个无效的句柄作为输入参数,在程序在没有被调试时,将会返回一个错误代码;而程序被调试器调试时,将会触发一个EXCEPTION_INVALID_HANDLE...反调试只是一定情况下提高软件安全门槛,因为虽然有反调试方案,但同时也会有过掉反调试的方案。一般过掉反调试检测方案,通过将关键的反调试检测地方给 nop掉或者hook掉关键函数。

67331
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我写出这样干净的代码,老板直夸我

    代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;性能调至最优,省得引诱别人做没规矩的优化,搞出一堆混乱来。整洁的代码只做好一件事。...行动起来 下面这段话摘至《Clean Code》作者: ❝我写函数时,一开始都冗长而复杂。有太多缩进和嵌套循环。有过长的参数列表。名称是随意取的,也会有重复的代码。...最后,遵循本章列出的规则,我组装好这些函数我并不从一开始就按照规则写函数。我想没人做得到 ❞ 就像写作文一样,好的代码也不是一次性写出来的,需要反复琢磨。...这样比用swagger方便的多。而且其他程序员也可以测试该方法并了解其功能。 当然,测试代码也需要干净整洁。不易读懂,混乱的测试代码等同于没有测试。 类 类应该短小,建议不要超过500行。...逐步改进 系统需要要迭进,在迭进过程中生成干净整洁的代码。这里涉及到重构代码,去除重复性代码。 关于重构,你可以特意留意命名方式,函数大小,代码格式。 ❝代码能工作还不够。能工作的代码经常会严重崩溃。

    38510

    代码模板 | 我的代码没有else

    嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套我总结的使用设计模式的四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 我通过历史上接触过的各种抽奖场景(红包雨、糖果雨、打地鼠、大转盘(九宫格)、考眼力、...------------ //我的代码没有`else`系列 //模板模式 //@auhtor TIGERB //------------------...//------------------------------------------------------------ //我的代码没有`else`系列 //模板模式 //@auhtor TIGERB...我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2.

    1K30

    代码组件 | 我的代码没有else

    嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...满足如下要求的所有场景: Get请求获取页面数据的所有接口 前端大行组件化的当今,我们在写后端接口代码的时候还是按照业务思路一头写到尾吗?我们是否可以思索,「后端接口业务代码如何可以简单快速组件化?」...关于怎么用,完全可以生搬硬套我总结的使用设计模式的四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 按照如上某东的订单结算页面的示例,我们得到了如下的订单结算页面模块组成图: ?...我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2....---- 我的代码没有else系列 更多文章 代码模板 | 我的代码没有else 链式调用 | 我的代码没有else 点击https://github.com/TIGERB/easy-tips/tree

    1.2K10

    预防同事维护我的代码

    导读 程序员痛恨遇到质量低劣的代码,但在高压环境下,我们常为了最快解决当下需求而忽略代码规范,在无意识中堆积大量债务。我们还观察到许多开发者被迫加班的罪魁祸首便是写低效代码、不重视代码优化。...接下来,我将为各位列举9种我个人工作中高频遇到的不整洁代码行为,并提出针对性优化建议。...02 注释 错误习惯 缺少注释:没有为代码编写注释,导致其他人难以理解代码的功能和逻辑。过时的注释:未及时更新注释,使注释与实际代码不一致。错误注释:注释上并不规范,常常使用一些不合理的注释。...代码的可测试性:有些情况依赖于当前条件,使测试变得很难。...最后,引用韩磊老师在《代码整洁之道》写到的一句话送给大家: “ 细节之中自有天地,整洁成就卓越代码。 以上是本文全部内容,欢迎分享。

    21420

    我眼中的低代码平台

    我自身是 github copilot 的深度用户 —— 近半年来我个人项目中 70% 以上的单元测试代码都是 Copilot 帮我完成的, 它大大提高了我开发的效率,使得我在不必花费太多额外时间的前提下...我对低代码开发平台的浅见 出于职业习惯,我对不少低代码平台都做了一些肤浅的尝试。它们在各自的细分领域都有不俗的表现,但没有特别让我眼前一亮的通用开发平台。...它允许你撰写 yaml 和 SQL 处理大多后端需求,撰写少量 JSX 和 react 代码处理前端展示,这一切既可以在可视化工具中拖拽完成,也可以直接撰写代码,存入 git repo 中,享受其版本控制...在 LCNC 生态中,绝大多数公司都花费了很多精力构建其前端组件的组合能力。毕竟,前端是门面,再优秀的后端组件,如果没有与之匹配的前端展示,也会被用户弃之如敝履。...我自己做的简单的测算,同样功能的代码,同样的预算下,Rust 代码可以支撑 4-10 倍 nodejs 的请求量。

    1.1K20

    我那愚蠢的代码之旅

    我还记得那天,我迫不及待地想要用编程解决一个简单的问题:判断一个给定的整数是否为素数。对于一个编程新手来说,这似乎是一个令人兴奋的挑战,但我的完美主义倾向却导致了我写下了一段极度繁复而愚蠢的代码。...我的代码开始于一个庞大的 if 语句,里面包含了各种条件,以确定一个数是否为素数。我试图在一个函数中完成这一任务,但不幸的是,我的代码很快就失控了。...这个代码的问题在于,我试图手动检查了所有可能的除数,但却忽略了素数的基本定义:只有两个正除数,1 和自身。我的愚蠢代码反映了我对问题的过度复杂化,以及对基础知识的不足。...当我终于明白自己的错误时,我感到非常惭愧。解决这个问题其实非常简单,只需要遍历从 2 到根号下的那个数即可。这种简单的方法不仅更加清晰,而且效率也更高。...这段修正后的代码更加简洁和高效,而且在正确性上也毫无问题。但是,我却花费了大量时间和精力在一个愚蠢而繁复的代码上。 这个故事告诉我们,编程不是追求繁复和复杂性的游戏,而是要注重简洁和正确性。

    11010

    我是怎么读代码的

    本文是我在日常读代码中积累的一点心得,分享出来,希望能与大家产生共鸣。 1. 寻找一位好老师 优秀的项目就像一位好老师,我们可以从它身上全方位地学到各种领域知识。...除了看 overview,我也会大致关注配置,通过必填配置可以进一步了解软件的依赖和外部特性。...那么最好就是写篇文章,写文章可以对知识进行梳理,在写的过程中也会不断加深印象。随着文章的撰写,作者的设计意图亦会越来越清晰,对软件的理解也会越来越深刻。 整理大纲 写文章,目录最关键。...当我们能用图表和文字来表达出软件的完整设计后,我们对代码的理解已经比较透彻,甚至,让我们自己来照着写一个新的也不是不可能了。 这个时候,就应该进一步的思考,如果是我自己来解决问题,我会怎么做?...我能比原作者做得更好吗(通常不能)? 在思考为什么这么设计的时候,如果相关领域知识不充足,就会驱使我们去查找很多参考资料,了解和借鉴别人看问题的角度。

    1.3K20

    谁动了我的代码:代码混淆剖析

    作者 | Michael Haephrati、Ruth Haephrati 译者 | 明知山 策划 | 丁晓昀 在我们生活的两极世界中,技术、开源软件和知识被自由共享,但同时防止攻击者对专有技术进行逆向工程的需求也在不断增长...混淆的优势在这里就体现出来了——在进行混淆时,我们不加密,我们只是将代码隐藏起来,使它们变得不那么显而易见。混淆就像把针藏在干草堆里——如果做得好,攻击者需要花超出常规时间和资源来找到你的“针”。...尽管本文关注的是如何创建字符串混淆工具,但必须指出的是,在现实生活中,商业混淆工具混淆的不仅仅是字符串,它们也混淆函数、API 调用、变量、库、值等等。...函数调用被复制到剪贴板(如果给定字符串之前被混淆了,可以是新生成的函数,也可以是现有的函数),因此用户可以直接粘贴它,而不是粘贴给定的字符串。 自动测试生成的函数,验证它是否会返回给定的字符串。...结   论 在本文中,我们介绍了代码混淆的概念,主要是关于字符串混淆。

    59010

    免费拿走我的代码可以,但请对使用我的时间付费

    并且在专注 FubuMVC 的过程中,我不得不放弃其他的事情以及自我学习,开源工作的机会成本很高。”...此外,我们还需要规避这样的想法,即任何提交问题或请求的开发者都应该获得项目维护者的关注。 有关开源代码库在市场上的使用方式,接下来我们将进行具体解析。...往坏了说,这只是一个戴着利他主义面具的自私请求。 有一类开源项目已经避免了这个陷阱。...如果你希望在代码库中保持高水平的概念完整性,那么限制社区尤为重要。具有自由贡献政策的无头项目很少需要收费。 如果你的项目对其他人有利,为了完成自己的愿景,众筹是获得项目资金的重要方式。...这些想法代表着可持续发展的道路,也可以解决开源的多样化问题,这些问题可能源自于之前的无偿性质。但最重要的是让我们明白生命所剩的时光,而且我们有一天会为我们浪费的时间感到遗憾。

    1.1K80

    我写的代码真的规范吗

    这种错误如果你是使用babel预编译的也会直接报错,即使你没有用预编译,最终在浏览器执行也是必然出错的。...var src = item.data('src'); }); 变量校验 可以校验是否存在引用未定义变量,是否在变量定义之前使用变量,甚至连变量声明但未使用也可以校验。...(这里我假设你已经用上了fis这个构建工具) npm install -g fis3-lint-eslint (PS:fis的遍历机制会遍历html引入的文件以及项目目录下的文件,也就是说如果html引入...再结合我们日常的项目开发,个人觉得,校验可以在完成一定的代码量或者功能后或者每次提交代码时,再启动校验一次就行了。...后语 刚开始用的时候,你可能会被惊吓,不少error和一堆warning,看到心累,但是它可以给你的代码提供很严谨的校验,并准确的指出代码的具体位置和问题信息,修改起来也并难。

    1.2K40

    订阅通知 | 我的代码没有else

    嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套我总结的使用设计模式的四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 注:本文于单体架构背景探讨业务的实现过程,简单容易理解。...我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2....订阅通知:订阅方不是直接依赖主题方(联想下mq等消息中间件的使用);而观察者模式:观察者是直接依赖了被观察者,从上面的代码我们也可以清晰的看出来这个差异。...---- 我的代码没有else系列 更多文章 代码模板 | 我的代码没有else 链式调用 | 我的代码没有else 代码组件 | 我的代码没有else 点击https://github.com/

    1.8K20

    状态变换 | 我的代码没有else

    嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套我总结的使用设计模式的四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 先来看看一个短信验证码登录的界面。 ?...我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2....---- 我的代码没有else系列 更多文章 代码模板 | 我的代码没有else 链式调用 | 我的代码没有else 代码组件 | 我的代码没有else 订阅通知 | 我的代码没有else 客户决策...| 我的代码没有else

    87320

    客户决策 | 我的代码没有else

    嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套我总结的使用设计模式的四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 我们以某团的订单支付页面为例,页面上的每一个支付选项都是一个支付策略。...结语 最后总结下,「策略模式」抽象过程的核心是: 在每一行代码下面的十字路口 声明标准:定义interface 封装算法:按照标准interface封装分支代码,得到每一个具体策略 构建算法集:每一个具体策略构成策略池子...我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2....---- 我的代码没有else系列 更多文章 代码模板 | 我的代码没有else 链式调用 | 我的代码没有else 代码组件 | 我的代码没有else 订阅通知 | 我的代码没有else

    91920
    领券