草庐IT

Telegram 上出售新 macOS 恶意软件 Atomic Stealer

最近,在地下论坛中出现了许多macOS的信息窃密程序,例如Pureland、MacStealer和AmosAtomicStealer。其中,AtomicStealer提供了迄今为止最完整的功能,例如窃取账户密码、浏览器数据、会话Cookie与加密货币钱包信息。在Telegram的宣传中,攻击者可以以每月1000美元的价格租用Web控制面板来管理攻击活动。不过攻击者不止步于此,也一直在寻找各种方法通过不同版本的AtomicStealer来攻击macOS用户。近日,研究人员就发现了全新的AtomicStealer变种。AtomicStealer分发目前,攻击者通过特定的Telegram频道来分发A

java - 原子操作和多线程

最近我正在阅读一个教程,其中我遇到了一个声明,上面写着.."Java语言规范保证读取或写入变量是原子操作(除非变量的类型为long或double)。操作变量类型为long或double只有在使用volatile关键字声明时才是原子的。”AtomicInteger或AtomicLong提供getAndDecrement()、getAndIncrement()和getAndSet等方法()是原子的。我对上面的陈述有点困惑。请您澄清何时使用AtomicInteger或AtomicLong类。 最佳答案 执行a=28(其中a是一个int)是

java - 原子操作和多线程

最近我正在阅读一个教程,其中我遇到了一个声明,上面写着.."Java语言规范保证读取或写入变量是原子操作(除非变量的类型为long或double)。操作变量类型为long或double只有在使用volatile关键字声明时才是原子的。”AtomicInteger或AtomicLong提供getAndDecrement()、getAndIncrement()和getAndSet等方法()是原子的。我对上面的陈述有点困惑。请您澄清何时使用AtomicInteger或AtomicLong类。 最佳答案 执行a=28(其中a是一个int)是

java - 正在 64 位 VM 上编写引用原子

Java内存模型要求编写int是原子的:也就是说,如果您在一个线程中写入一个值(由4个字节组成)并在另一个线程中读取它,您将获得所有字节或没有,但永远不会获得2个新字节和2个旧字节等。不保证long.在这里,写0x1122334455667788到变量持有0之前可能会导致另一个线程读取0x112233440000000或0x0000000055667788.现在规范不要求对象引用是int或long-sized。出于类型安全的原因,我怀疑它们可以保证以原子方式编写,但在64位VM上,这些引用可能是非常好的64位值(仅仅是内存地址)。现在是我的问题:是否有任何内存模型规范涵盖这一点(我还没

java - 正在 64 位 VM 上编写引用原子

Java内存模型要求编写int是原子的:也就是说,如果您在一个线程中写入一个值(由4个字节组成)并在另一个线程中读取它,您将获得所有字节或没有,但永远不会获得2个新字节和2个旧字节等。不保证long.在这里,写0x1122334455667788到变量持有0之前可能会导致另一个线程读取0x112233440000000或0x0000000055667788.现在规范不要求对象引用是int或long-sized。出于类型安全的原因,我怀疑它们可以保证以原子方式编写,但在64位VM上,这些引用可能是非常好的64位值(仅仅是内存地址)。现在是我的问题:是否有任何内存模型规范涵盖这一点(我还没

java - 什么时候最好在 Java 中使用 volatile boolean 而不是 AtomicBoolean?

这个问题在这里已经有了答案:VolatilebooleanvsAtomicBoolean(12个回答)关闭3年前。我查看了SO中的其他volatile与Atomicxxxx问题(包括thisone)并阅读了thedescriptionofjava.util.current.atomic,我对细微差别不太满意。如果我尝试在使用volatileboolean和AtomicBoolean之间做出决定,除了AtomicBoolean提供的原子读取-修改-写入操作之外,是否还有实际区别?(例如compareAndSet()和getAndSet())假设我有volatilebooleanflag;

java - 什么时候最好在 Java 中使用 volatile boolean 而不是 AtomicBoolean?

这个问题在这里已经有了答案:VolatilebooleanvsAtomicBoolean(12个回答)关闭3年前。我查看了SO中的其他volatile与Atomicxxxx问题(包括thisone)并阅读了thedescriptionofjava.util.current.atomic,我对细微差别不太满意。如果我尝试在使用volatileboolean和AtomicBoolean之间做出决定,除了AtomicBoolean提供的原子读取-修改-写入操作之外,是否还有实际区别?(例如compareAndSet()和getAndSet())假设我有volatilebooleanflag;

python - 不是 Django 中 @atomic() 的嵌套版本?

来自docsofatomic()atomicblockscanbenested这听起来像是一个很棒的功能,但在我的用例中我想要相反的东西:我希望事务在用@atomic()装饰的block成功离开后立即持久。有没有办法确保django事务处理的持久性?背景事务是ACID。“D”代表耐用性。这就是为什么我认为交易不能在不丢失功能“D”的情况下嵌套。示例:如果内部事务成功,但外部事务不成功,则外部事务和内部事务都会回滚。结果:内部事务不持久。我使用PostgreSQL,但据我所知,这应该不是什么大问题。 最佳答案 您不能通过任何API执行

c++ - std::atomic<int*>::load 是否应该进行比较和交换循环?

总结:我曾预料到std::atomic::load与std::memory_order_relaxed将接近直接加载指针的性能,至少当加载的值很少改变时。我发现原子加载的性能比VisualStudioC++2012上的正常加载差得多,所以我决定进行调查。事实证明,原子负载是作为compare-and-swap实现的。循环,我怀疑这不是最快的实现。问题:std::atomic::load有什么原因吗?需要进行比较和交换循环吗?背景:我相信MSVC++2012正在基于此测试程序对指针的原子加载执行比较和交换循环:#include#includetemplate__declspec(noin

c++ - 在使用 libstdc++ 进行调试期间强制在 std::atomic 中使用锁

我已经做了一些谷歌,似乎无法为此打开一个GCC选项或libstdc++宏。是否可以在所有std::atomic模板特化上强制使用内部锁定。在某些平台上,一些特化无论如何都会被锁定,因此这看起来确实是一个可行的选择。在过去,我发现使用std::atomic在使用诸如Valgrind(Helgrind或DRD),因为大量的误报。如果原子学的使用足够普遍,抑制文件似乎不是一个非常可扩展的解决方案。 最佳答案 没有办法,AFAIK。GCC通过无锁内置函数(__atomic_fetch_add、__atomic_test_and_set等)实