public void _MOV_EDX_DWORD_PTR_EBX() {
_ASM_CODE.append("8B13");
}
public void _MOV_EDX_DWORD_PTR_EBX_ADD(final int address) {
if (address <= 0xff) {
_ASM_CODE.append("8B53");
_ASM_CODE.append(ASM.getIntToHex(address, 2));
} else {
_ASM_CODE.append("8B93");
_ASM_CODE.append(ASM.getIntToHex(address, 8));
}
_REGISTER._EDX = address;
}
public void _MOV_EDX_DWORD_PTR_ECX() {
_ASM_CODE.append("8B11");
}
public void _MOV_EDX_DWORD_PTR_ECX_ADD(final int address) {
if (address <= 0xff) {
_ASM_CODE.append("8B51");
_ASM_CODE.append(ASM.getIntToHex(address, 2));
} else {
_ASM_CODE.append("8B91");
_ASM_CODE.append(ASM.getIntToHex(address, 8));
}
_REGISTER._EDX = address;
}
public void _MOV_EDX_DWORD_PTR_EDI() {
_ASM_CODE.append("8B17");
}
public void _MOV_EDX_DWORD_PTR_EDI_ADD(final int address) {
if (address <= 0xff) {
_ASM_CODE.append("8B57");
_ASM_CODE.append(ASM.getIntToHex(address, 2));
} else {
_ASM_CODE.append("8B97");
_ASM_CODE.append(ASM.getIntToHex(address, 8));
}
_REGISTER._EDX = address;
}
public void _MOV_EDX_DWORD_PTR_EDX() {
_ASM_CODE.append("8B12");
}
public void _MOV_EDX_DWORD_PTR_EDX_ADD(final int address) {
if (address <= 0xff) {
_ASM_CODE.append("8B52");
_ASM_CODE.append(ASM.getIntToHex(address, 2));
} else {
_ASM_CODE.append("8B92");
_ASM_CODE.append(ASM.getIntToHex(address, 8));
}
_REGISTER._EDX = address;
}
public void _MOV_EDX_DWORD_PTR_ESI() {
_ASM_CODE.append("8B16");
}
public void _MOV_EDX_DWORD_PTR_ESI_ADD(final int address) {
if (address <= 0xff) {
_ASM_CODE.append("8B56");
_ASM_CODE.append(ASM.getIntToHex(address, 2));
} else {
_ASM_CODE.append("8B96");
_ASM_CODE.append(ASM.getIntToHex(address, 8));
}
_REGISTER._EDX = address;
}
public void _MOV_EDX_DWORD_PTR_ESP() {
_ASM_CODE.append("8B1424");
}
public void _MOV_EDX_DWORD_PTR_ESP_ADD(final int address) {
if (address <= 0xff) {
_ASM_CODE.append("8B5424");
_ASM_CODE.append(ASM.getIntToHex(address, 2));
} else {
_ASM_CODE.append("8B9424");
_ASM_CODE.append(ASM.getIntToHex(address, 8));
}
_REGISTER._EDX = address;
}
public void _MOV_EDX_EAX() {
_ASM_CODE.append("8BD0");
}
public void _MOV_EDX_EBP() {
_ASM_CODE.append("8BD5");
}
public void _MOV_EDX_EBX() {
_ASM_CODE.append("8BD3");
}
public void _MOV_EDX_ECX() {
_ASM_CODE.append("8BD1");
}
public void _MOV_EDX_EDI() {
_ASM_CODE.append("8BD7");
}
public void _MOV_EDX_ESI() {
_ASM_CODE.append("8BD6");
}
public void _MOV_EDX_ESP() {
_ASM_CODE.append("8BD4");
}
public void _MOV_ESI(final int address) {
_ASM_CODE.append("BE");
_ASM_CODE.append(ASM.getIntToHex(address, 8));
_REGISTER._ESI = address;
}
public void _MOV_ESI_DWORD_PTR(final int address) {
_ASM_CODE.append("8B35");
_ASM_CODE.append(ASM.getIntToHex(address, 8));
_REGISTER._ESI = address;
}
public void _MOV_ESI_EAX() {
_ASM_CODE.append("8BF0");
}
public void _MOV_ESI_EBP() {
_ASM_CODE.append("8BF5");
}
public void _MOV_ESI_EBX() {
_ASM_CODE.append("8BF3");
}
public void _MOV_ESI_ECX() {
_ASM_CODE.append("8BF1");
}
public void _MOV_ESI_EDI() {
_ASM_CODE.append("8BF7");
}
public void _MOV_ESI_EDX() {
_ASM_CODE.append("8BF2");
}
public void _MOV_ESI_ESP() {
_ASM_CODE.append("8BF4");
}
public void _MOV_ESP(final int address) {
_ASM_CODE.append("BC");
_ASM_CODE.append(ASM.getIntToHex(address, 8));
_REGISTER._ESP = address;
}
public void _MOV_ESP_DWORD_PTR(final int address) {
_ASM_CODE.append("8B25");
_ASM_CODE.append(ASM.getIntToHex(address, 8));
_REGISTER._ESP = address;
}
public void _MOV_ESP_EAX() {
_ASM_CODE.append("8BE0");
}
public void _MOV_ESP_EBP() {
_ASM_CODE.append("8BE5");
}
public void _MOV_ESP_EBX() {
_ASM_CODE.append("8BE3");
}
public void _MOV_ESP_ECX() {
_ASM_CODE.append("8BE1");
}
public void _MOV_ESP_EDI() {
_ASM_CODE.append("8BE7");
}
public void _MOV_ESP_EDX() {
_ASM_CODE.append("8BE2");
}
public void _MOV_ESP_ESI() {
_ASM_CODE.append("8BE6");
}
public void _NOP() {
_ASM_CODE.append("90");
}
public void _TEST_AL_AL() {
_ASM_CODE.append("84C0");
}
public void _POP_EAX() {
_ASM_CODE.append("58");
}
public void _POP_EBP() {
_ASM_CODE.append("5D");
}
public void _POP_EBX() {
_ASM_CODE.append("5B");
}
public void _POP_ECX() {
_ASM_CODE.append("59");
}
public void _POP_EDI() {
_ASM_CODE.append("5F");
}
public void _POP_EDX() {
_ASM_CODE.append("5A");
}
public void _POP_ESI() {
_ASM_CODE.append("5E");
}
public void _POP_ESP() {
_ASM_CODE.append("5C");
}
public void _POPAD() {
_ASM_CODE.append("61");
}
public void _PUSH(final int address) {
_ASM_CODE.append("68");
_ASM_CODE.append(ASM.getIntToHex(address, 8));
}
public void _PUSH_DWORD_PTR(final int address) {
_ASM_CODE.append("FF35");
_ASM_CODE.append(ASM.getIntToHex(address, 8));
}
public void _PUSH_EAX() {
_ASM_CODE.append("50");
}
public void _PUSH_EBP() {
_ASM_CODE.append("55");
}
public void _PUSH_EBX() {
_ASM_CODE.append("53");
}
public void _PUSH_ECX() {
_ASM_CODE.append("51");
}
public void _PUSH_EDI() {
_ASM_CODE.append("57");
}
public void _PUSH_EDX() {
_ASM_CODE.append("52");
}
public void _PUSH_ESI() {
_ASM_CODE.append("56");
}
public void _PUSH_ESP() {
_ASM_CODE.append("54");
}
public void _PUSHAD() {
_ASM_CODE.append("60");
}
public void _RET() {
_ASM_CODE.append("C3");
}
public void _RET_4() {
_ASM_CODE.append("C20400");
}
public void _RET_10() {
_ASM_CODE.append("C21000");
}
public void _RET_ADDRESS(final int address) {
_ASM_CODE.append(ASM.getIntToHex(address, 4));
}
public String getASMCode() {
return _ASM_CODE.toString();
}
public void clearASMCode() {
_ASM_CODE.delete(0, _ASM_CODE.length());
_REGISTER.FREE();
}
/**
* 将内联汇编注入指定进程
*
* @param pid
* @return
*/
public boolean doInject(final int pid) {
byte[] asmBytes = ASM.getHexToBytes(this.getASMCode());
boolean result = Kernel.doInject(pid, asmBytes);
clearASMCode();
return result;
}
/**
* 返回当前内联汇编执行结果
*
* @return
*/
public long doResult() {
byte[] asmBytes = ASM.getHexToBytes(this.getASMCode());
long result = Kernel.doResult(asmBytes);
clearASMCode();
return result;
}
java-jna-内联汇编-ASM-5
最新推荐文章于 2023-04-20 22:13:56 发布