APX対応17
ccmpacc対応.
GitHub issueで大昔に作ったmsoffice-crypto.exeで非圧縮3.5GiBのエクセルファイルを扱ったらbad allocationが出たというissue. そんなの知らんがなとしか.
APX対応17
ccmpacc対応.
GitHub issueで大昔に作ったmsoffice-crypto.exeで非圧縮3.5GiBのエクセルファイルを扱ったらbad allocationが出たというissue. そんなの知らんがなとしか.
ccmpaccの仕様
マニュアルにはEVEX.ND=1であるべきというのにxedではそのフラグを立てるとエラー. どっちが正しいのか分からないので質問した. → マニュアルのミスだったもよう. 8月に更新されてたの気がつかなかった.
APX対応16
crc32やrotationまわり対応完了.
APX対応15
1byte opecodeのみがrex2でr16, ..., r31対応できる. 2, 3byteプレフィクスがついてたらエラーにしないとおかしなバイトコードを生成してしまう.
APX対応14
2opのneg/notなどに対応.
APX対応13
1opのdiv/idiv/imul/mul/neg/not_対応. 一つずつ微妙に違うの困る. notだけNF対応してないのは何故だろう.
APX対応12
inc, decが正しく動くようになった.
.APX対応11
sarx, shlx, shrx, rorxの中でrorxだけVEX-map3というものらしい. こいつだけのためにフラグを追加.
APX対応10
andnの正しいエンコーディングが分からない. 結局いろんなパターンのバイトコードを出力させてXEDが正しく逆アセンブルできるのを探した. それでようやく動いた. MAPが何になるのかニーモニックの説明だけでは分からない.
APX対応9
eflagsを抑制するEVEX.NF=1なモードが動くようになった. まだアセンブラレベルでの構文はなさそう(Intel XEDの逆アセンブル結果が変わらない)なので勝手にT_nfでやることにした.
struct Code : Xbyak::CodeGenerator { Code(bool nf) { xor_(eax, eax); // CF = 0 mov(eax, -1); if (nf) { add(eax|T_nf, eax, 1); // CFは変わらない } else { add(eax, eax, 1); // CF = 1 } adc(eax, 0); // eax = CF ? 1 : 0 ret(); } };
sde -futureで動くのを確認できてうれしい.
APX対応8
APX拡張をしやすいやり方はどうしたらよいか試行錯誤しながらXbyakの古いコードをひたすらリファクタリング. 大分すっきりしてきた. かなりカオスだったからなあ.
質問メール
mcl/blsなどはGitHubのissueを立ててほしいな. ついつい答えてしまうのも悪いのだろうけど.
APX対応7
adcxはうまくいったけどadoxは駄目と思ったらプレフィクスとppフラグの扱いがミスってた.