0
다음은 몇 가지 코드입니다.ASM을 사용하여 메소드의 opcode를 Java 클래스 파일의 다른 메소드로 복사하는 방법은 무엇입니까?
static synchronized void q(ua paramua, int paramInt) {
try {
if (d) { if (paramInt > -16711936);
return; }
if (q * 514194583 > 0) { if (paramInt > -16711936);
abf localabf = new abf(paramua);
n.d(localabf, -984409319);
}
else {
paramua.ma(false);
}
return; } catch (RuntimeException localRuntimeException) { throw aht.d(localRuntimeException, "ck.q(" + 41);
}
}
static synchronized void b(ua paramua)
{
if (d) return;
if (q * 514194583 > 0) {
abf localabf = new abf(paramua);
n.d(localabf, -836239689);
}
else {
paramua.ma(false);
}
}
이 두 가지 방법은 동일한 동작을 수행합니다.
static synchronized void q(ua paramua, int paramInt)
{
if (d) return;
if (q * 514194583 > 0) {
abf localabf = new abf(paramua);
n.d(localabf, -836239689);
}
else {
paramua.ma(false);
}
}
가 어떻게이 작업을 수행 할 수 있습니다 ... 첫 번째 방법의 두 번째 매개 변수는 psudo 인수는, 그래서 원래의 코드를 삭제하고 같은이 방법을 만들고 싶어? 이렇게 해보았습니다.
destMethodNode.instructions.clear();
destMethodNode.instructions.add(srcMethodNode.instructions);
그러나 null 포인터 예외가 발생합니다. 그 이유는 무엇입니까?
소스를 편집하고 다시 컴파일합니다. 그것은 훨씬 더 일할 가능성이 높습니다. 귀하의 질문에 대답하기 위해 목록에 목록을 추가 할 수 없습니다. 아마도 addAll()이 의도 한 것입니까? –
어셈블리가 왜 이와 관련되어 있습니까? – harold
NPE에 대한 스택 추적을 제공해주십시오. –