天道酬勤,学无止境

corewars

组装 - 安全竞争(Assembly - safe competition)

问题 我参加了名为“Code guru - Extreme”的比赛。在这个比赛中,8086 组合中有保险箱和钥匙。保险箱和钥匙有联合数据段,你需要制作一个打破保险箱的钥匙。 安全示例: L: mov ax, [1234] cmp ax, 5678 jne L 打破保险箱的钥匙示例 L: mov ax, 5678 mov [1234], ax jne L 现在我有了一个无法打破的保险箱 and al, 0FEh push ax clc mul ax xor ax, dx or al, 1 loc_10A: sub [0A2h], ax pop ax push ax jnz loc_10A 这种保险箱和钥匙的模拟是在 Core Wars 8086 引擎内完成的。 规则如下,其中安全和钥匙都是战争中的幸存者: 幸存者不能在固定地址上加载,因为游戏引擎每回合都会将它们加载到一个随机地址。 生成的程序必须是 COM 而不是 EXE,并且只包含 8086 条指令。 每个幸存者收到一组自己的完整寄存器(寄存器),其他幸存者无法访问。 此外,每个幸存者都有一个 2048 字节的“个人”堆栈,其他幸存者也无法访问。 在运行第一轮游戏之前,游戏引擎将竞技场中的所有字节初始化为值 0CCh(注意:此字节值是“不支持”的指令 - 详情如下)。 然后引擎将每个幸存者加载到竞技场内存中的随机位置,即 -

2021-10-30 04:53:09    分类:技术分享    assembly   x86-16   corewars

Assembly - safe competition

I participate in the competition named 'Code guru - Extreme' In this competition there is safes and keys in assembly 8086. To a safe and a key there are joint data segment, and you need to make a key that break the safe. Example to safe: L: mov ax, [1234] cmp ax, 5678 jne L Example to key that break the safe L: mov ax, 5678 mov [1234], ax jne L And now I have a safe that I can not break it and al, 0FEh push ax clc mul ax xor ax, dx or al, 1 loc_10A: sub [0A2h], ax pop ax push ax jnz loc_10A This simulation of a safe and key is done inside the Core Wars 8086 engine. The rules are as follows

2021-10-30 03:54:18    分类:问答    assembly   x86-16   corewars

组装保险箱和钥匙-为什么不起作用?(Assembly safes and keys- why it won't work?)

问题 所以我们在组装中遇到了这样的保险箱挑战,您需要创建保险箱和钥匙来打破它们并结束无限循环。 下面是一个保险箱的例子: loopy: mov ax, [1900] cmp ax,1234 jne loopy 和一把钥匙: loopy2: mov ax, 1234 mov [1900],ax jmp loopy2 所以我有一个保险箱和一把钥匙,我不明白为什么它不起作用: 这是我的保险箱: org 100h mySafe: mov dx,5 mov ax, [5768h] mov bx,7 mov word [180h],2 mul word [180h] mov [180h],bx push ax dec bx mov cx,dx mov ax,dx loopy1: add bx,ax loop loopy1 dec bx pop ax add ax,bx mul word [180h] cmp ax,350 jne mySafe 这是我的钥匙: org 100h loopy: mov word [5768h],10 jmp loopy ret 打破循环的正确答案应该是 10 并且当我放入保险箱时它会起作用,但不知何故它不起作用,我不知道为什么..(nasm需要“词”) 回答1 dx用作loop指令计数器的值来自第一条mul指令。 这个乘法只是将密钥加倍,所以dx是 0 或 1

2021-10-25 21:27:30    分类:技术分享    debugging   assembly   reverse-engineering   x86-16   corewars

x86 程序集:很难找到无限循环挑战的想法(x86 Assembly: Having hard time finding ideas for an infinite loop challenge)

问题 我打算和我的朋友们进行一场类似于“核心战争”的比赛(我们使用与原始游戏相同的内存网格) 在游戏中,我们每个人都假设编写一个“保险箱”,这是一个不超过 25 行的无限循环。 每个“保险箱”都有一个技巧或代码可以停止循环,从而破坏“保险箱”。 例如: ;Safe safe: mov ax, [1000] cmp ax, 9999 jne safe 如果我们将正确的代码 (9999) 传递给 [1000],则会破坏保险箱: ;Breaker mov ax, 9999 mov [1000], ax breaker: jmp breaker 我正在考虑制作某种数学方程式,然后将其结果用作保险箱的代码,但我没有任何既简短又有趣的好主意。 我不确定这个问题是否与这个堆栈站点相关,所以如果不是,我想知道这种问题的更好的堆栈站点。

2021-10-25 18:37:17    分类:技术分享    assembly   x86-16   corewars

Assembly safes and keys- why it won't work?

So we have like this safes challenge in assembly, you need to create safes and keys that will break them and end the infinite loop. Here's an example for a safe: loopy: mov ax, [1900] cmp ax,1234 jne loopy and a key: loopy2: mov ax, 1234 mov [1900],ax jmp loopy2 So I have a safe and a key, and I don't understand why it doesn't work: here's my safe: org 100h mySafe: mov dx,5 mov ax, [5768h] mov bx,7 mov word [180h],2 mul word [180h] mov [180h],bx push ax dec bx mov cx,dx mov ax,dx loopy1: add bx,ax loop loopy1 dec bx pop ax add ax,bx mul word [180h] cmp ax,350 jne mySafe And here's my key: org

2021-09-07 23:40:52    分类:问答    debugging   assembly   reverse-engineering   x86-16   corewars

x86 Assembly: Having hard time finding ideas for an infinite loop challenge

I'm going to intend a competition similar to "corewars" with my friends (We are using the same memory grid as the original game) In the game each one of us supposes to write a "safe" which is an infinite loop that is not longer then 25 lines. each "safe" has a trick or a code that can stop the loop, hence breaking the "safe". for example: ;Safe safe: mov ax, [1000] cmp ax, 9999 jne safe This safe can be broken if we pass the correct code (9999) to the [1000], which will break the safe: ;Breaker mov ax, 9999 mov [1000], ax breaker: jmp breaker I was thinking about making some sort of a

2021-09-04 17:38:03    分类:问答    assembly   x86-16   corewars